内容简介
第1章 操作系统概论
1.1 操作系统的概念
1.2 操作系统的形成和发展
1.2.1 人工操作阶段
1.2.2 脱机输入输出技术
1.2.3 批处理技术
1.2.4 多道程序设计技术
1.3 操作系统的基本类型
1.3.1 多道批处理操作系统
1.3.2 分时系统
1.3.3 实时系统
1.3.4 网络操作系统
1.3.5 分布式操作系统
1.3.6 五大类型操作系统特点的比较
1.4 操作系统的特征与功能
1.4.1 操作系统的特征
1.4.2 操作系统的功能
1.4.3 操作系统的性能评价
1.5 安全操作系统
1.6 操作系统的结构设计模式
1.6.1 模块化结构
1.6.2 层次化结构
1.6.3 客户/服务器结构
1.7 小结
1.6.5 对称多处理模式
1.6.4 对象模式
习题一
第2章 进程控制与同步
2.1 进程的引入
2.1.1 前趋图
2.1.2 程序的顺序执行及其特性
2.1.3 程序的并发执行及其特性
2.1.4 程序并发执行的条件
2.2 进程的描述
2.2.1 进程的定义及特征
2.2.2 进程的状态
2.2.3 进程控制块PCB
2.3 进程控制
2.3.1 进程创建与撤消
2.3.2 进程的阻塞与唤醒
2.3.3 进程挂起与激活
2.4 线程
2.4.1 线程的引入
2.4.2 线程的定义
2.4.3 线程与进程的比较
2.5 进程的互斥
2.5.1 资源共享所引起的制约
2.5.2 互斥的加锁实现
2.5.3 信号量和P,V原语
2.5.4 用P,V原语实现进程互斥
2.6.1 同步的概念
2.6 进程同步
2.6.2 私用信号量
2.6.3 用P,V原语操作实现同步
2.7 经典进程的同步问题
2.7.1 生产者-消费者问题
2.7.2 读者-写者问题
2.7.3 哲学家进餐问题
2.8 管程机制
2.8.1 管程的基本概念
2.8.2 利用管程解决生产者-消费者问题
2.9 进程通信
2.9.1 进程通信的类型
2.9.2 直接通信和间接通信方式
2.9.3 消息传递系统中的几个问题
2.9.4 消息缓冲队列通信机制
2.10 小结
习题二
第3章 调度与死锁
3.1 处理机调度
3.1.1 调度的层次
3.1.2 进程调度
3.2 调度算法
3.3 死锁
3.3.1 死锁的起因及概念
3.3.2 产生死锁的必要条件
3.3.3 死锁举例及对策
3.4 死锁的预防
3.5 死锁的避免和银行家算法
3.5.1 系统资源分配状态
3.5.2 银行家算法
3.5.3 银行家算法的例子
3.6 死锁的检测与解除
3.6.1 死锁的检测
3.6.2 死锁的解除
3.7 小结
习题三
第4章 作业管理
4.1 作业的基本概念
4.1.1 作业的定义
4.1.2 作业组织
4.1.3 作业管理的基本功能
4.1.4 作业的状态及其转换
4.2 作业管理的任务
4.3 作业调度及常用作业调度算法
4.3.1 作业调度
4.3.2 调度性能的衡量
4.3.3 常用作业调度算法
4.4 联机命令接口
4.4.1 联机命令的类型
4.4.2 键盘终端处理程序
4.4.3 命令解释程序
4.5 系统调用
4.5.1 系统调用的基本概念
4.5.2 系统调用的类型
4.5.3 系统调用的实现
4.6 图形用户接口
4.6.1 桌面、图标和任务栏
4.6.2 窗口
4.6.3 对话框
4.7 小结
习题四
第5章 存储管理
5.1 存储管理的概述
5.1.1 存储管理的功能
5.1.2 地址重定位
5.2 连续分配存储管理
5.2.2 分区分配
5.2.1 单一连续分配
5.2.3 覆盖与交换技术
5.3 分页存储管理
5.3.1 页面与页表
5.3.2 地址变换机构
5.3.3 两级和多级页表
5.3.4 分页存储管理算法
5.3.5 分页存储管理方案的评价
5.4 分段存储管理
5.4.1 分段存储管理方式的引入
5.4.2 分段系统的基本原理
5.4.3 信息共享
5.5.1 虚拟存储器的引入
5.5 虚拟存储器
5.5.2 虚拟存储器的实现方法
5.5.3 虚拟存储器的特征
5.6 请求分页系统
5.6.1 请求分页管理
5.6.2 页表
5.6.3 缺页中断与地址变换
5.6.4 页面调度策略
5.6.5 页面置换算法
5.6.6 页的共享和保护
5.7 请求分段式存储管理
5.7.1 请求分段中的硬件支持
5.7.2 分段共享与保护
5.8.1 段页式存储管理的实现
5.8 段页式存储管理
5.8.2 段页式存储管理的评价
5.9 小结
习题五
第6章 设备管理
6.1 设备管理概述
6.1.1 设备分类
6.1.2 设备管理的任务和功能
6.2 数据传送控制方式
6.2.1 程序直接控制方式
6.2.2 中断方式
6.2.3 DMA方式
6.2.4 通道控制方式
6.3 中断技术
6.3.1 中断的基本概念
6.3.2 中断的分类与优先级
6.3.3 软中断
6.3.4 中断处理过程
6.4 缓冲技术
6.4.1 缓冲的引入
6.4.2 单缓冲和双缓冲
6.4.3 循环缓冲
6.4.4 缓冲池(Buffer Pool)
6.5 设备的分配
6.5.1 设备分配中的数据结构
6.5.2 设备分配时应考虑的因素
6.5.3 设备独立性
6.5.4 独占设备的分配程序
6.6 磁盘调度
6.6.1 磁盘调度
6.6.2 磁盘调度算法
6.7 I/O软件的层次结构
6.7.1 中断处理程序
6.7.2 设备驱动程序
6.7.3 与设备无关的软件
6.7.4 用户空间的软件
6.8.1 什么是SPOOLing
6.8.2 SPOOLing系统的组成
6.8 SPOOLing技术
6.8.3 共享打印机
6.8.4 SPOOLing系统的特点
6.9 小结
习题六
第7章 文件管理
7.1 文件系统的概念
7.1.1 文件系统的引入
7.1.2 文件和文件系统
7.1.3 文件类型和文件系统模型
7.1.4 文件管理的功能
7.2 文件的结构和存取方法
7.2.1 文件的逻辑结构
7.2.2 文件的物理结构
7.2.3 文件的存取方法
7.2.4 文件结构、文件存储设备和存取法的关系
7.3 文件存储设备及存储空间管理
7.3.1 文件的存储设备
7.3.2 文件存储空间管理
7.3.3 空白块链
7.3.4 位示图(BitMap)
7.4 文件目录结构
7.4.1 文件控制块
7.4.2 一级目录结构
7.4.3 二级目录结构
7.4.4 目录树结构
7.4.5 目录树的构造
7.5.1 存取控制表
7.5 文件共享与文件保护
7.5.2 口令
7.5.3 密码
7.6 文件的使用
7.6.1 文件的创建和删除
7.6.2 文件的打开和关闭
7.6.3 文件的读写
7.7 小结
习题七
第8章 UNIX操作系统
8.1 UNIX操作系统概述
8.1.1 UNIX的历史
8.1.3 UNIX系统的结构
8.1.2 UNIX系统的特征
8.1.4 UNIX系统的内核结构
8.2 UNIX的进程
8.2.1 进程的描述
8.2.2 进程状态及其转换
8.2.3 进程上下文
8.2.4 进程控制
8.2.5 进程调度和切换
8.2.6 进程的同步与通信
8.3 存储器管理
8.3.1 请求调页管理的数据结构
8.3.2 换页进程
8.4.1 设备缓冲管理
8.3.3 请求调页
8.4 设备管理
8.4.2 核心与设备驱动程序的接口
8.4.3 磁盘驱动程序
8.5 文件管理
8.5.1 文件存储空间的管理
8.5.2 文件的物理结构
8.5.3 用户文件描述符表和文件表
8.6 目录管理
8.7 文件系统的系统调用
8.7.1 系统调用Open
8.7.2 系统调用creat
8.7.4 系统调用link和unlink
8.7.3 系统调用close
8.7.5 系统调用read和write
8.8 小结
习题八
第9章 Linux操作系统简介
9.1 Linux简介
9.1.1 Linux的发展过程
9.1.2 Linux内核结构
9.1.3 Linux运行模式、地址空间与上下文
9.2 Linux进程管理
9.2.1 Linux进程控制块结构
9.2.2 进程调度算法和调度策略
9.2.4 进程使用的虚拟内存
9.2.3 进程使用的文件
9.2.5 系统调用
9.2.6 进程的创建与终止
9.3 进程间的通讯机制
9.3.1 信号(signal)
9.3.2 管道(Pipe)
9.3.3 消息队列
9.3.4 信号量
9.3.5 共享内存
9.4 Linux存储管理
9.4.1 虚拟内存的实现机理
9.4.2 80386体系结构的存储管理功能
9.4.3 Linux分页管理机制
9.4.4 空闲物理内存空间管理
9.4.5 虚拟段的组织
9.4.6 共享内存
9.4.7 请求换页与页面换入
9.4.8 交换空间
9.4.9 换出与丢弃页面
9.4.10 存储管理系统的高速缓冲机制
9.5 Linux文件系统
9.5.1 Linux文件系统的特点
9.5.2 EXT2文件系统物理结构
9.5.4 EXT2超级块
9.5.6 EXT2目录
9.5.7 EXT2文件查找
9.5.5 EXT2组描述符
9.5.8 EXT2文件扩展策略
9.5.9 虚拟文件系统(VFS)概述
9.5.10 VFS超级块
9.5.11 VFS索引节点
9.5.12 文件系统的注册
9.5.13 文件系统的挂接与卸装
9.5.14 文件系统管理的缓存机制
9.5.15 bdflush内核守护程序
9.6 Linux设备管理
9.6.1 设备驱动程序环境
9.6.2 设备文件
9.6.3 设备驱动程序概述
9.6.4 设备驱动程序的结构
9.7 小结
习题九
第10章 Windows操作系统
10.1 Windows操作系统发展概述
10.1.1 早期的Windows
10.1.2 Windows 95和Windows 98
10.1.3 Windows 2000
10.2 Windows NT的设计目标与结构
10.2.1 Windows NT的设计目标
10.2.2 Windows NT的模型
10.2.3 Windows NT的结构
10.3 Windows NT的对象、进程和线程
10.3.1 对象
10.3.3 线程
10.3.2 进程
10.3.5 进程管理程序
10.3.4 对象、进程和线程之间的关系
10.4 Windows NT内核
10.4.1 线程调度
10.4.2 多处理机同步
10.5 Windows NT虚拟内存管理
10.5.1 进程的虚拟地址空间
10.5.2 虚拟存储的实现
10.6 Windows NT的文件系统
10.6.1 只读光盘文件系统与通用磁盘格式
10.6.2 文件分配表(FAT)形式的文件系统
10.6.3 新技术文件系统(NTFS)
10.7.2 I/O管理程序
10.7 Windows NT的I/O系统
10.7.1 I/O系统的结构
10.7.3 虚拟文件
10.8 Windows NT网络
10.8.1 NT网络特点
10.8.2 NT网络的组成
习题十
第11章 对称多处理系统和分布处理
11.1 概况
11.1.1 计算机系统的分类
11.1.2 主/从组织
11.1.3 分离执行组织
11.3.1 OSI参考模型
11.3 分布处理
11.1.4 对称组织
11.2 对称多处理器操作系统的设计
11.3.2 分布处理
11.4 客户/服务器
11.4.1 信息处理基本模式
11.4.2 客户/服务器模式的工作过程
11.4.3 客户/服务器应用
11.5 基于消息传递的通信方式
11.5.1 消息传递
11.5.2 消息传递过程
11.6.2 同步原语和异步原语
11.6.1 通信原语的类型
11.6 通信原语的设计
11.5.3 发送原语和接收原语
11.6.3 缓冲与非缓冲原语
11.6.4 可靠的和不可靠的通信原语
11.7 远程过程调用
11.7.1 远程过程调用概述
11.7.2 单机环境下的过程调用
11.7.3 基本远程过程调用操作
11.7.4 参数传递
11.7.5 参数表示
11.7.6 动态绑定
11.7.7 同步和异步
11.7.8 远程过程调用与通信原语的比较
11.8 集群
11.8.2 集群与对称多处理器
11.9 组通信
11.8.1 集群操作系统的设计问题
11.9.1 组
11.9.2 组通信的实现
11.10 分布式系统中的同步
11.10.1 分布式操作系统的特点
11.10.2 同步算法
11.11 分布式系统中的互斥
11.11.1 集中式算法
11.11.2 分布式算法
11.11.3 令牌环网算法
11.12.1 集中式死锁检测方法
11.12 分布式系统中的死锁
11.12.2 分布式的死锁检测
11.12.3 分布式死锁预防
11.13 分布式系统的管理
11.13.1 分布式操作系统的结构
11.13.2 分布式系统中的资源管理
习题十一
第12章 网络操作系统的构成和服务
12.1 计算机网络概述
12.1.1 计算机网络的组成
12.1.2 计算机网络的拓扑结构
12.1.3 交换网
12.1.4 局域网
12.2 开放系统互连参考模型
12.2.1 网络体系结构的基本概念
12.2.2 对等实体间的通信
12.2.3 服务存取点和连接
12.2.4 OSI七层模型
12.3 客户/服务器模式和对等模式
12.3.1 客户/服务器模式的形成和结构
12.3.2 客户/服务器模式的类型
12.3.3 客户/服务器间的交互
12.3.4 客户/服务器模式的优点
12.3.5 对等模式
12.4.1 工作站网络软件
12.4 网络操作系统的构成
12.4.2 网络环境软件
12.4.3 网络服务软件
12.4.4 网络管理软件
12.5 文件与打印服务
12.5.1 文件服务的引入
12.5.2 文件服务软件
12.5.3 打印服务
12.6 电子邮件服务
12.6.1 电子邮件系统
12.6.2 报文处理系统的引入
12.6.3 报文处理系统的组成
习题十二
附录 Windows操作系统的实践