LAB1 partIV】的更多相关文章

PartIV 实现 处理worker 失败情况. worker 处理失败,master 应该重新分配该任务给其他的worker 处理. rpc 失败情况复杂,可能worker 结果回应丢失了,也有可能 worker还在处理,但是 master rpc 超时了.考虑两个worker都拿到相同的task 且都有结果文件的情况, 要确保输出任务的原子性.当前这个程序框架无法保证任务输出的原子性,只考虑失败的worker没任何输出.   测试命令 $ go test -run Failure maste…
MIT6.828 lab1地址:http://pdos.csail.mit.edu/6.828/2014/labs/lab1/ 第一个练习,主要是让我们熟悉汇编,嗯,没什么好说的. Part 1: PC Bootstrap 首先,整个实验使用qemu这款模拟软件来,来对代码进行调试,相当于我们在qemu这个模拟的计算机平台上,运行自己的程序.可以再qemu这个软件上进行gdb的调试,比较方便. 首先看下整个内核在qemu上的模拟的结果: 整个内核现在能实现的就两个功能,一个kerninfo,显示…
Machine Learning Lab1 打算把Andrew Ng教授的#Machine Learning#相关的6个实验一一实现了贴出来- 预计时间长度战线会拉的比較长(毕竟JOS的7级浮屠还没搞定.) ----------------------------------------------------------------------------------------------------------------------------------- 实验内容: 线性拟合 实验材…
---恢复内容开始--- 开机流程回忆 以Intel 80386为例,计算机加电后,CPU从物理地址0xFFFFFFF0(由初始化的CS:EIP确定,此时CS和IP的值分别是0xF000和0xFFF0))开始执行.在0xFFFFFFF0这里只是存放了一条跳转指令,通过跳转指令跳到BIOS例行程序起始点.BIOS做完计算机硬件自检和初始化后,会选择一个启动设备(例如软盘.硬盘.光盘等),并且读取该设备的第一扇区(即主引导扇区或启动扇区)到内存一个特定的地址0x7c00处,然后CPU控制权会转移到那…
partV 创建文档反向索引.word -> document 与 前面做的 单词统计类似,这个是单词与文档位置的映射关系. mapF 文档解析相同,返回信息不同而已. reduceF 返回归约都的字符串,返回document 切片 转成 string 使用 strings.join .   master@master:~/study/6.824/src/main$ go run ii.go master sequential pg-*.txt ii.go:9:8: cannot find pa…
MIT 6.824 LAB1 环境搭建 vmware 虚拟机 linux ubuntu server   安装 go 官方安装步骤: 下载此压缩包并提取到 /usr/local 目录,在 /usr/local/go 中创建Go目录树.例如: tar -C /usr/local -xzf go$VERSION.$OS-$ARCH.tar.gz 该压缩包的名称可能不同,这取决于你安装的Go版本和你的操作系统以及处理器架构. (此命令必须作为root或通过 sudo 运行.) 要将 /usr/loca…
软件测试:lab1.Junit and Eclemma Task: Install Junit(4.12), Hamcrest(1.3) with Eclipse Install Eclemma with Eclipse Write a java program for the triangle problem and test the program with Junit. a)  Description of triangle problem: Function triangle takes…
这是 MIT 6.824 课程 lab1 的学习总结,记录我在学习过程中的收获和踩的坑. 我的实验环境是 windows 10,所以对lab的code 做了一些环境上的修改,如果你仅仅对code 感兴趣,请移步 : github/zouzhitao mapreduce overview 先大致看一下 mapreduce 到底是什么 我个人的简单理解是这样的: mapreduce 就是一种分布式处理用户特定任务的系统.它大概是这样处理的. 用户提供两个函数 mapFunc(k1,v1)-> lis…
lab1知识点汇总 还是有很多问题,但是我觉得我需要在查看更多资料后回来再理解,学这个也学了一周了,看了大量的资料...还是它们自己的80386手册和lab的指导手册觉得最准确,现在我就把这部分知识做一个汇总,也为之后的lab打下坚实的基础.80386真的难啊,比mips复杂多了..顿时觉得我们学的都是小菜.. 下面这些知识来源于: 实验指导书和答案 80386手册 mooc视频 8086程序设计指导这本书 网上的博客 lab1练习汇总 练习之所以被老师当做练习,一定有它重要的地方,所以我们先把…
lab1的Exercise 2就是让我们熟悉gdb的si操作,并知道BIOS的几条指令在做什么就够了,所以我们也会尽可能的去分析每一行代码. 首先进入到6.8282/lab这个目录下,输入指令make qemu-gdb,之后新打开一个terminal,在lab目录下输入gdb.就进入到gdb了 [f000:fff0] 0xffff0: ljmp $0xf000,$0xe05b 这第一条指令呢,是一条跳转指令,跳转到0xfe05b地址处.学过微机原理或者计算机组成就知道0xfe05b=0xf000…
JOS lab1 首先向MIT还有K&R致敬! 没有非常好的开源环境我不可能拿到这么好的东西. 向每个与我一起交流讨论的programmer致谢!没有道友一起死磕.我也可能会中途放弃. 跟丫死磕究竟.(事实上这个过程会学到非常多东西,非常好玩非常好玩,不要被panic吓到,等你都能定位panic,并修复触发panic的bug的时候.我相信大家debug的能力会上升一个水平,互勉-) ---------------------------------------------------------…
资源 ucore在线实验指导书 我的ucore实验代码 题目:实现函数调用堆栈跟踪函数 我们需要在lab1中完成kdebug.c中函数print_stackframe的实现,可以通过函数print_stackframe来跟踪函数调用堆栈中记录的返回地址.如果能够正确实现此函数,可在lab1中执行 "make qemu"后,在qemu模拟器中得到类似如下的输出: ebp:0x00007b28 eip:0x00100992 args:0x00010094 0x00010094 0x0000…
资源 ucore在线实验指导书 我的ucore实验代码 练习1:理解通过make生成执行文件的过程 详见<ucore lab1 exercise1>实验报告 练习2:使用qemu执行并调试lab1中的软件 详见<ucore lab1 exercise2>实验报告 练习3:分析bootloader进入保护模式的过程 详见<ucore lab1 exercise3>实验报告 练习4:分析bootloader加载ELF格式的OS的过程 详见<ucore lab1 exe…
资源 ucore在线实验指导书 我的ucore实验代码 题目:分析bootloader进入保护模式的过程 BIOS将通过读取硬盘主引导扇区到内存,并转跳到对应内存中的位置执行bootloader.请分析bootloader是如何完成从实模式进入保护模式的. 提示:需要阅读小节"保护模式和分段机制"和lab1/boot/bootasm.S源码,了解如何从实模式 切换到保护模式,需要了解: 为何开启A20,以及如何开启A20 如何初始化GDT表 如何使能和进入保护模式 解答 正如提示所言,…
资源 ucore在线实验指导书 我的ucore实验代码 题目:使用qemu执行并调试lab1中的软件 为了熟悉使用qemu和gdb进行的调试工作,我们进行如下的小练习: 从CPU加电后执行的第一条指令开始,单步跟踪BIOS的执行. 在初始化位置0x7c00设置实地址断点,测试断点正常. 从0x7c00开始跟踪代码运行,将单步跟踪反汇编得到的代码与bootasm.S和bootblock.asm进行比较. 自己找一个bootloader或内核中的代码位置,设置断点并进行测试 解答 问题1:从CPU加…
资源 ucore在线实验指导书 我的ucore实验代码 题目:理解通过make生成执行文件的过程 列出本实验各练习中对应的OS原理的知识点,并说明本实验中的实现部分如何对应和体现了原理中的基本概念和关键知识点. 操作系统镜像文件ucore.img是如何一步一步生成的?(需要比较详细地解释Makefile中每一条相关命令和命令参数的含义,以及说明命令导致的结果) 一个被系统认为是符合规范的硬盘主引导扇区的特征是什么? 解答 题目1的解答 等完成lab1后再回头总结. 题目2的解答 首先具体分析Ma…
<MIT 6.828 Lab1: Booting a PC>实验报告 本实验的网站链接见:Lab 1: Booting a PC. 实验内容 熟悉x86汇编语言.QEMU x86仿真器.PC开机引导流程 测试6.828 内核的启动加载器(boot loader) 研究6.828 内核的初始化模板(JOS) 实验题目 注意:部分Exercise的解答过程较长,因此专门新建一个文档来记录解答过程,而在本文中给出其链接. Exercise 1:阅读汇编语言资料 Exercise 1. Familia…
Lab1 report A) The brief description that you install junit, hamcrest and eclemma. a)  install junit.hamcrest: 方式一:导入jar包. 1.鼠标右击项目名,点击‘Properties’一栏: 2.如下图点击‘Add External JARs’: 3.选中下载好的junit和hamcrest的jar包,打开即可. 方式二,添加junit库: 1.鼠标右击项目名,点击‘Properties…
现在我们准备做第一个作业Lab1啦 wjk大神也在做6.824,可以参考大神的笔记https://github.com/zzzyyyxxxmmm/MIT6824_Distribute_System Part I The Map/Reduce implementation you are given is missing some pieces. Before you can write your first Map/Reduce function pair, you will need to f…
中断很久,一看发现又多了一些内容. 打算完成了 Lab1 challenge 1 中断像量表设置的时候我们需要设置一个用于系统调用的 trap门 也就是 利用中断切换特权级 To kernel 调用 Tokernel 的时候由于由特权及的转换,所以这里会在 Tss 中取出当前函数的内核栈 并且做相应的切换 依次压栈 eflags cs eip err trapno ds es sf gs tregs 等 将这个 调用栈压入 栈中 最后执行 push esp 这样是把 栈顶的指针放在栈顶作为tar…
一.ucore操作系统介绍 操作系统作为一个基础系统软件,对下控制硬件(cpu.内存.磁盘网卡等外设),屏蔽了底层复杂多样的硬件差异:对上则提供封装良好的应用程序接口,简化应用程序开发者的使用难度.站在应用程序开发人员的角度来看,日常开发中常见的各种关于并发.I/O.程序通信的问题等都和操作系统相关,因此一定程度上了解底层的操作系统工作原理是有必要的. 另一方面,由于操作系统自身功能的复杂性,整体设计一般会有一个好的模块化架构:操作系统作为基础服务,对性能效率的要求也很高,底层会用到许多关于数据…
练习一 Makefile 1.1 OS镜像文件ucore.img 是如何一步步生成的? + cc kern/init/init.c + cc kern/libs/readline.c + cc kern/libs/stdio.c + cc kern/debug/kdebug.c + cc kern/debug/kmonitor.c + cc kern/debug/panic.c kern/debug/panic.c: In function '__panic': kern/debug/panic…
1.Intro github : https://github.com/CreatorsStack/CreatorDB lab1实现数据库基本的存储逻辑结构,具体包括:Tuple,TupleDesc,HeapPage,HeapFile,SeqScan, BufferPool等. Tuple和TupleDesc是数据库表的最基本元素了.Tuple就是一个若干个Field的,TupleDesc则是一个表的meta-data,包括每列的field name和type. HeapPage和HeapFil…
这个叫什么?Write Up吗 lab0 lab0要做的事,实现buffer部分的功能,要自己写变量以及实现接口. 成员函数 write()向buffer内写数据,peek_out()  pop_out()  read()  函数从buffer内读数据, buffer长度capacity,需要变量记录向buffer内一共写入和读取过多长的数据. 有些变量在后面的lab会用上,第一次写真不容易想,好些都是参照别人的博客写的. lab1 // Construct a `StreamReassembl…
目录 一.实验目标概述 二.实验环境配置 1.安装编写java程序的IDE--IntelliJ IDEA 2.安装Git 3.安装Junit 4.GitHub Lab1仓库的URL地址 三.实验过程 1.Magic Squares (1)isLegalMagicSquare() (2)generateMagicSquare() (3)源代码 2.Turtle Graphics (1)Problem 1:Clone and import (2)Problem 3:Turtle graphics a…
首发于公众号:努力学习的阿新 前言 大家好,这里是阿新. MIT 6.824 是麻省理工大学开设的一门关于分布式系统的明星课程,共包含四个配套实验,实验的含金量很高,十分适合作为校招生的项目经历,在文章<2022 双非应届 CS 硕士校招上岸字节跳动(校招总结)>中,我也将其推荐给了各位读者.但由于课程是全英的,实验说明也是全英的,实验过程中还需要阅读相关的英文文献,很多同学(包括曾经的笔者)受困于英语,对其望而却步.因此,笔者决定开启系列文章:MIT 6.824(Spring 2020)实验…
Junit和Hamcrest的安装需要先把两个jar文件下载到本地,具体取得方式多种多样,我是直接从同学那要的.新建一个java项目,在新建时直接在库中导入这两个包即可. 这次编程内容是一个测试三角形类型的小程序,具体代码在GitHub上已详细给出,这里主要是对测试进行讨论.有四种类型,分别为not a triangle, equilateral, isosceles and scalene. 我输入了如下八项进行测试: public static Collection prepareData(…
源代码参见我的github: https://github.com/YaoZengzeng/MIT-6.824 Part I: Word count MapReduce操作实际上就是将一个输入文件拆分成M份,交由M个Map task进行操作.每个Map task生成R个包含中间键值对的结果.R个Reduce task执行Reduce操作,其中第i个Reduce task操作每个Map task的第i个输出文件.最终,生成R个结果文件,通过Merge操作,将结果生成一个输出文件. 1.mapred…
终于把Mit的分布式系统导论课的实验1-6写完了 做得有些痛苦,但是收获也很大 http://pdos.csail.mit.edu/6.824-2012/labs/index.html 把实验1-6用导图做个小结吧,希望对后来的同学有些小用,欢迎讨论啊,最近老板项目来了,估计7真的没有时间做了,RSM有谁做了,交流一下啊…
代码地址:  https://github.com/newff/st-lab1 Tasks: Install Junit(4.12), Hamcrest(1.3) with Eclipse Install Eclemma with Eclipse Write a java program for the triangle problem and test the program with Junit. a)       Description of triangle problem: Funct…