《操作系统原理与设计》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:曹先彬,陈香兰编著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2009
  • ISBN:9787111273776
  • 页数:344 页
图书介绍:本书尽量全面覆盖操作系统课程的所有基础知识,主要内容包括操作系统概论、进程管理、内存管理、输入输出管理、文件管理、操作系统示例分析等。

第一部分 操作系统概论第1章 操作系统概述 2

1.1 操作系统的概念 2

1.1.1 操作系统层次模型 2

1.1.2 操作系统的含义 4

1.1.3 操作系统的目的 5

1.1.4 操作系统的功能 5

1.2 操作系统的特点 8

1.2.1 操作系统的研究观点 8

1.2.2 操作系统的特征 9

1.3 操作系统的发展与类型 10

1.3.1 操作系统的发展动力 10

1.3.2 操作系统的发展历程 10

1.3.3 操作系统的类型 15

1.4 操作系统的运行环境 16

1.4.1 操作系统运行的硬件环境组成 16

1.4.2 操作系统运行涉及的硬件支持 17

1.5 操作系统的结构设计方法 18

1.5.1 模块接口法 18

1.5.2 有序分层法 19

1.5.3 微核法 19

1.6 本章小结 20

习题 20

第二部分 进程管理 24

第2章 进程与线程 24

2.1 多道程序设计与进程概念 24

2.1.1 多道程序设计技术 24

2.1.2 程序的顺序执行与并发执行 25

2.1.3 进程的概念 29

2.1.4 进程特征 30

2.2 进程的状态与转换 31

2.2.1 三状态模型及其转换 31

2.2.2 五状态模型及其转换 32

2.2.3 七状态模型及其转换 33

2.3 进程控制 35

2.3.1 操作系统内核 35

2.3.2 进程控制手段 36

2.3.3 主要进程控制原语 36

2.4 进程组织 39

2.4.1 进程控制块 39

2.4.2 进程的组织方式 41

2.4.3 进程组织示例 42

2.5 进程通信 42

2.5.1 进程通信概述 43

2.5.2 消息传递系统的实现 44

2.6 线程基础 47

2.6.1 线程引入 47

2.6.2 线程的定义与特征 48

2.6.3 线程的实现 49

2.7 本章小结 51

习题 51

第3章 进程同步 53

3.1 进程同步的基本概念 53

3.1.1 进程之间的关系 53

3.1.2 临界资源与临界区 54

3.1.3 进程同步机制的准则 55

3.2 实现进程互斥的基本方法 56

3.2.1 软件方法 56

3.2.2 硬件方法 60

3.3 信号量机制 61

3.3.1 单信号量机制 62

3.3.2 多信号量机制 66

3.4 管程机制 68

3.4.1 管程的引入 68

3.4.2 管程的使用 69

3.5 典型进程同步机制问题 75

3.5.1 生产者—消费者问题 75

3.5.2 读者—写者问题 80

3.5.3 哲学家就餐问题 84

3.6 本章小结 87

习题 88

第4章 进程调度与死锁 92

4.1 处理器调度的基本概念 92

4.1.1 处理器调度的类型 92

4.1.2 调度模型 94

4.2 进程调度准则 95

4.3 进程调度基础 97

4.4 经典进程调度算法 99

4.4.1 先来先服务调度算法 99

4.4.2 最短优先调度算法 100

4.4.3 最短剩余时间调度算法 101

4.4.4 时间片轮转调度算法 101

4.4.5 优先权调度算法 102

4.4.6 最高响应比优先调度算法 103

4.4.7 多级队列反馈调度算法 104

4.4.8 进程调度算法示例 105

4.5 进程死锁与处置 107

4.5.1 死锁的基本概念 107

4.5.2 死锁的分析模型 109

4.5.3 死锁的处置策略 111

4.6 本章小结 117

习题 118

第5章 用户接口与作业管理 120

5.1 用户与操作系统的接口方式 120

5.1.1 作业级接口 120

5.1.2 程序级接口 121

5.2 批处理系统的作业管理 122

5.2.1 作业的基本概念 122

5.2.2 批处理系统的作业组织 123

5.2.3 批处理作业的状态转换与控制 124

5.2.4 批处理系统的作业调度 126

5.3 交互式系统的作业管理 130

5.3.1 命令式接口 130

5.3.2 图形用户界面式接口 131

5.4 本章小结 132

习题 132

第三部分 内存管理 136

第6章 存储管理基础 136

6.1 存储管理的概念 136

6.1.1 存储管理的目的 136

6.1.2 存储管理的基本过程 137

6.1.3 覆盖与交换技术 142

6.2 连续分配方式与管理 144

6.2.1 单一连续分配方式 144

6.2.2 分区分配方式 145

6.3 非连续分配方式与管理 152

6.3.1 分页管理方式 152

6.3.2 分段管理方式 159

6.3.3 段页式管理方式 164

6.4 本章小结 167

习题 168

第7章 虚拟内存管理 170

7.1 虚拟存储基本概念 170

7.1.1 虚拟存储的引入 170

7.1.2 虚拟存储实现技术 172

7.2 请求分页管理方式 173

7.2.1 请求分页分配基本思想 173

7.2.2 请求分页分配管理 175

7.2.3 页面分配与调入 177

7.2.4 页面置换 180

7.2.5 抖动处理 187

7.3 请求分段管理方式 190

7.3.1 请求分段分配基本思想 190

7.3.2 请求分段分配管理 191

7.4 请求段页式管理方式 192

7.4.1 请求段页式分配基本思想 192

7.4.2 请求段页式分配管理 193

7.5 本章小结 194

习题 194

第四部分 输入输出管理第8章 I/O管理 198

8.1 I/O管理概述 198

8.1.1 I/O系统与过程 198

8.1.2 I/O功能部件 199

8.1.3 I/O控制方式 203

8.1.4 I/O管理目标与功能 206

8.2 输入输出核心子系统 207

8.2.1 I/O调度 207

8.2.2 缓冲区管理 208

8.2.3 设备分配与回收 210

8.2.4 实现虚拟设备的SPOOLing技术 214

8.2.5 出错处理 216

8.3 本章小结 216

习题 216

第五部分 文件管理 220

第9章 文件管理基础 220

9.1 概述 220

9.1.1 文件与文件系统 220

9.1.2 文件的类型 222

9.1.3 文件的存储介质 222

9.2 文件的逻辑组织 224

9.2.1 堆文件 224

9.2.2 顺序文件 224

9.2.3 索引顺序文件 225

9.2.4 索引文件 226

9.3 文件目录 226

9.3.1 基本概念 226

9.3.2 文件目录结构 227

9.3.3 目录查询 231

9.4 文件共享 232

9.5 文件保护 235

9.6 本章小结 236

习题 236

第10章 文件系统实现 238

10.1 文件系统层次结构 238

10.1.1 文件系统管理对象 238

10.1.2 系统管理软件集合 238

10.1.3 用户接口 239

10.2 外存空间管理 239

10.2.1 列表 239

10.2.2 位图 240

10.2.3 链表 240

10.2.4 索引 240

10.3 文件系统实现需要的结构信息 241

10.3.1 磁盘结构信息 241

10.3.2 内存结构信息 241

10.3.3 目录实现的数据结构 242

10.4 文件的存储组织与存取方式 243

10.4.1 文件的存储组织 243

10.4.2 文件的存取方式 247

10.5 文件系统的性能问题 248

10.5.1 磁盘优化调度 248

10.5.2 磁盘高速缓冲 250

10.5.3 文件系统的可靠性 250

10.6 文件管理示例 251

10.6.1 文件存储空间的管理 252

10.6.2 文件的存储组织 252

10.6.3 支持文件存取的用户文件描述符表和文件表 252

10.6.4 目录管理 254

10.7 本章小结 255

习题 255

第六部分 操作系统示例分析第11章 Linux示例分析 258

11.1 Linux操作系统中的进程和线程 258

11.1.1 进程描述符 258

11.1.2 Linux进程的内核栈 261

11.1.3 Linux进程的状态 262

11.1.4 Linux的O号进程init_task 262

11.1.5 Linux系统中进程的组织 262

11.1.6 Linux系统中进程的控制 263

11.1.7 Linux中的进程通信机制 265

11.1.8 Linux中的线程及其控制 266

11.2 Linux中的信号量 266

11.2.1 Linux内核中的信号量 266

11.2.2 Linux用户态的信号量集接口 267

11.3 Linux中的调度 268

11.3.1 Linux中的调度策略 269

11.3.2 Linux进程的时间片 269

11.3.3 Linux进程调度的时机 270

11.3.4 Linux中的调度算法 271

11.4 Linux中的物理内存管理 273

11.4.1 Linux中物理页框的描述 274

11.4.2 Linux中的动态可分配物理内存 275

11.4.3 Linux中物理内存的zone划分 275

11.4.4 Linux中动态可分配物理内存的使用 276

11.4.5 伙伴算法 277

11.5 Linux进程的地址空间及其维护 278

11.5.1 Linux进程的用户态地址空间和内核态地址空间 278

11.5.2 Linux的进程地址空间描述符 278

11.5.3 线性区及其组织 279

11.5.4 线性区的属性标志 280

11.5.5 线性区相关操作 280

11.5.6 页表 281

11.6 Linux的I/O子系统 281

11.6.1 Linux内核中的I/O低级操作 281

11.6.2 Linux的设备文件和I/O高级操作 282

11.6.3 设备驱动 285

11.7 Linux的文件系统 286

11.7.1 VFS中的目录组织 286

11.7.2 VFS提供的系统调用 288

11.7.3 VFS的实现 292

11.7.4 EXT2文件系统 299

11.8 本章小结 302

习题 302

第七部分 操作系统的扩展内容第12章 操作系统的安全 306

12.1 操作系统安全的重要性 306

12.2 操作系统的安全等级 306

12.2.1 TCSEC 306

12.2.2 国际通用准则CC 307

12.2.3 我国的安全评估标准 307

12.3 操作系统的安全服务 308

12.3.1 用户管理的安全性 308

12.3.2 访问控制安全服务 308

12.4 主流操作系统的安全措施 309

12.4.1 Windows NT的安全性 309

12.4.2 UNIX/Linux的安全性 312

12.5 本章小结 313

习题 313

第13章 分布式操作系统基础 314

13.1 概述 314

13.1.1 操作系统的概念 314

13.1.2 分布式计算技术 316

13.1.3 分布式操作系统概述 318

13.2 经典的分布式操作系统 322

13.2.1 Mach 322

13.2.2 Amoeba 323

13.2.3 Chorus 324

13.2.4 Spring 324

13.3 通信 325

13.3.1 远程过程调用RPC 325

13.3.2 Mach中的端口及其通信 326

13.3.3 Spring中的Door 326

13.3.4 通信中的代理 327

13.3.5 代理的建立 327

13.4 命名系统 328

13.4.1 Mach中端口的命名和端口名字空间 328

13.4.2 统一资源定位符和统一资源命名 329

13.4.3 域名系统DNS的层次组织 329

13.4.4 目录服务X.500属性名空间的组织 330

13.5 资源管理 330

13.5.1 管理策略 330

13.5.2 集中式算法 331

13.5.3 分布式的时间戳方法 331

13.5.4 令牌环网算法 332

13.6 处理器管理 332

13.6.1 基于图论的分配 332

13.6.2 发送者或接收者发起的分布式启发式算法 333

13.7 本章小结 333

习题 334

第14章 多核操作系统 335

14.1 多核技术简介 335

14.2 多核操作系统的类型 336

14.3 多核操作系统关键技术 337

14.3.1 多核中的同步与互斥 338

14.3.2 多核中的调度 339

14.4 本章小结 342

习题 342

参考文献 343