lab4:抢占式多任务处理(PartA)

lab通关记录

MIT-6.828实验通关记录

介绍

上个实验我们使用内核创建了进程,但是并没有实现进程父子创建,调度,和通信。

在本实验中,我们将实现多个进程之间的抢占式切换。

在 A 部分,我们将为 JOS 添加多处理器支持,实现循环调度,并添加基本的环境管理系统调用(创建和销毁环境以及分配/映射内存的调用)。同时实现了spinlocksleep lock

在 B 部分,我们将实现一个类 Unix 的fork,它允许用户模式环境创建其自身的副本。

在 C 部分,我们将添加对进程间通信 (IPC) 的支持,允许不同的用户模式环境显式地相互通信和同步。您还将添加对硬件时钟中断和抢占的支持。

More...

lab3:PartB

lab通关记录

MIT-6.828实验通关记录

B 部分:页面错误、断点异常和系统调用

改进异常代码,进行更细化的处理。

分别以下实现

  1. 增加页面错误处理函数
  2. 断点监视以便monitor使用
  3. 简单的系统调用实现
  4. 获取env_id的完善
  5. 缺页的简单处理

Exercise5

More...

lab3:用户环境(PartA)

lab通关记录

MIT-6.828实验通关记录

作者说:从这个实验开始,我逐渐开始感觉到随着理论的补充和实验能力的提升,此后将直接按照exercise顺序记录实验: 将按情况删减“关键文件注释”部分,取而代之是实验笔记中的更直接,简短的数据结构和函数。

大家应该要多看课程,理论书籍,而不是一开始直接上实验:因为大部分实验都是理论的简化实现(逃)。

介绍

在本实验中,我们将实现运行受保护的用户模式环境(即“进程”)所需的基本内核工具。

第一部分将实现内核中创建进程,手动加载磁盘代码中(没有文件系统),中断初始化。

第二部分将实现系统调用,特权保护,缺页的基本处理。

后续实验将丰富中断处理。

More...

实验 2:内存管理

lab通关记录

MIT-6.828实验通关记录

介绍

在本实验中,将为操作系统编写内存管理代码。内存管理有两个组成部分。

第一部分是内核的物理内存分配器,以便内核可以分配内存并稍后释放它。分配器将以 4096 字节为一页运行。我们将维护数据结构,记录哪些物理页面是空闲的,哪些已分配,以及有多少进程正在共享每个分配的页面。并且还将编写分配和释放内存页的代码。

第二部分是虚拟内存,它将内核和用户软件使用的虚拟地址映射到物理内存中的地址。x86 硬件的内存管理单元 (MMU) 在指令使用内存时执行映射,查询一组页表。我们将编写页表填写的代码。

More...

linux 系统调用

todo

1.攻克linux L10/L11/L7/L8/L16/L17/L18/L19

2.L8信号量的没看懂

3.L13内存锁定和保护

4.不太明白:I/O复用不熟悉,内存高级应用,信号量高级应用,进程优先级,

快速回忆系统调用和一些零碎的shell命令

More...
  • Copyrights © 2020-2024 环烷烃
  • Visitors: | Views:

我很可爱,请我喝一瓶怡宝吧~

支付宝
微信