图书目录

第1章实验0: 操作系统实验准备1

1.1实验目的1

1.2准备知识1

1.2.1了解OS实验1

1.2.2设置实验环境2

1.2.3了解编程开发调试的基本工具14

1.2.4基于硬件模拟器实现源码级调试23

1.2.5了解处理器硬件31

1.2.6了解ucore编程方法和通用数据结构34第2章实验1: 系统软件启动过程41

2.1实验目的41

2.2实验内容41

2.2.1练习41

2.2.2项目组成45

2.3从机器启动到操作系统运行的过程48

2.3.1BIOS启动过程48

2.3.2bootloader启动过程48

2.3.3操作系统启动过程57

2.4实验报告要求66

辅助材料A关于A20 Gate66

辅助材料B启动后第一条执行的指令68第3章实验2: 物理内存管理70

3.1实验目的70

3.2实验内容70

3.2.1练习70

3.2.2项目组成71

3.3物理内存管理概述73

3.3.1实验执行流程概述73

3.3.2探测系统物理内存布局75

3.3.3以页为单位管理物理内存75

3.3.4物理内存页分配算法实现78

3.3.5实现分页机制81

3.3.6自映射机制88

3.4实验报告要求90

辅助材料A探测物理内存分布和大小的方法90

辅助材料B实现物理内存探测91

辅助材料C链接地址、虚拟地址、物理地址、加载地址

以及edata/end/text的含义92第4章实验3: 虚拟内存管理96

4.1实验目的96

4.2实验内容96

4.2.1练习96

4.2.2项目组成97

4.3虚拟内存管理概述98

4.3.1基本原理概述98

4.3.2实验执行流程概述99

4.3.3关键数据结构和相关函数分析100

4.4Page Fault异常处理102

4.5页面置换机制的实现104

4.5.1页替换算法104

4.5.2页面置换机制105

4.6实验报告要求108

辅助材料A: 正确输出的参考109第5章实验4: 内核线程管理111

5.1实验目的111

5.2实验内容111

5.2.1练习111

5.2.2项目组成112

5.3内核线程管理114

5.3.1实验执行流程概述114

5.3.2设计关键数据结构——进程控制块115

5.3.3创建并执行内核线程117

5.4实验报告要求122

辅助材料A实验4的参考输出123

辅助材料B“原理”进程的属性与特征解析124第6章实验5: 用户进程管理127

6.1实验目的127

6.2实验内容127

6.2.1练习127

6.2.2项目组成128

6.3用户进程管理130

6.3.1实验执行流程概述130

6.3.2创建用户进程131

6.3.3进程退出和等待进程136

6.3.4系统调用实现137

6.4实验报告要求141

辅助材料A“原理” 用户进程的特征141第7章实验6: 调度器145

7.1实验目的145

7.2实验内容145

7.2.1练习145

7.2.2项目组成146

7.3调度框架和调度算法设计与实现147

7.3.1实验执行流程概述147

7.3.2计时器的原理和实现147

7.3.3进程状态148

7.3.4进程调度实现149

7.3.5调度框架和调度算法150

7.3.6Stride Scheduling154

7.4实验报告要求158

辅助材料A执行priority大致的显示输出158第8章实验7: 同步互斥160

8.1实验目的160

8.2实验内容160

8.2.1练习160

8.2.2项目组成161

8.3同步互斥的设计与实现162

8.3.1实验执行流程概述162

8.3.2同步互斥的底层支撑163

8.3.3信号量165

8.3.4管程和条件变量167

8.4实验报告要求171

辅助材料A执行make runmatrix大致的显示输出171第9章实验8: 文件系统173

9.1实验目的173

9.2实验内容173

9.2.1练习173

9.2.2项目组成173

9.3文件系统的设计与实现176

9.3.1ucore文件系统总体介绍176

9.3.2通用文件系统访问接口179

9.3.3Simple FS文件系统179

9.3.4文件系统抽象层——VFS183

9.3.5设备层文件I/O层185

9.3.6实验执行流程概述189

9.3.7文件操作实现190

9.4实验报告要求193