《现代操作系统》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:(A.S.坦尼鲍姆)Andrew S.Tanenbaum著;陈向群等译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:1999
  • ISBN:7111071174
  • 页数:501 页
图书介绍:

目录 1

第一部分 传统操作系统 1

第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.1进程 8

1.3操作系统基本概念 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.1.1进程模型 19

第2章 进程 19

2.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

习题 49

2.5小结 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.3虚拟存储器 62

3.2.6交换系统分析 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.1Belady异常现象 80

3.5分页算法模型 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

习题 98

3.8小结 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.3Internet蠕虫 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.1I/O硬件组成原理 143

5.1.1I/O设备 143

5.1.2设备控制器 144

5.1.3直接存储器存取 145

5.2I/O软件原理 146

5.2.1I/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.5RAM盘 154

5.3.4“每次一道”高速缓冲 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.1死锁的条件 168

6.2死锁定义 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.3破坏不可剥夺条件 180

6.6.4破坏循环等待条件 180

6.6.1破坏互斥条件 180

6.6.2破坏占有和等待条件 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.1UNIX的历史 185

7.1.1UNICS 185

7.1.3可移植的UNIX 186

7.1.2PDP-11UNIX 186

7.1.4伯克利UNIX 187

7.1.5UNIX的标准化 187

7.2UNIX概述 189

7.2.1设计目标 189

7.2.2接口 190

7.2.3登录 190

7.2.4shell 191

7.2.5文件和目录 193

7.2.6应用程序 194

7.3UNIX的一些基础概念 195

7.3.1进程 196

7.3.2内存管理模式 199

7.3.3文件系统 200

7.3.4I/O设备 203

7.4UNIX的系统调用 205

7.4.1进程管理系统调用 205

7.4.2内存管理系统调用 208

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

7.4.4I/O系统调用 209

7.5UNIX的实现 209

7.5.1进程的实现 210

7.5.2内存管理的实现 212

7.5.3文件系统的实现 215

7.5.4I/O实现 217

7.6小结 218

习题 219

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

8.1MS-DOS的历史 221

8.1.1IBMPC 221

8.1.2MS-DOS1.0 222

8.1.3MS-DOS2.0 223

8.1.4MS-DOS3.0 223

8.1.5MS-DOS4.0 224

8.1.6MS-DOS5.0 224

8.2MS-DOS概述 225

8.2.1使用 226

8.2.2shell 228

8.2.3配置 229

8.3MS-DOS的基本概念 230

8.3.1进程 230

8.3.2内存模式 233

8.3.3文件系统 240

8.3.4I/O设备 241

8.4MS-DOS的系统调用 242

8.4.1进程管理系统调用 243

8.4.2内存管理系统调用 243

8.4.3文件与目录系统调用 244

8.4.4I/O系统调用 244

8.5MS-DOS的实现 244

8.5.1进程的实现 245

8.5.2内存管理的实现 246

8.5.3文件系统的实现 247

8.5.4I/O的实现 250

8.6小结 252

习题 253

第二部分 分布式操作系统 255

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

9.1目标 255

9.1.1分布式系统相对于集中式系统的优点 255

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

的优点 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

习题 277

9.5小结 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.2客户-服务器模型 284

10.2.1客户和服务器 284

10.1.7应用层 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.3ISIS中的组通信 322

10.5小结 324

习题 325

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

11.1时钟同步 327

11.1.1逻辑时钟 328

11.1.2物理时钟 331

11.1.3时钟同步算法 333

11.2.1集中式算法 336

11.2互斥 336

11.2.2分布式算法 337

11.2.3令牌环算法 339

11.2.4三种算法的比较 340

11.3选举算法 341

11.3.1Bully算法 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.1工作站模型 371

12.2系统模型 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.1分布式文件系统设计 389

13.1.1文件服务的接口 389

第13章 分布式文件系统 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复制性 404

13.2.5例子:Andrew文件系统 407

13.2.6经验教训 411

13.3分布式文件系统的发展趋势 412

13.3.1新的硬件 412

13.3.3广域网 414

13.3.2可伸缩性 414

13.3.4移动用户 415

13.3.5容错 415

13.4小结 415

习题 416

第14章 实例研究3:AMOEBA 418

14.1Amoeba简介 418

14.1.1Amoeba的历史 418

14.1.2研究目的 418

14.1.3Amoeba的体系结构 419

14.1.4Amoeba微内核 420

14.1.5Amoeba服务程序 422

14.2Amoeba中的对象与权限字 422

14.2.1权限字 423

14.2.2对象的保护 424

14.3Amoeba中的进程管理 425

14.2.3标准操作 425

14.3.1进程 426

14.3.2线程 427

14.4Amoeba的内存管理 428

14.4.1段的管理 428

14.4.2段的映像 429

14.5Amoeba的通信 429

14.5.1远程过程调用 430

145.2Amoeba的组通信 432

14.5.3快速局域网协议 438

14.6.1文件服务器 443

14.6Amoeba服务器 443

14.6.2目录服务器 446

14.6.3复制服务器 449

14.6.4运行服务器 449

14.6.5引导服务器 451

14.6.6TCP/IP服务器 451

14.6.7其他服务器 451

14.7小结 451

习题 452

第15章 实例研究4:Mach操作系统 453

15.1概述 453

15.1.1Mach的历史 453

15.1.3Mach的微内核 454

15.1.2Mach的设计目标 454

15.1.4Mach的BSDUNIX服务器 455

15.2Mach中的进程管理 456

15.2.1进程 456

15.2.2线程 458

15.2.3调度 460

15.3Mach的存储管理 462

15.3.1虚拟存储 462

15.3.2内存共享 464

15.3.3外部存储管理器 466

15.3.4Mach的分布式共享内存 469

15.4MACH中的通信 469

15.4.1端口 470

15.4.2发送和接收消息 474

15.4.3网络信息服务器 477

15.5Mach中的BSDUNIX仿真 479

15.6Amoeba与Mach的比较 480

15.6.1基本原理 480

15.6.2对象 481

15.6.3进程 481

15.6.4存储模式 482

15.6.5通信 482

15.66服务程序 483

15.7小结 484

习题 484

附录A 阅读材料及参考文献 486

附录B C语言简介 494