MIT 6.828 Lab04 : Preemptive Multitasking】的更多相关文章

目录 Part A:Multiprocessor Support and Cooperative Multitasking Multiprocessor Support 虚拟内存图 Exercise 01 Application Processor Bootstrap Exercise 02 Question Per-CPU State and Initialization Exercise 03 Exercise 04 Locking Exercise 05 Question Round-Ro…
Lab4 Preemptive Multitasking(下) lab4的第二部分要求我们实现fork的cow.在整个lab的第一部分我们实现了对多cpu的支持和再多系统环境中的切换,但是最后分析的时候没有分析环境创建的系统调用,这里先补一下对环境创建的系统调用的分析 recall A续 这里的分析要从user/dumpfork.c开始 umain(int argc, char **argv) { envid_t who; int i; // fork a child process who =…
Lab4 Preemptive Multitasking(上) PartA : 多处理器支持和协作多任务 在实验的这部分中,我们首先拓展jos使其运行在多处理器系统上,然后实现jos内核一些系统功能调用以支持用户级环境去创建新环境.我们还需要实现协同式轮询调度(cooperative round-robin scheduling)算法,允许内核在旧的用户环境资源放弃CPU或者退出的时候切换到一个新的用户环境. 1. Multiprocessor Support 下面是一段对实验指导书的翻译. 我…
Lab 4: Preemptive Multitasking tags: mit-6.828, os 概述 本文是lab4的实验报告,主要围绕进程相关概念进行介绍.主要将四个知识点: 开启多处理器.现代处理器一般都是多核的,这样每个CPU能同时运行不同进程,实现并行.需要用锁解决多CPU的竞争. 实现进程调度算法. 实现写时拷贝fork(进程创建). 实现进程间通信. Part A: Multiprocessor Support and Cooperative Multitasking 该部分做…
MIT 6.828 课程介绍 本文是对MIT 6.828操作系统课程介绍的简单摘录,详细介绍见6.828: Learning by doing以及朱佳顺的推荐一门课:6.828.学习资源均可以在课程主页找到,包括课程讲义.源代码.工具使用.实验作业等.2017年的课程主页中没有教学视频,想看视频的可以在2011年的课程主页中找.(无字幕,再加上我英语听力很差,基本听不懂......) what you will learn virtual memory, kernel and user mode…
Lab 1 Part 1: PC bootstrap 我们继续~ PC机的物理地址空间 这一节我们将深入的探究到底PC是如何启动的.首先我们看一下通常一个PC的物理地址空间是如何布局的:                           这张图仅仅展示了内存空间的一部分. 第一代PC处理器是16位字长的Intel 8088处理器,这类处理器只能访问1MB的地址空间,即0x00000000~0x000FFFFF.但是这1MB也不是用户都能利用到的,只有低640KB(0x00000000~0x00…
0. 简介 操作系统是计算机科学中十分重要的一门基础学科,是一名计算机专业毕业生必须要具备的基础知识.但是在学习这门课时,如果仅仅把目光停留在课本上一些关于操作系统概念上的叙述,并不能对操作系统有着深层次的理解.必须要结合动手实践,才能真正掌握核心的知识. MIT的操作系统课程6.828是一门被广泛好评的入门课程.它最重要的特点就是它实践第一的教学原则.在这门课程中会涉及到非常丰富的实验,也会有非常多的动手机会.而且授课者更是亲自构建了一个简化的基于Unix内核的操作系统xv6.所有的实验都是在…
Homework 2的网站链接:MIT 6.828 Homework 2: shell 题目 下载sh.c文件,在文件中添加相应代码,以支持以下关于shell的功能: 实现简单shell命令,比如cat/echo/grep/ls/sort/uniq/wc等 实现I/O重定向 实现管道 Optional challenge exercises: Implement lists of commands, separated by ";" Implement sub shells by im…
本作业的网站链接:MIT 6.828 Homework 1: boot xv6 问题 Exercise: What is on the stack? While stopped at the above breakpoint, look at the registers and the stack contents: (gdb) info reg ... (gdb) x/24x $esp ... (gdb) Write a short (3-5 word) comment next to eac…
本实验的网站链接:MIT 6.828 Lab 1 Exercise 12. 题目 Exercise 12. Modify your stack backtrace function to display, for each eip, the function name, source file name, and line number corresponding to that eip. In debuginfo_eip, where do __STAB_* come from? This q…