图书目录

第1章 操作系统引论1

1.1 操作系统的功能和特征1

1.1.1 操作系统的功能1

1.1.2 操作系统的外特征5

1.1.3 操作系统的微观特征7

1.1.4 操作系统的基本技术8

1.1.5 多道程序设计的实现9

1.2 操作系统发展简史 10

1.2.1 从无助的人工操作到作业自动定序10

1.2.2 20世纪60年代中期的IBM OS/360 12

1.2.3 从CTSS、MULTICS到UNIX14

1.2.4 个人计算机上的DOS和Windows15

1.2.5 操作系统的发展动力18

1.3 操作系统的基本类型19

1.3.1 批处理系统19

1.3.2 分时系统19

1.3.3 实时系统20

1.3.4 网络操作系统21

1.3.5 分布式操作系统21

1.4 操作系统结构22

1.4.1 整体式系统22

1.4.2 层次式系统22

1.4.3 虚拟机23

1.4.4 客户机/服务器系统25

1.5 现代操作系统概念26

1.6 重点演示和交互练习: 多道程序设计28

小结29

习题30

 计算机操作系统(第2版)目录 第2章 进程及其管理33

2.1 进程的概念及其引入33

2.1.1 并发程序的特征33

2.1.2 进程的定义34

2.1.3 进程与程序的联系和区别35

2.2 进程的描写35

2.2.1 进程实体35

2.2.2 PCB35

2.2.3 PCB队列 36

2.3 进程状态及转化36

2.3.1 进程状态36

2.3.2 进程状态转化37

2.4 进程管理37

2.4.1 进程管理原语37

2.4.2 创建进程的时机 37

2.4.3 创建进程的基本操作38

2.5 进程互斥与同步38

2.5.1 进程互斥与同步的概念38

2.5.2 临界区准则 39

2.5.3 临界区的软件解决方案39

2.5.4 上锁与解锁指令40

2.5.5 信号量与P、V操作41

2.5.6 经典同步问题 44

2.6 进程间的通信48

2.6.1 软中断通信48

2.6.2 共享存储区(剪贴板)通信48

2.6.3 管道通信49

2.6.4 消息通信50

2.7 线程52

2.7.1 线程概念的引入52

2.7.2 线程与进程的比较 53

2.8 重点演示和交互练习: 经典同步问题 53

2.8.1 生产者-消费者问题的Java程序实现53

2.8.2 读者-写者问题的Java程序实现55

2.8.3 哲学家就餐问题的Java程序实现 55

小结57

习题57

第3章 调度与死锁61

3.1 概述61

3.2 分级调度62

3.2.1 高级调度62

3.2.2 中级调度62

3.2.3 低级调度62

3.3 常用调度算法64

3.3.1 FIFO调度算法64

3.3.2 SJF调度算法65

3.3.3 HRN调度算法66

3.3.4 RR调度算法67

3.3.5 优先级调度算法67

3.3.6 多级反馈队列调度68

3.4 死锁问题70

3.4.1 产生死锁的必要条件70

3.4.2 预防死锁71

3.4.3 死锁避免及银行家算法72

3.4.4 死锁的检测74

3.5 重点演示和交互练习: 优先级调度算法75

小结77

习题78

第4章 存储器管理81

4.1 概述81

4.1.1 存储管理的基本任务81

4.1.2 存储管理的基本概念82

4.2 单一连续分配83

4.2.1 存储区域分配83

4.2.2 存储区域回收   83

4.3 分区管理84

4.3.1 固定分区84

4.3.2 可变分区84

4.3.3 存储保护 85

4.4 分页管理86

4.4.1 分页的概念86

4.4.2 地址映射机构87

4.4.3 地址变换88

4.4.4 页的共享89

4.4.5 保护机制 90

4.5 分段管理91

4.5.1 分段地址空间91

4.5.2 段表与地址变换91

4.5.3 分段与分页的异同点92

4.6 覆盖与对换92

4.6.1 覆盖   92

4.6.2 对换 93

4.7 重点演示和交互练习: 地址重定位94

4.7.1 静态重定位94

4.7.2 动态重定位95

4.7.3 分页重定位96

小结97

习题98

第5章 虚拟存储器101

5.1 虚拟存储器的概念101

5.1.1 分级存储体系101

5.1.2 局部性原理102

5.1.3 虚拟存储器 102

5.2 请求分页式虚拟存储管理103

5.2.1 对页式存储技术的改进103

5.2.2 缺页中断处理过程103

5.2.3 工作集概念103

5.3 页面淘汰算法105

5.3.1 淘汰最老页面的FIFO算法 105

5.3.2 淘汰最近最少使用页面的LRU算法105

5.3.3 OPT算法107

5.4 段页式存储管理107

5.4.1 基本概念107

5.4.2 地址转换108

5.4.3 管理算法108

5.5 重点演示和交互练习: 页面淘汰算法109

小结111

习题111

第6章 设备管理115

6.1 设备管理概述115

6.1.1 输入输出的硬件组成115

6.1.2 计算机设备分类116

6.1.3 设备管理的功能117

6.1.4 主要数据结构118

6.2 缓冲技术118

6.2.1 缓存的作用118

6.2.2 管理缓冲存储119

6.3 中断技术120

6.3.1 中断的作用120

6.3.2 中断处理过程120

6.3.3 嵌套中断处理过程121

6.4 SPOOLing技术121

6.4.1 SPOOLing系统的一般结构121

6.4.2 SPOOLing系统的工作原理122

6.4.3 假脱机打印122

6.4.4 SPOOLing系统的优点122

6.5 设备驱动123

6.5.1 逻辑设备和物理设备124

6.5.2 设备状态监视124

6.5.3 设备驱动程序125

6.6 磁盘的特性及调度算法125

6.6.1 活动头磁盘125

6.6.2 磁盘的存取速度126

6.6.3 FCFS调度算法127

6.6.4 SCAN及其改进算法127

6.7 用户请求输入输出的实现过程128

6.8 重点演示和交互练习: 中断过程、磁盘调度、输入输出实现过程129

小结129

习题130

第7章 文件系统133

7.1 文件与文件系统133

7.1.1 文件133

7.1.2 文件系统133

7.1.3 文件系统模型134

7.1.4 文件卷135

7.2 文件的逻辑结构 136

7.2.1 记录式结构136

7.2.2 流式结构136

7.3 文件目录组织136

7.3.1 文件目录 136

7.3.2 目录组织137

7.3.3 目录检索138

7.4 文件的物理结构139

7.4.1 连续结构139

7.4.2 链接结构139

7.4.3 索引结构 140

7.5 文件存储空间管理140

7.5.1 空白文件目录140

7.5.2 位示图141

7.5.3 空闲块链141

7.6 文件保护141

7.6.1 存取控制矩阵 141

7.6.2 存取控制表 141

7.6.3 口令142

7.7 文件系统的系统调用142

7.7.1 用户程序的接口142

7.7.2 文件句柄143

7.7.3 open的实现144

7.8 重点演示和交互练习: 写文件的实现过程144

小结146

习题147

第8章 操作系统的安全性149

8.1 问题的提出149

8.1.1 信息系统面临日益严重的安全性挑战149

8.1.2 操作系统的脆弱性151

8.2 操作系统安全机制153

8.2.1 操作系统的硬件保护153

8.2.2 注册与身份验证154

8.2.3 存取控制156

8.2.4 最小特权原则156

8.2.5 建立可信通道158

8.2.6 消除隐蔽通道158

8.2.7 安全审计159

8.2.8 病毒防护159

8.3 操作系统安全评测标准160

8.3.1 主要的评测标准160

8.3.2 美国评测标准介绍162

8.3.3 中国评测标准163

8.4 UNIX和Linux操作系统的安全性164

8.4.1 标识与鉴别 165

8.4.2 存取控制166

8.4.3 审计与加密166

8.4.4 网络安全169

8.4.5 备份和恢复169

8.5 Windows 2000和Windows XP操作系统安全性170

8.5.1 安全模型170

8.5.2 文件保护及防盗版安全机制174

小结175

习题176

第9章 UNIX和Linux实例分析177

9.1 系统结构177

9.1.1 UNIX的特点177

9.1.2 UNIX系统结构 177

9.1.3 UNIX系统的主要数据结构179

9.2 进程管理 179

9.2.1 进程数据结构179

9.2.2 进程状态179

9.2.3 进程的产生与进程族系180

9.2.4 管道通信机制 181

9.3 内存管理184

9.3.1 支持虚存和分段184

9.3.2 swap交换技术184

9.4 文件管理 185

9.4.1 文件分类186

9.4.2 树状层次目录186

9.4.3 文件空间的组织 187

9.4.4 空闲块的管理 189

9.4.5 有关文件操作的系统调用 191

9.5 设备缓冲管理 195

9.5.1 块缓冲与字符缓冲195

9.5.2 块缓冲队列管理195

9.5.3 字符缓冲队列管理197

9.6 shell程序设计197

9.6.1 概述197

9.6.2 shell命令及命令的解释执行198

9.6.3 shell程序设计201

9.6.4 shell程序实例204

9.7 Linux206

9.7.1 Linux 的历史206

9.7.2 Linux内核207

9.7.3 Linux进程207

9.7.4 Linux文件系统207

9.7.5 Linux磁盘分区208

9.8 重点演示和交互练习: 文件块的多重索引物理结构208

小结209

习题211

第10章 Windows 2000和Windows XP实例分析213

10.1 模型与结构213

10.1.1 客户机/服务器模型213

10.1.2 对象模型214

10.1.3 对称多处理器模型214

10.1.4 系统结构215

10.1.5 注册表 217

10.2 对象、进程和线程218

10.2.1 对象218

10.2.2 进程218

10.2.3 线程220

10.2.4 对象、进程、线程的关系222

10.3 系统微内核222

10.3.1 内核概述222

10.3.2 内核的线程安排与调度223

10.3.3 描述表切换224

10.3.4 中断与异常处理224

10.3.5 内核的互斥机制225

10.4 虚拟存储器226

10.4.1 进程的虚拟地址空间 226

10.4.2 虚拟分页的地址变换机构 226

10.4.3 页面调度策略和工作集 226

10.4.4 共享主存--段对象和视口227

10.5 磁盘与文件管理228

10.5.1 磁盘管理228

10.5.2 NTFS文件系统229

10.5.3 文件系统的恢复230

10.6 输入输出子系统231

10.6.1 输入输出子系统结构231

10.6.2 高速缓存231

10.6.3 异步输入输出操作和输入输出请求处理过程 232

10.6.4 映像文件的输入输出 232

10.7 进程通信233

10.7.1 端口对象233

10.7.2 LPC消息传送方法 234

10.8 系统安全性234

10.8.1 登录进程和安全子系统 234

10.8.2 存取令牌 234

10.8.3 存取控制表 235

10.8.4 主存保护 236

10.9 Windows 2003简介236

10.9.1 IIS 6.0服务236

10.9.2 集群技术236

10.9.3 跨域树信任技术237

10.9.4 终端服务技术237

10.9.5 SAN/NAS 技术237

10.9.6 活动目录技术238

10.9.7 便于Windows XP用户登录网络238

小结238

习题239

参考文献241