6.828 lab4 Preemptive Multitasking

Part A: Multiprocessor Support and Cooperative Multitasking Exercise 1 实现 mmio_map_region MMIO 区域的基地址为 MMIOBASE,我们要将 [pa, pa+size] 映射到 [MMIOBASE, MMIOBASE+size],因为这里是 device memory 所以 cache 不可用,可以

6.828 lab3 User Environments

Part A: User Environments and Exception Handling Exercise 1 修改 kern/pmap.c 中的 mem_init(),分配存放 env 数组的内存,并且完成内存空间映射 代码实现: Exercise 2 实现下列函数 env_init(): 初始胡 env 数组,将数组

6.828 lab2 Memory Management

Part 1: Physical Page Management Exercise 1 实现 kern/pmap.c 中的下列四个函数 boot_alloc() mem_init() page_init() page_alloc() page_free() 首先实现 boot_alloc(), 根据注释,实现三点 如果 n > 0 分配 n 个字节的物理内存,不需要初始化 如果 n = 0 直接将下个

6.828 lab1 Booting a PC

Part 1: PC Bootstrap Exercise 1 通过 PC Assembly Language Book 了解汇编语言,不需要现在就去读这些,但是要在读写 x86 汇编时知道去查阅这些资料。 建议阅读 Brennan’s Guide to Inline Assembly 了解 AT&T 汇编语法,因为 Jos