第l章 引言 
1.1 什么是操作系统 
1.1.1 操作系统作为虚拟机 
1.1.2 操作系统作为资源管理器 
1.2 操作系统发展历史 
1.2.1 第一代计算机(1945~1955):真空管和插板 
1.2.2 第二代计算机(1955~1965):晶体管和批处理系统 
1.2.3 第三代计算机(1965~1980):集成电路芯片和多道程序 
1.2.4 第四代计算机(1980~现在):个人计算机 
1.2.5 minix的历史 
1.3 操作系统基本概念 
1.3.1 进程 
1.3.2 文件 
1.3.3 命令解释器 
1.4 系统调用 
1.4.1 进程管理系统调用 
1.4.2 信号管理系统调用 
1.4.3 文件管理系统调用 
1.4.4 目录管理系统调用 
1.4.5 保护系统调用 
. 1.4.6 时间管理系统调用 
1.5 操作系统结构 
1.5.1 整体式系统 
1.5.2 层次式系统 
1.5.3 虚拟机系统 
1.5.4 客户—服务器系统 
1.6 各章内容简介 
1.7 小结 
习题 
第2章 进程 
2.1 进程介绍 
2.1.1 进程模型 
2.1.2 进程的实现 
2.1.3 线程 
2.2 进程间通信 
2.2.1 竞争条件 
2.2.2 临界区 
2.2.3 忙等待的互斥 
2.2.4 睡眠和唤醒 
2.2.5 信号量 
2.2.6 管程 
2.2.7 消息传递 
2.3 经典ipc问题 
2.3.1 哲学家进餐问题 
2.3.2 读者与者问题 
2.3.3 理发师睡觉问题 
2.4 进程调度 
2.4.1 时间片轮转调度 
2.4.2 优先级调度 
2.4.3 多重队列 
2.4.4 最短作业优先 
2.4.5 保证调度算法 
2.4.6 彩票调度算法 
2.4.7 实时调度 
2.4.8 两级调度法 
2.4.9 策略与机制 
2.5 minix进程概述 
2.5.1 minix的内部结构 
2.5.2 minix中的进程管理 
2.5.3 minix中的进程间通信 
2.5.4 minix中的进程调度 
2.6 minix中进程的实现 
2.6.1 minix源代码的组织 
2.6.2 公共头文件 
2.6.3 minix头文件 
2.6.4 进程数据结构和头文件 
2.6.5 引导minix 
2.6.6 系统初始化 
2.6.7 minix的中断处理 
2.6.8 minix的进程间通信 
2.6.9 minix的进程调度 
2.6.10 与硬件相关的内核支持 
2.6.11 实用程序和内核库 
2.7 小结 
习题 
第3章 输入/输出系统 
3.1 i/o硬件原理 
3.1.1 i/o设备 
3.1.2 设备控制器 
3.1.3 存储器直接存取 
3.2 i/o软件原理 
3.2.1 i/o软件的目标 
3.2.2 中断处理程序 
3.2.3 设备驱动程序 
3.2.4 与硬件无关的i/o软件 
3.2.5 用户空间的i/o软件 
3.3 死锁 
3.3.1 资源 
3.3.2 死锁的原理 
3.3.3 鸵鸟算法 
3.3.4 死锁检测和恢复 
3.3.5 死锁的预防 
3.3.6 避免死锁 
3.4 minix i/o系统概述 
3.4.1 minix的中断处理程序 
3.4.2 minix的设备驱动程序 
3.4.3 minix中与设备无关的i/o软件 
3.4.4 minix中用户级i/o软件 
3.4.5 minix的死锁处理 
3.5 minix中的块设备 
3.5.1 minix中块设备驱动程序概述 
3.5.2 通用块设备驱动程序软件 
3.5.3 驱动程序库 
3.6 ram盘 
3.6.1 ram盘硬件和软件 
3.6.2 minix中的ram盘驱动程序慨述 
3.6.3 mwde中的ram盘驱动程序实现 
3.7 磁盘 
3.7.1 磁盘硬件 
3.7.2 磁盘软件 
3.7.3 minix中的硬盘驱动程序简介 
3.7.4 minix中的硬盘驱动程序实现 
3.7.5 软盘处理 
3.8 时钟 
3.8.1 时钟硬件 
3.8.2 时钟软件 
3.8.3 minix时钟驱动程序简介 
3.8.4 minix时钟驱动程序实现 
3.9 终端 
3.9.1 终端硬件 
3.9.2 终端软件 
3.9.3 minix中终端驱动程序简介 
3.9.4 设备无关终端驱动程序实现 
3.9.5 键盘驱动程序的实现 
3.9.6 显示驱动程序的实现 
3.10 minix中的系统任务 
3.11 小结 
习题 
第4章 存储器管理 
4.1 基本的内存管理 
4.1.1 没有交换和分页的单道程序 
4.1.2 固定分区的多道程序 
4.2 交换 
4.2.1 使用位图的内存管理 
4.2.2 使用链表的内存管理 
4.3 虚拟存储器 
4.3.1 分页 
4.3.2 页表 
4.3.3 tlb——转换后援存储器 
4.3.4 逆向页表 
4.4 页面替换算法 
4.4.1 最优页面替换算法 
4.4.2 最近未使用页面替换算法 
4.4.3 先进先出页面替换算法 
4.4.4 第二次机会页面替换算法 
4.4.5 时钟页面替换算法 
4.4.6 最久未使用页面替换算法 
4.4.7 用软件仿真lru 
4.5 分页系统中的设计问题 
4.5.1 工作集模型 
4.5.2 局部与全局分配策略 
4.5.3 页面大小 
4.5.4 虚拟存储器界面 
4.6 分段 
4.6.1 纯分段系统的实现 
4.6.2 分段和分页结合:multics 
4.6.3 分段和分页结合:intel的pentium 
4.7 minix内存管理概览 
4.7.1 内存布局 
4.7.2 消息处理 
4.7.3 内存管理器数据结构和算法 
4.7.4 fork、exit和wait系统调用 
4.7.5 exec系统调用 
4.7.6 brk系统调用 
4.7.7 信号处理 
4.7.8 其他系统调用 
4.8 m minix中内存管理的实现 
4.8.1 头文件和数据结构 
4.8.2 主程序 
4.8.3 fork、exit和wait的实现 
4.8.4 exec的实现 
4.8.5 brk的实现 
4.8.6 信号处理的实现 
4.8.7 其他系统调用的实现 
4.8.8 内存管理器工具 
4.9 小结 
习题 
第5章 文件系统 
5.1 文件 
5.1.1 文件命名 
5.1.2 文件结构 
5.1.3 文件类型 
5.1.4 文件存取 
5.1.5 文件属性 
5.1.6 文件操作 
5.2 目录 
5.2.1 层次目录系统 
5.2.2 路径名’ 
5.2.3 目录操作 
5.3 文件系统的实现 
5.3.1 实现文件 
5.3.2 实现目录 
5.3.3 磁盘空间管理 
5.3.4 文件系统的可靠性 
5.3.5 文件系统性能 
5.3.6 日志结构的文件系统 
5.4 安全性 
5.4.1 安全环境 
5.4.2 著名的安全缺陷 
5.4.3 一般的安全性攻击 
5.4.4 安全性的设计原则 
5.4.5 用户验证 
5.5 保护机制 
5.5.1 保护域 
5.5.2 存取控制表 
5.5.3 权限 
5.5.4 隐藏通道 
5.6 minix文件系统概述 
5.6.1 消息 
5.6.2 文件系统布局 
5.6.3 位图 
5.6.4 i节点 
5.6.5 块高速缓存 
5.6.6 目录和路径 
5.6.7 文件描述符 
5.6.8 文件锁 
5.6.9 管道和设备文件 
5.6.10 一个例子:read系统调用 
5.7 minix文件系统的实现 
5.7.1 头文件和全局变量 
5.7.2 表的管理 
5.7.3 主程序 
5.7.4 对单个文件的操作 
5.7.5 目录和路径 
5.7.6 其他系统调用 
5.7.7 i/o设备界面 
5.7.8 一般的实用程序 
5.8 小结 
习题 
第6章 阅读材料和参考文献 
6.1 推荐的进一步的阅读材料 
6.1.1 介绍和概论 
6.1.2 进程 
6.1.3 输入/输出 
6.1.4 存储器管理 
6.1.5 文件系统 
6.2 按字母排序的参考文献 

10-03 22:31