内容简介
第1章 操作系统概述
1.1 什么是操作系统
1.2 操作系统的目标和功能
1.2.1 操作系统的目标
1.2.2 操作系统的功能
1.3 操作系统的发展历程
1.3.1 操作系统的形成
1.4.1 多道批处理操作系统
1.4 操作系统的分类
1.3.2 操作系统的完善
1.4.2 分时操作系统
1.4.3 实时操作系统
1.4.4 通用操作系统
1.4.5 网络操作系统
1.4.6 分布式操作系统
1.4.7 微机操作系统
1.4.8 嵌入式操作系统
1.4.9 多处理机操作系统
1.5 支持操作系统的硬件环境
1.6 操作系统的特征和服务
1.6.1 操作系统的特征
1.6.2 操作系统的服务
1.7 典型的现代操作系统
1.7.1 Windows
1.7.2 UNIX系统
1.7.3 Linux系统
习题1
第2章 作业管理
2.1 作业的基本概念
2.1.1 作业的定义
2.1.2 作业的分类
2.2 批处理作业控制
2.2.1 作业状态
2.2.2 作业控制块
2.2.3 作业控制过程
2.3.1 作业调度算法的目标与设计因素
2.3 调度算法
2.3.2 单道批处理作业调度算法
2.3.3 多道批处理作业调度算法
2.4 交互式作业控制
2.4.1 命令接口的结构
2.4.2 联机命令
2.4.3 命令解释程序
2.4.4 终端处理程序
2.4.5 交互式系统实例——分时系统
习题2
第3章 进程管理
3.1 多道程序设计
3.2 进程的概念
3.2.1 前驱图和程序执行
3.2.2 进程的描述
3.3 进程控制块和状态转换
3.3.1 进程控制块(PCB)
3.3.2 进程状态及其转换
3.4.1 操作系统控制结构
3.4 进程控制
3.4.2 进程创建与终止
3.4.3 进程的阻塞与唤醒
3.4.4 进程的挂起与激活
3.4.5 进程间的相互关系
3.5 线程
3.5.1 线程的引入
3.5.2 线程的结构与线程控制块(TCB)
3.5.3 线程与进程
3.5.4 线程的实现
3.5.5 线程的应用
习题3
第4章 中断和处理机调度
4.1 中断
4.1.1 中断和指令周期
4.1.2 中断处理
4.1.3 多个中断
4.2 处理机调度
4.2.1 高级、中级和低级调度
4.1.4 多道程序设计
4.2.2 进程调度方式
4.2.3 调度算法
4.2.4 调度时机
4.3 实时调度
4.3.1 实现实时调度的基本条件
4.3.2 实时调度算法的分类
4.3.3 实时调度算法
4.4.1 多处理机系统的类型
4.4 多处理机调度
4.4.2 自调度
4.4.3 组调度
习题4
第5章 并发性:互斥、同步和通信
5.1 并发的原理
5.1.1 与时间有关的错误
5.1.2 互斥与同步的概念
5.1.3 临界区与进程互斥
5.1.4 硬件支持互斥的方法
5.2 信号量机制
5.2.1 信号量的概念
5.2.2 信号量的应用
5.2.3 生产者-消费者问题
5.2.4 哲学家进餐问题
5.2.5 读者-写者问题
5.3 管程机制
5.3.1 管程的概念
5.3.2 生产者-消费者问题
5.3.3 哲学家进餐问题
5.4 进程通信
5.4.1 进程通信的方式
5.4.2 消息缓冲通信
5.4.3 信箱通信
5.4.4 共享文件通信
5.4.5 消息传递系统的若干问题
习题5
6.1 死锁的概念
第6章 并发性:死锁
6.2 产生死锁的条件和处理
6.2.1 必要条件
6.2.2 处理死锁的基本方法
6.3 死锁的预防
6.3.1 预先分配策略
6.3.2 有序分配策略
6.4.1 系统安全状态
6.4 死锁的避免
6.4.2 银行家算法
6.5 死锁的检测与解除
6.5.1 死锁的检测
6.5.2 死锁的解除
6.6 死锁的综合处理策略
习题6
第7章 内存管理
7.1 内存管理的功能
7.1.1 内存分配
7.1.2 地址变换
7.1.3 存储保护
7.1.4 存储共享
7.1.5 存储扩充
7.2 程序的加载和链接
7.2.1 程序的加载
7.2.2 程序的链接
7.3 连续分配方式
7.3.1 单一连续分配
7.3.2 固定分区分配
7.3.3 动态分区分配
7.3.4 可重定位分区分配
7.3.5 交换和覆盖
7.4 基本分页分配方式
7.4.1 页面与页表
7.4.2 地址变换机构
7.4.3 页面大小
7.5 基本分段分配方式
7.5.1 段表
7.5.2 地址变换机构
7.5.3 共享与保护
7.6 虚拟页式分配
7.6.1 虚拟存储器
7.5.4 分页与分段的区别
7.6.2 请求分页概念
7.6.3 请求分页硬件支持
7.6.4 内存分配策略
7.6.5 内存分配方法
7.6.6 缺页处理
7.7.1 最优页面置换算法
7.7 页面置换算法
7.7.2 先进先出置换算法
7.7.3 最近最少使用置换算法
7.7.4 用软件模拟LRU算法
7.7.5 时钟算法
7.7.6 改进时钟算法
7.7.7 工作集模型
7.8 虚拟段式分配
7.8.3 缺段中断
7.8.1 请求分段中的硬件支持
7.8.2 地址变换机构
7.9 段页式分配方式
7.9.1 段页式分配的原理
7.9.2 段页式分配的地址变换
7.9.3 分段和分页的结合:Inter Pentium
习题7
8.1 I/O系统
8.1.1 设备的分类
第8章 设备与I/O管理
8.1.2 设备的标识
8.1.3 I/O系统的结构
8.2 I/O设备数据传输控制方式
8.2.1 程序直接控制方式
8.2.2 中断控制方式
8.2.3 DMA控制方式
8.2.4 通道控制方式
8.3 设备管理与功能
8.4.1 设备分配中的数据结构
8.4 设备分配
8.4.2 设备分配应考虑的因素和分配技术
8.4.3 设备分配算法
8.4.4 SPOOLING系统
8.5 缓冲技术
8.5.1 缓冲的引入
8.5.2 单缓冲
8.5.3 双缓冲
8.5.4 循环缓冲
8.5.5 缓冲池
8.6 设备驱动程序
8.6.1 设备驱动程序的功能和特点
8.6.2 设备驱动程序的处理过程
8.7 磁盘存储器管理
8.7.1 磁盘I/O
8.7.2 磁盘调度算法
8.8 RAID技术
8.8.1 RAID技术的引入
8.8.2 RAID分级
习题8
第9章 文件管理
9.1 文件系统的概念
9.1.1 文件和文件系统
9.1.2 文件分类
9.1.3 文件操作
9.2 文件的逻辑结构
9.2.1 文件逻辑结构的类型
9.2.3 索引文件
9.2.2 顺序文件
9.2.4 索引顺序文件
9.2.5 直接文件和散列文件
9.3 文件的物理结构
9.3.1 顺序结构
9.3.2 链接结构
9.3.3 索引结构
9.4 文件的存取方法
9.4.1 顺序存取
9.4.3 按键存取
9.4.2 直接存取
9.5 文件目录
9.5.1 文件控制块与索引结点
9.5.2 文件目录与目录文件
9.5.3 目录结构
9.5.4 目录查询技术
9.6 文件存储空间管理
9.6.1 空闲表和空闲链表
9.6.2 位示图
9.6.3 UNIX成组链接
9.7.1 文件共享的模式
9.7 文件共享和保护
9.7.2 文件的保护
习题9
第10章 操作系统接口
10.1 作业级接口
10.1.1 脱机用户接口
10.1.2 联机用户接口
10.2 图形用户接口
10.3.1 Shell命令语言
10.3 Shell语言
10.3.2 Shell过程
10.4 系统调用
10.4.1 系统调用简介
10.4.2 系统调用的类型
10.4.3 系统调用的实现
习题10
11.1 网络操作系统概述
11.1.1 计算机网络
第11章 网络操作系统
11.1.2 网络操作系统的功能
11.1.3 网络操作系统的特性
11.2 网络操作系统的工作模式
11.3 基本通信技术
11.3.1 消息传递
11.3.2 远程过程调用
11.3.3 socket系统调用
11.4.2 数据和软件资源共享
11.4 网络资源共享技术
11.4.1 硬件资源共享
11.5 网络文件系统
11.5.1 NFS组成
11.5.2 NFS体系结构
11.5.3 NFS实现分析
习题11
12.1 Linux系统特征与结构
12.1.1 Linux简介
第12章 Linux/UNIX系统
12.1.2 内核结构
12.2 进程管理
12.2.1 进程控制块结构
12.2.2 进程调度算法和调度策略
12.2.3 进程使用的文件
12.2.4 进程使用的虚拟内存
12.2.5 系统调用
12.2.6 进程的创建与终止
12.3.1 信号
12.3 进程间通信机制
12.3.2 管道
12.3.3 消息队列
12.3.4 信号量
12.3.5 共享内存
12.4 存储管理
12.4.1 进程的虚存空间
12.4.2 Linux的多级页表
12.4.3 物理内存管理
12.4.4 页面更换
12.5 I/O管理
12.5.1 设备管理概述
12.5.2 设备驱动程序与内核接口
12.6 文件系统
12.6.1 第二扩展文件系统(ext2)
12.6.2 虚拟文件系统(VFS)
习题12
参考文献