-
南京大学的操作系统实验指导教程
资源介绍
目录
I 基础知识9
1 MINIX操作系统简介11
1.1 MINIX与UNIX . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2 探索MINIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3 编辑器:vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4 编译器:CC . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.5 实习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2 Intel 8086体系结构19
2.1 8086 CPU结构. . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2 运算器与指令部件. . . . . . . . . . . . . . . . . . . . . . . . 19
2.3 寄存器组. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4 主存. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.5 堆栈. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.6 系统启动. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.7 二进制文件结构. . . . . . . . . . . . . . . . . . . . . . . . . . 25
3 ACK 8086汇编语言27
3.1 寻址. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2 数据移动指令. . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3 常量、标号、数据与全局变量. . . . . . . . . . . . . . . . . . 29
3.4 运算指令. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.5 标志位操纵指令. . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.6 串操作指令. . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.7 跳转、分支与循环. . . . . . . . . . . . . . . . . . . . . . . . 33
3.8 堆栈与子程序. . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5
6 目录
4 实习:Hello World 37
4.1 Hello World程序. . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2 实习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
II 汇编语言进阶41
5 C与汇编联合开发43
5.1 函数调用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.2 全局与局部变量. . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.3 编译与连接. . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.4 实习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6 中断与I/O 49
6.1 中断. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.2 输入输出设备. . . . . . . . . . . . . . . . . . . . . . . . . . . 51
6.3 编写中断处理程序. . . . . . . . . . . . . . . . . . . . . . . . 51
6.4 实习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
7 实习:小游戏55
7.1 make工具. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
7.2 实习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
III 操作系统内核59
8 进程切换61
8.1 进程模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.2 进程的实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
8.3 进程切换. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.4 中断嵌套. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
8.5 MiniOS中的进程切换. . . . . . . . . . . . . . . . . . . . . . . 68
8.6 操作系统实现原则. . . . . . . . . . . . . . . . . . . . . . . . 69
9 进程通信71
9.1 信号量. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
9.2 消息机制. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
9.3 消息机制的实现. . . . . . . . . . . . . . . . . . . . . . . . . . 76
9.4 调试消息内核. . . . . . . . . . . . . . . . . . . . . . . . . . . 78
目录7
10 实习:操作系统内核83
10.1 引导操作系统. . . . . . . . . . . . . . . . . . . . . . . . . . . 83
10.2 微内核与层次式操作系统结构. . . . . . . . . . . . . . . . . . 83
10.3 实习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
IV 轻量操作系统实现87
11 设备驱动程序89
11.1 设备驱动程序原理. . . . . . . . . . . . . . . . . . . . . . . . 89
11.2 键盘设备. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
11.3 屏幕设备. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
11.4 死锁的产生与预防. . . . . . . . . . . . . . . . . . . . . . . . 93
12 存储管理95
12.1 存储管理与系统调用服务进程. . . . . . . . . . . . . . . . . . 95
12.2 进程映像的创建与终止. . . . . . . . . . . . . . . . . . . . . . 97
12.3 替换进程映像. . . . . . . . . . . . . . . . . . . . . . . . . . . 98
13 文件系统101
13.1 文件与目录. . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
13.2 文件与目录管理. . . . . . . . . . . . . . . . . . . . . . . . . . 103
13.3 文件描述符. . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
14 实习:迷你操作系统109
14.1 一个简易的Shell . . . . . . . . . . . . . . . . . . . . . . . . . . 109
14.2 实习题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
附录111
A vi常用命令113
B 虚拟机与外部的文件交换117
- 上一篇: 东北大学 操作系统实验
- 下一篇: 大学计算机科学与技术课程设计