现代操作系统

现代操作系统
作 者: Andrew Tanenbaum 陈向群
出版社: 机械工业出版社
丛编项: 计算机科学丛书
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 暂缺
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  作者:AndrewS.TanenbaumAndrewS.Tanenbaum获得过美国麻省理工学院的理学学士学位和加利福尼亚大学伯克利分校的哲学博士学位,目前是荷兰阿姆斯特丹Vrije大学的计算机科学系的教授,并领导着一个计算机系统的研究小组。同时,他还是一家计算与图象处理学院的院长,这是由几家大学合作成立的研究生院。尽管社会工作很多,但他并没有中断学术研究。多年来,他在编译技术、操作系统、网络及局域分布式系统方面进行了大量的研究工作。目前的主要研究方向是设计规模达数百万用户的广域分布式系统。在进行这些研究项目的基础上,他在各种学术杂志及会议上发表了70多篇论文。他同时还是5本计算机专著的作者。Tanenbaum教授还开发了大量的软件。他是Amsterdan编译器的原理设计师,这是一个被广泛使用的;用来编写可移植编译器的工具箱。他领导编写的MINIX,是一个用于操作系统教学的类UNIX(的小型操作系统。他和他的博士研究生及其他编程人员一道设计的Amoeba分布式操作系统,是一个高性能的微内核分布式操作系统。目前,可在因特网上免费得到MLNIX及Amoeba,用于教学和研究。他的一些博士研究生,在获得学位后继续进行研究,并取得了更大的成就,赢得了社会的赞誉,对此他深感自豪。人们称他为桃李满天下的教育家。Tanenbaum是ACM的会员,IEEE的资深会员,荷兰皇家艺术和科学学院院士,获得过1994年度ACMKarlV.Karlstrom杰出教育家奖。他还人选了《世界名人录》。计算机组成结构化方法(英文影印版)(第5版)>>更多作品

内容简介

本书共分两部分,第一部分详尽讲述了传统操作系统知识,包括进程、存储器管理、文件系统、I/O设备管理、死锁等内容;第二部分主要介绍了分布式操作系统,包括层次协议、远程过程调用、互斥操作、分布式文件系统等专题。为加深概念的理解,本书还详细介绍了四个操作系统,包括两个传统的系统UNIX和MS-DOS ;两个分布式系统Amoeba和Mach。此外还简要介绍了NFS、AFS、ISIS等其他几个系统。本书体系完整、内容丰富、叙述清晰,是大学计算机及相关专业学生不可多得的教科书,对于从事计算机管理、开发、系统分析等职业的专业人员也是优秀的参考书。

图书目录

目 录

译者序

前言

第一部分 传统操作系统

第1章 引言 1

1.1 什么是操作系统 2

1.1.1 作为扩展机器的操作系统 2

1.1.2 作为资源管理器的操作系统 3

1.2 操作系统历史 3

1.2.1 第一代计算机(1945~1955):

真空管和插件板 3

1.2.2 第二代计算机(1955~1965):

晶体管和批处理系统 4

1.2.3 第三代计算机(1965~1980):

集成电路芯片和多道程序 5

1.2.4 第四代计算机(1980~1990):

个人计算机 7

1.3 操作系统基本概念 8

1.3.1 进程 8

1.3.2 文件 9

1.3.3 系统调用 11

1.3.4 外壳 12

1.4 操作系统结构 12

1.4.1 整体式系统 12

1.4.2 层次式系统 14

1.4.3 虚拟机 14

1.4.4 客户机/服务器系统 15

1.5 本书其他部分的概要 16

1.6 小结 17

习题 18

第2章 进程 19

2.1 进程介绍 19

2.1.1 进程模型 19

2.1.2 进程的实现 22

2.2 进程间通信 23

2.2.1 竞争条件 23

2.2.2 临界区 24

2.2.3 忙等待的互斥 24

2.2.4 睡眠与唤醒 27

2.2.5 信号量 29

2.2.6 事件计数器 31

2.2.7 管程 32

2.2.8 消息传递 34

2.2.9 原语等价 36

2.3 经典的IPC问题 39

2.3.1 哲学家进餐问题 39

2.3.2 读者-写者问题 41

2.3.3 睡眠的理发师问题 42

2.4 进程调度 44

2.4.1 时间片轮转调度 45

2.4.2 优先级调度 45

2.4.3 多级队列 46

2.4.4 最短作业优先 47

2.4.5 保证调度算法 48

2.4.6 策略与机制 48

2.4.7 两级调度法 48

2.5 小结 49

习题 49

第3章 存储管理 52

3.1 无交换或分页的存储管理 52

3.1.1 无交换或分页的单道程序 52

3.1.2 多道程序设计和内存利用率 53

3.1.3 固定分区的多道程序 55

3.2 交换 56

3.2.1 可变分区的多道程序设计 57

3.2.2 使用位图的内存管理 58

3.2.3 使用链表的内存管理 59

3.2.4 伙伴式的内存管理 60

3.2.5 交换空间的分配 61

3.2.6 交换系统分析 62

3.3 虚拟存储器 62

3.3.1 分页 63

3.3.2 页表 65

3.3.3 分页硬件示例 67

3.3.4 相联存储器 72

3.4 页面置换算法 75

3.4.1 最优页面置换算法 75

3.4.2 最近未使用页面置换算法 76

3.4.3 先进先出页面置换算法 76

3.4.4 第二次机会页面置换算法 77

3.4.5 时钟页面置换算法 77

3.4.6 最久未使用页面置换算法 78

3.4.7 用软件模拟LRU 79

3.5 分页算法模型 80

3.5.1 Belady异常现象 80

3.5.2 栈式算法 81

3.5.3 距离字符串 82

3.5.4 缺页率预测 83

3.6 分页系统中的设计问题 83

3.6.1 工作集模型 83

3.6.2 局部与全局分配策略 84

3.6.3 页面尺寸 86

3.6.4 实现时涉及的问题 86

3.7 分段 89

3.7.1 纯分段系统的实现 91

3.7.2 分段和分页结合:MULTICS 92

3.7.3 分段和分页结合:Intel的386 95

3.8 小结 98

习题 98

第4章 文件系统 101

4.1 文件 101

4.1.1 文件命名 101

4.1.2 文件结构 102

4.1.3 文件类型 103

4.1.4 文件存取 105

4.1.5 文件属性 105

4.1.6 文件操作 106

4.1.7 存储映像文件 109

4.2 目录 110

4.2.1 层次目录系统 110

4.2.2 路径名 111

4.2.3 目录操作 113

4.3 文件系统的实现 113

4.3.1 实现文件 113

4.3.2 实现目录 115

4.3.3 共享目录 117

4.3.4 磁盘空间管理 118

4.3.5 文件系统的可靠性 121

4.3.6 文件系统性能 124

4.4 安全性 126

4.4.1 安全环境 126

4.4.2 著名的安全缺陷 127

4.4.3 Internet蠕虫 129

4.4.4 一般的安全性攻击 130

4.4.5 安全性的设计原则 131

4.4.6 用户验证 132

4.5 保护机制 134

4.5.1 保护域 134

4.5.2 存取控制表 136

4.5.3 权限 137

4.5.4 保护模型 138

4.5.5 隐藏通道 139

4.6 小结 140

习题 140

第5章 I/O设备管理 143

5.1 I/O硬件组成原理 143

5.1.1 I/O设备 143

5.1.2 设备控制器 144

5.1.3 直接存储器存取 145

5.2 I/O软件原理 146

5.2.1 I/O软件的目标 146

5.2.2 中断处理程序 147

5.2.3 设备驱动程序 148

5.2.4 与设备无关的I/O软件 148

5.2.5 用户空间的I/O软件 149

5.3 磁盘 151

5.3.1 磁盘硬件 151

5.3.2 磁盘调度算法 151

5.3.3 磁盘出错处理 153

5.3.4 “每次一道”高速缓冲 154

5.3.5 RAM 盘 154

5.4 时钟 155

5.4.1 时钟硬件 155

5.4.2 时钟软件 156

5.5 终端 158

5.5.1 终端硬件 158

5.5.2 存储映像终端 159

5.5.3 输入软件 160

5.5.4 输出软件 163

5.6 小结 164

习题 165

第6章 死锁 167

6.1 资源 167

6.2 死锁定义 168

6.2.1 死锁的条件 168

6.2.2 死锁模型 169

6.3 鸵鸟算法 170

6.4 死锁检测和恢复 171

6.4.1 单种资源类型下的死锁检测 171

6.4.2 多种资源类型下的死锁检测 173

6.4.3 从死锁恢复 174

6.5 死锁避免 175

6.5.1 资源轨迹图 176

6.5.2 安全和不安全状态 177

6.5.3 单种资源的银行家算法 178

6.5.4 多种资源的银行家算法 178

6.6 死锁预防 179

6.6.1 破坏互斥条件 180

6.6.2 破坏占有和等待条件 180

6.6.3 破坏不可剥夺条件 180

6.6.4 破坏循环等待条件 180

6.7 其他问题 181

6.7.1 两阶段加锁 181

6.7.2 非资源死锁 182

6.7.3 饥饿 182

6.8 小结 182

习题 183

第7章 实例研究1:UNIX 185

7.1 UNIX的历史 185

7.1.1 UNICS 185

7.1.2 PDP-11 UNIX 186

7.1.3 可移植的UNIX 186

7.1.4 伯克利UNIX 187

7.1.5 UNIX的标准化 187

7.2 UNIX概述 189

7.2.1 设计目标 189

7.2.2 接口 190

7.2.3 登录 190

7.2.4 shell 191

7.2.5 文件和目录 193

7.2.6 应用程序 194

7.3 UNIX的一些基础概念 195

7.3.1 进程 196

7.3.2 内存管理模式 199

7.3.3 文件系统 200

7.3.4 I/O设备 203

7.4 UNIX 的系统调用 205

7.4.1 进程管理系统调用 205

7.4.2 内存管理系统调用 208

7.4.3 有关文件和目录的系统调用 208

7.4.4 I/O系统调用 209

7.5 UNIX的实现 209

7.5.1 进程的实现 210

7.5.2 内存管理的实现 212

7.5.3 文件系统的实现 215

7.5.4 I/O实现 217

7.6 小结 218

习题 219

第8章 实例研究2:MS-DOS 221

8.1 MS-DOS的历史 221

8.1.1 IBM PC 221

8.1.2 MS-DOS 1.0 222

8.1.3 MS-DOS 2.0 223

8.1.4 MS-DOS 3.0 223

8.1.5 MS-DOS 4.0 224

8.1.6 MS-DOS 5.0 224

8.2 MS-DOS 概述 225

8.2.1 使用 226

8.2.2 shell 228

8.2.3 配置 229

8.3 MS-DOS 的基本概念 230

8.3.1 进程 230

8.3.2 内存模式 233

8.3.3 文件系统 240

8.3.4 I/O设备 241

8.4 MS-DOS的系统调用 242

8.4.1 进程管理系统调用 243

8.4.2 内存管理系统调用 243

8.4.3 文件与目录系统调用 244

8.4.4 I/O系统调用 244

8.5 MS-DOS的实现 244

8.5.1 进程的实现 245

8.5.2 内存管理的实现 246

8.5.3 文件系统的实现 247

8.5.4 I/O的实现 250

8.6 小结 252

习题 253

第二部分 分布式操作系统

第9章 分布式操作系统概述 255

9.1 目标 255

9.1.1 分布式系统相对于集中式系统

的优点 255

9.1.2 分布式系统相对于独立PC机

的优点 256

9.1.3 分布式系统的缺点 257

9.2 硬件上的概念 258

9.2.1 总线型多处理机 259

9.2.2 交换型多处理机 260

9.2.3 总线型多计算机 261

9.2.4 交换型多计算机 262

9.3 软件上的概念 262

9.3.1 网络操作系统和网络文件系统 263

9.3.2 真正的分布式系统 269

9.3.3 多处理机分时系统 269

9.4 设计上的考虑 271

9.4.1 透明性 271

9.4.2 灵活性 273

9.4.3 可靠性 274

9.4.4 性能 275

9.4.5 可扩展性 276

9.5 小结 277

习题 277

第10章 分布式系统中的通信问题 279

10.1 分层协议 279

10.1.1 物理层 281

10.1.2 数据链路层 282

10.1.3 网络层 282

10.1.4 传输层 283

10.1.5 会话层 283

10.1.6 表示层 283

10.1.7 应用层 284

10.2 客户-服务器模型 284

10.2.1 客户和服务器 284

10.2.2 一个客户和服务器的实例 285

10.2.3 寻址 288

10.2.4 阻塞与非阻塞原语 289

10.2.5 缓冲和非缓冲原语 291

10.2.6 可靠和不可靠原语 293

10.2.7 实现客户-服务器模型 294

10.3 远程过程调用 295

10.3.1 基本的RPC操作 296

10.3.2 参数传递 298

10.3.3 动态联编 301

10.3.4 出现差错时的RPC语义 303

10.3.5 与实现相关的论题 306

10.3.6 问题域 313

10.4 组通信 315

10.4.1 组通信入门 315

10.4.2 与设计有关的问题 316

10.4.3 ISIS中的组通信 322

10.5 小结 324

习题 325

第11章 分布式系统中的同步 327

11.1 时钟同步 327

11.1.1 逻辑时钟 328

11.1.2 物理时钟 331

11.1.3 时钟同步算法 333

11.2 互斥 336

11.2.1 集中式算法 336

11.2.2 分布式算法 337

11.2.3 令牌环算法 339

11.2.4 三种算法的比较 340

11.3 选举算法 341

11.3.1 Bully算法 341

11.3.2 环算法 342

11.4 原子事务 343

11.4.1 原子事务简介 343

11.4.2 事务模型 344

11.4.3 实现 347

11.4.4 并发控制 350

11.5 分布式系统中的死锁 352

11.5.1 分布式死锁的检测 353

11.5.2 分布式死锁的预防 356

11.6 小结 357

习题 357

第12章 分布式系统中的进程及

处理器 359

12.1 线程 359

12.1.1 线程的引入 359

12.1.2 线程使用 360

12.1.3 线程包的设计问题 362

12.1.4 线程包的实现 365

12.1.5 线程和RPC 367

12.1.6 一个线程包的例子 368

12.2 系统模型 371

12.2.1 工作站模型 371

12.2.2 使用空闲工作站 373

12.2.3 处理器池模型 376

12.2.4 混合模型 378

12.3 处理器分配 378

12.3.1 分配模型 378

12.3.2 处理器分配算法的设计原则 380

12.3.3 处理器分配算法的实现问题 381

12.3.4 处理器分配算法实例 382

12.4 分布式系统中的调度 386

12.5 小结 387

习题 387

第13章 分布式文件系统 389

13.1 分布式文件系统设计 389

13.1.1 文件服务的接口 389

13.1.2 目录服务器接口 391

13.1.3 文件共享的语义 394

13.2 分布式文件系统的实现 396

13.2.1 文件的使用 396

13.2.2 系统结构 397

13.2.3 缓存区处理 400

13.2.4 复制性 40396

133.2.4菩?403 38979

拍?2?.2技⒍979