《操作系统原理教程》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:孟静编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2000
  • ISBN:7302011230
  • 页数:372 页
图书介绍:孟静编著本书全面系统地介绍了操作系统的经典和最新原理内容,包括操作系统内部工作过程与结构及相关概念、技术和理论,并作为完整实例介绍了最新主流操作Linux、WindowsNT、Solaris的工作原理。本书共8章:第1章为操作系统概念,第2到第6章依次讲述CPU管理、主存管理、文件系统、设备管理和进程通信的原理内容,第7章介绍现代分布式、并行和网络操作系统内容,第8章介绍操作系统性能评价和设计技术。本书是大学计算机专业、计算机应用专业和信息专业的本科教材,参考学时为70~80学时,要求先修课为汇编语言、数据结构、计算机组成原理和C语言(其中有些课程可与本课程同学期开设)。本书也很适合作为自学参考用书和考试复习用书。作者在大学讲授本科操作系统原理课程多年,在备课和写作过程中参阅了大量英文教材和实际系统剖析文献,该书作为讲义和教材已使用多年并经过反复雕琢。相对于现诸操作系统原理教材,本书有以下鲜明特点:(1)选取最新主流操作系统Linux、Solaris和WindowsNT作为完整实例来介绍,并在讲述通用原理内容时处处注意理论联系实际。(2)本书提出了“硬件相关、应用无关”的操作系统本质思

第1章 操作系统概述 1

1.1 操作系统是什么 1

1.1.1 你所用过的操作系统 1

1.1.2 操作系统是什么与做什么 3

1.1.3 操作系统的规模、数量与重要性 6

1.2 操作系统大致如何工作 7

1.2.1 操作系统的第一个工作:负责所有用户程序的启动和结束——程序的5种启动方式和两种结束方式 7

1.2.2 操作系统的第二个工作:用户程序中对操作系统的调用——系统调用和中断 14

1.2.3 操作系统的第三个工作:为常用的基本操作提供现成的实用程序 22

1.2.4 操作系统的第四个工作:解决效率和安全问题——并发技术等 22

1.3 从各种角度看操作系统 27

1.3.1 操作系统的结构 27

1.3.2 操作系统的接口(使用方式) 28

1.3.3 操作系统的工作过程 29

1.3.4 操作系统的特点 30

1.3.5 操作系统的类型 30

1.3.6 操作系统的各种别名、比方和观点 31

1.4 操作系统发展简史 31

1.4.1 操作系统出现以前的计算机使用方式 32

1.4.2 操作系统的第一个发展阶段:单任务自动批处理 36

1.4.3 操作系统的第二个发展阶段:多任务和多方式 39

1.4.4 操作系统的第三个发展阶段:软件工程和小型化 41

1.4.5 操作系统的第四个发展阶段:开放系统和并行分布 42

1.4.6 操作系统发展现状和展望 44

1.4.7 操作系统发展历史小结 45

1.5 目前最常用的操作系统 46

1.5.1 Microsoft公司的操作系统产品:Windows系列及MS DOS 46

1.5.2 UNIX大家庭:SVR4,Solaris,HP-UX,SCO UNIX,BSD,AIX等 51

1.5.3 自由软件中的操作系统:Linux,freeBSD,BeOS 55

1.5.4 IBM公司的操作系统产品:AIX,OS/390,OS/2,OS/400,PCDOS7和PCDOS 2000 62

1.6 本章小结 65

习题 65

第2章 处理机管理 67

2.1 处理机管理概述 67

2.2 进程模型 69

2.2.1 进程三态的转换过程分析 69

2.2.2 进程模型实现 71

2.2.3 专题:CPU调度算法 73

2.3 CPU管理实例分析(1):UNIX早期版本的CPU管理(进程模型) 74

2.3.1 UNIX下如何建立进程和在一个程序中启动另一个程序 74

2.3.2 UNIX的进程层次和初启过程 75

2.3.3 UNIX进程模型的基本结构和工作过程 77

2.4 CPU管理实例分析(2):Linux CPU管理(进程模型) 78

2.5 线程模型 87

2.5.1 线程概念 87

2.5.2 线程的作用和必要性 88

2.5.3 线程的实现:线程包内容、用户态线程、核心态线程 90

2.6 处理机管理实例分析(3):Solaris(UNIX)的进程模型和线程模型 96

2.6.1 用户态线程、LWP、核心线程的区别和关系以及为什么同时需要它们 96

2.6.2 Solaris线程模型的设计目标和实现机制总瞰 98

2.6.3 SVR4和SVR4.2MP的进程和线程模型概述 99

2.7 处理机管理实例分析(4):Windows NT的进程和线程模型 99

习题 102

第3章 主存管理 103

3.1 主存管理概述 103

3.1.1 内存的定义、作用和计算机存储层次 103

3.1.2 主存硬件接口使用特性:微观角度(指令级)和宏观角度(程序级) 105

3.1.3 用户程序对内存的使用要求 108

3.1.4 内存管理的功能和任务 109

3.2 连续模式(1):操作系统出现前的内存无管理模式 113

3.2.1 概述 113

3.2.2 覆盖技术 113

3.2.3 动态装入 114

3.3 连续模式(2):单一分区模式 115

3.3.1 概述和基本实现机制 115

3.3.2 交换技术的作用和实现 116

3.3.3 单一分区模式的总结和评价 119

3.4 连续模式(3):固定分区模式 119

3.5 连续模式(4):可变分区模式 122

3.5.1 本模式的内外基本工作过程 122

3.5.2 策略选择(算法与数据结构) 125

3.5.3 本模式评价改善与实际系统采用情况 126

3.5.4 多对基寄存器 128

3.6 不连续模式(1):页模式(paging) 128

3.6.1 实存页模式的基本工作过程与结构 129

3.6.2 虚存页模式的基本工作过程与结构 133

3.6.3 虚存概念和作用 134

3.6.4 页模式实现策略专题讨论(1):进程页表的实现——快表、页表页和页目录 134

3.6.5 页模式实现策略专题讨论(2):大而稀疏内存使用 137

3.6.6 页模式实现策略专题讨论(3):页分配策略、写时复制和页长确定 137

3.6.7 页模式实现策略专题讨论(4):页淘汰策略、工作集理论和颠簸 139

3.6.8 专题讨论(5):动态连接共享库 140

3.6.9 页模式评价和实际系统采用情况 141

3.7 不连续模式(2):段模式 142

3.7.1 引言:用户内存观点和段的划分模式 143

3.7.2 模式定义、基本工作过程与结构 144

3.7.3 实现中的一些策略 147

3.7.4 段模式的评价与实际系统采用情况 148

3.8 不连续模式(3):段页模式 150

3.9 主存管理实例分析(1):Windows NT的主存管理 151

3.9.1 内部实现 152

3.9.2 用户界面 159

3.10 主存管理实例分析(2):Linux内存管理 163

3.11 主存管理概念模型:四空间概念 165

习题 166

第4章 外存管理和文件系统 169

4.1 外存管理和文件系统概述 170

4.1.1 外存硬件接口使用特性 170

4.1.2 用户对外存的使用要求 177

4.1.3 文件系统的界面高度和工作任务 179

4.2 文件系统用户界面 183

4.2.1 文件 183

4.2.2 目录(树)和链接 185

4.2.3 文件子系统级的用户界面 189

4.3 文件的实现 195

4.3.1 连续分配背景下的讨论 196

4.3.2 不连续分配背景下的讨论 205

4.4 目录的实现 216

4.4.1 用目录文件方法来实现目录树结构 216

4.4.2 设备目录与文件目录的分离 219

4.4.3 链接的内部实现 223

4.5 文件子系统的实现 226

4.5.1 文件子系统的实现机制总述 227

4.5.2 UNIX ss的文件子系统的实现机制(单类型文件子系统) 228

4.5.4 本节小结 229

4.5.3 Linux(和SVR4、Solaris)的文件子系统的实现机制(多类型文件子系统) 229

4.6 文件系统性能实现机制 230

4.6.1 物理地址与存取单位的优化 232

4.6.2 文件打开与关闭技术 232

4.6.3 文件共享 232

4.6.4 当前目录结构和名字快速缓存 235

4.6.5 内存缓冲区与缓冲池 236

4.6.6 磁臂调度技术 237

4.6.7 其他技术概述 240

4.6.8 文件系统的安全性和可靠性 242

4.7 文件系统实例分析 243

4.7.1 DOS文件系统——FAT文件系统 243

4.7.3 UNIX BSD文件系统——FFS和UFS 246

4.7.2 UNIX s5文件系统 246

4.7.4 Linux文件系统 249

4.7.5 Windows NT文件系统 250

4.8 本章总结和有关文件系统模型 252

习题 254

第5章 设备管理 256

5.1 设备管理概述 257

5.1.1 计算机外部设备的定义与分类 257

5.1.2 外部设备硬件接口特性 260

5.1.3 用户对设备的使用要求 268

5.1.4 操作系统设备管理功能的任务 270

5.2 UNIX设备I/O用户界面和内部实现 271

5.2.1 用户界面 271

5.2.2 内部实现过程与结构 273

5.3 DOS I/O实例分析 278

5.4 操作系统设备管理功能界面和实现原理综述 279

5.4.1 用户界面综述 279

5.4.2 内部结构与过程综述 280

5.4.3 速度匹配技术专题讨论(1):设备完成技术、同步和异步I/O操作 285

5.4.4 速度匹配技术专题讨论(2):缓冲技术 288

5.4.5 设备分配与共享技术专题讨论:独占、共享和虚拟设备 289

5.4.6 速度匹配技术专题讨论(3):联机、脱机和假脱机操作 291

5.4.7 非编程I/O技术专题讨论:DMA、通道等 292

5.4.8 操作系统设备管理功能与其他功能间的关系 297

5.5 设备驱动程序 298

5.5.1 设备驱动程序及其与核心间的接口(标准) 298

5.6 Windows NT设备管理实例分析 299

5.5.2 驱动程序例析:显示器、键盘、打印机驱动程序 299

5.7 Linux设备管理实例分析 301

5.8 本章小结 302

习题 302

第6章 进程通信 304

6.1 背景 304

6.2 临界区问题 306

6.2.1 两进程的解决方法 307

6.2.2 多个进程的解决方法 309

6.3 同步硬件 311

6.4 信号量 312

6.4.1 用法 313

6.4.2 实现 313

6.4.3 死锁和饥饿 314

6.5.1 有界缓冲区问题 315

6.5 经典的进程协同问题 315

6.5.2 读写问题 316

6.5.3 哲学家用餐问题 317

6.6 进程间的通信 318

6.6.1 命名方式 319

6.6.2 缓冲 321

6.6.3 异常条件 322

6.7 小结 323

习题 323

第7章 现代操作系统:网络、分布式和并行操作系统 325

7.1 目标 325

7.1.1 分布式系统与集中式系统相比所具有的优点 325

7.1.2 分布式系统与许多独立的PC相比所具有的优点 326

7.2.1 分类 327

7.2 硬件概念 327

7.1.3 分布式系统的缺点 327

7.2.2 总线型多处理机 329

7.2.3 开关型多处理机 330

7.2.4 总线型多计算机 331

7.2.5 开关型多计算机 331

7.3 软件概念 332

7.3.1 网络操作系统和NFS 332

7.3.2 真正的分布式系统 338

7.3.3 多处理机分时系统 338

7.4 实现策略 340

7.4.1 透明性 340

7.4.2 灵活性 342

7.4.3 可靠性 343

7.4.5 伸缩性 344

7.4.4 性能 344

7.5.1 文件服务接口 346

7.5 分布式文件系统 346

7.5.2 目录服务接口 347

7.5.3 文件共享的语义 350

7.6 Mach概述 351

7.6.1 Mach的历史 351

7.6.2 Mach的目标 352

7.6.3 Mach的微内核 352

7.6.4 Mach上的BSD UNIX服务器 353

7.7 小结 354

习题 355

8.1 性能 356

8.1.1 性能和性能指标总述 356

第8章 操作系统的性能与设计 356

8.1.2 可扩充性、可移植性和兼容性 357

8.1.3 安全性 359

8.1.4 可靠性和RAS技术 360

8.2 操作系统结构设计 362

8.2.1 单体模型 362

8.2.2 层次模型 363

8.2.3 客户/服务器模型与微核结构 364

8.2.4 策略与机制的分离 364

8.2.5 面向对象方法和模型 365

8.2.6 面向对象技术的实例分析:NT的面向对象模型的实现 365

8.3 操作系统的用户界面设计 369

习题 369

参考文献 371