《操作系统教程 MINIX的设计和实现》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:(美)坦南鲍姆(Tanenbaum,A.S.)著;陆佑珊,施振川译
  • 出 版 社:北京/西安:世界图书出版公司
  • 出版年份:1990
  • ISBN:7506207567
  • 页数:476 页
图书介绍:

目录 1

序言 1

第一章 引论 1

1.1 操作系统是什么? 2

1.1.1 操作系统作为机器的延伸 2

1.1.2 操作系统作为资源管理者 3

1.2 操作系统的历史 3

1.2.1 第一代(1945-1955):真空管和插接板 4

1 2.2 第二代(1955-1965):晶体管和批处理系统 4

1.2.3 第三代(1965-1980):集成电路与多道程序设计 6

1.2.4 第四代(1980-1990):个人计算机 8

1.2.5 MINIX的历史 9

1.3 操作系统的概念 10

1.3.1 进程 10

1.3.2 文件 12

1.3.3 shell 14

1.4 系统调用 15

1.4.1 进程管理系统调用 17

1.4.2 关于信号的系统调用 19

1.4.3 文件管理系统调用 21

1.4.4 目录管理系统调用 25

1.4.5 为保护而设置的系统调用 27

1.4.6 时间管理系统调用 28

1.5 操作系统结构 28

1.5.1 单体系统 28

1.5.2 分层系统 29

1.5.3 虚拟机 30

1.5.4 顾客-服务员模式 31

1.6 本书其余部份梗概 32

1.7 小结 33

习题 33

2.1.1 进程模型 35

2.1 进程入门 35

第二章 进程 35

2.1.2 进程的实现 38

2.2 进程间的通信 40

2.2.1 竞态条件 40

2.2.2 临界区 41

2.2.3 通过忙等待实现互斥 41

2.2.4 睡眠与唤醒 44

2.2.5 信号量 46

2.2.6 事件计数器 48

2.2.7 监控程序 49

2.2.8 消息传递 52

2.2.9 原语的等价性 56

2.3 经典的IPC问题 58

2.3.1 哲学家的用餐问题 58

2.3.2 读者和写者问题 61

2.4 进程调度 62

2.4.1 轮回调度法 63

2.4.2 优先调度法 64

2.4.3 多重队列 65

2.4.4 最短的作业第一 66

2.4.5 策略驱动调度法 67

2.4.6 二级调度 67

2.5 MINIX中的进程概述 68

2.5.1 MINIX的内部构造 68

2.5.2 MINIX的进程管理 69

2.5.3 MINIX的进程通信 70

2.5.4 MINIX的进程调度 70

2.6 MINIX进程的实现 70

2.6.1 MINIX源代码的构造 71

2.6.2 公用首部文件 72

2.6.3 进程数据结构和首部文件 74

2.6.4 系统初始化 76

2.6.5 MINIX的中断处理 77

2.6.6 核的汇编码实用程序 78

2.6.7 MINIX中的进程通信 79

2.6.8 MINIX中的调度 81

2.7 小结 81

习题 82

第三章 输入/输出 85

3.1 I/O硬件的原理 85

3.1.1 I/O设备 85

3.1.2 设备控制器 86

3.2 I/O软件的原理 89

3.2.1 I/O软件的目标 89

3.2.2 中断处理程序 90

3.2.3 设备驱动程序 90

3.2.4 独立于设备的I/O软件 91

3.2.5 用户空间的I/O软件 92

3.3 死锁 94

3.3.1 资源 94

3.3.2 死锁的模型 95

3.3.3 舵鸟算法 97

3.3.4 检测与恢复 98

3.3.5 死锁的防止 98

3.3.6 死锁的回避 100

3.4 概述MINIX中的I/O 103

3.4.1 MINIX的中断处理程序 103

3.4.2 MINIX的设备驱动程序 103

3.4.3 MINIX中与设备无关的I/O软件 106

3.4.4 MINIX中的用户级I/O软件 106

3.4.5 MINIX中的死锁处理 106

3.5 RAM磁盘 107

3.5.1 RAM磁盘的硬件和软件 107

3.5.2 MINIX的RAM磁盘驱动程序概述 108

3.5.3 RAM磁盘驱动程序在MINIX中的实现 109

3.6 磁盘 109

3.6.1 磁盘硬件 109

3.6.2 磁盘软件 110

3.6.3 MINIX中的软盘驱动程序概述 114

3.6.4 软盘驱动程序在MINIX中的实现 115

3.7 时钟 118

3.7.1 时钟硬件 118

3.7.2 时钟软件 119

3.7.3 MINIX中的时钟驱动程序概述 121

3.7.4 时钟驱动程序在MINIX中的实现 122

3.8 终端 122

3.8.1 终端硬件 123

3.8.2 终端软件 125

3.8.3 MINIX的终端驱动程序概述 130

3.8.4 终端驱动程序在MINIX中的实现 135

3.9 MINIX里的系统任务 139

3.10 小结 142

习题 142

4.1.1 无存储交换与页面调换的单道程序存储管理 146

4.1 无存储交换与页面调换的存储管理 146

第四章 存储管理 146

4.1.2 多道程序设计与存储的使用 147

4.1.3 固定分区的多道程序设计 149

4.2 存储交换 151

4.2.1 使用可变分区的多道程序设计 151

4.2.2 使用位图的存储管理 152

4.2.3 使用链接表的存储管理 153

4.2.4 使用伙伴系统的存储管理 155

4.2.5 对换空间的分配 156

4.2.6 对换系统的分析 156

4.3 虚拟存储 157

4.3.1 页面调换 157

4.3.2 分段 160

4.4 页淘汰算法 162

4.4.1 最优的页淘汰 162

4.4.2 非最近使用的页淘汰 162

4.4.4 最近最少使用的页淘汰 163

4.4.3 先进先出的页淘汰 163

4.4.5 LRU的软件模拟 165

4.5 页调换系统的设计问题 166

4.5.1 工作集模式 166

4.5.2 局部与全局分配策略 167

4.5.3 页的大小 168

4.5.4 实现问题 169

4.6 MINIX的存储管理概述 170

4.6.1 存储层 171

4.6.2 消息处理 173

4.6.3 存储管理的数据结构与算法 173

4.6.4 FORK.EXIT和WAIT系统调用 175

4.6.5 EXEC系统调用 176

4.6.6 BRK系统调用 178

4.6.7 信号处理 178

4.7.1 首部文件 179

4.7 MINIX存储管理的实现 179

4.6.8 其他的系统调用 179

4.7.2 主程序 180

4.7.3 FORK.EXIT和WAIT的实现 180

4.7.4 EXEC的实现 181

4.7.5 BRK的实现 182

4.7.6 信号处理的实现 182

4.7.7 其他系统调用的实现 183

4.7.8 存储管理实用程序 184

4.8 小结 184

习题 185

第五章 文件系统 188

5.1 文件系统的用户观点 188

5.1.1 文件的基本概念 188

5.1.2 目录 190

5.2 文件系统设计 192

5.2.1 盘空间管理 192

5.2.2 文件存储 194

5.2.3 目录结构 196

5.2.4 文件共享 198

5.2.5 文件系统的可靠性 199

5.2.6 文件系统的性能 202

5.3 文件服务员 204

5.3.1 接口层 205

5.3.2 原子更新 205

5.3.3 并发控制 206

5.3.4 事务处理 207

5.3.5 重复文件 208

5.4 安全性 209

5.4.1 安全性环境 209

5.4.2 著名的安全性缺陷 210

5.4.3 一般性的安全攻击 211

5.4.4 安全性设计原理 212

5.4.5 鉴别用户 212

5.5.1 保护范围 215

5.5 保护机制 215

5.5.2 存取控制表 217

5.5.3 权力 218

5.5.4 保护模型 219

5.5.5 隐通道 221

5.6 MINIX文件系统概述 222

5.6.1 消息 222

5.6.2 文件系统的盘结构 223

5.6.3 位图 225

5.6.4 i节点 226

5.6.5 缓冲池 227

5.6.6 目录与路径 228

5.6.7 文件描述字 229

5.6.8 管道和特别文件 230

5.6.9 READ系统调用的一个例子 231

5.7 MINIX文件系统的实现 231

5.7.1 首部文件 231

5.7.2 表格管理 232

5.7.3 主程序 235

5.7.4 对单个文件的操作 236

5.7.5 目录与路径 241

5.7.6 其他系统调用 242

5.7.7 I/O设备的接口 244

5.7.8 实用过程 245

5.8 小结 245

习题 245

6.1.1 入门与概论 248

第六章 阅读书目与书目提要 248

6.1 进一步阅读的建议 248

6.1.2 进程 249

6.1.3 输入/输出 249

6.1.4 存储管理 250

6.1.5 文件系统 250

6.2 按字母排列的参考书目 251

A.2 基本的数据类型 259

附录A C初步 259

A.1 C的基础知识 259

A.3 构造类型 260

A.4 语句 262

A.5 表达式 264

A.6 程序结构 266

A.7 C预处理器 266

A.8 特有构造 268

附录B IBM PC简介 269

B.1 INTEL8088 CPU 269

B.2 IBM PC系统构造 273

附录C MINIX用户指南 275

C.1 怎样启动MINIX系统 275

C.2 怎样使用MINIX系统 277

C.2.1 入门 277

C.2.2 MINIX文件系统 277

C.2.3 文件系统的安装 278

C.2.4 对用户的提示 279

C.3 超级用户的职能 281

C.3.1 建造新的文件系统 281

C.3.2 文件系统的检查 281

C.3.3 /etc目录 281

C.3.4 修改文件系统 282

C.3.5 其他 282

C.4 MINIX命令 283

C.5 库 306

C.6 文件格式 306

C.6.1 可执行文件格式(a.out文件) 307

C.6.2 存档格式 307

C.6.3 库格式 308

附录D MINIX实现者指南 309

D.1 引言 309

D.2.1 编译器的内部过程 312

D.2 库 312

D.2.2 为库中的过程排序 313

D.2.3 汇编语言过程 314

D.2.4 具体步骤 314

D.3 构造新的文件系统 315

D.3.1 概念 315

D.3.2 具体步骤 317

D.4.1 概念 318

D.4 重新编译MINIX 318

D.4.2 具体步骤 319

D.5 建立引导软盘 320

D.5.1 概念 320

D.5.2 具体步骤 321

D.6 测试MINIX 322

D.7 安装新的设备驱动程序 322

D.8 故障查找 322

附录E MINIX源程序列表 325

附录F MINIX交叉引用表 461