《操作系统基础 第4版》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:屠立德等编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2014
  • ISBN:9787302361060
  • 页数:326 页
图书介绍:本书是一部关于操作系统基本概念、功能、实现原理及设计方法的教材,希望尽可能清晰、全面地介绍现代操作系统涉及的内容和技术。本书在结构上从操作系统的分层概念出发,深入浅出地介绍操作系统的概念和框架。本书内容涵盖《2011计算机考研大纲》和《高等学校计算机科学与技术专业公共核心知识体系与课程》中有关操作系统部分的知识点要求。

第1章 引论 1

1.1 计算机系统概述 1

1.1.1 计算机的硬件组织 1

1.1.2 软件的层次与虚拟机的概念 3

1.2 操作系统的形成和发展 4

1.2.1 什么是操作系统 4

1.2.2 操作系统的形成和发展 5

1.3 多道程序设计的概念 6

1.3.1 多道程序设计的引入 6

1.3.2 多道程序设计的概念 7

1.4 操作系统的功能和特性 8

1.4.1 操作系统的功能 8

1.4.2 操作系统的特性 10

1.5 操作系统的类型 10

1.5.1 多道批处理操作系统 11

1.5.2 分时操作系统 11

1.5.3 实时系统 12

1.5.4 网络操作系统 13

1.5.5 多处理操作系统 14

1.5.6 分布式操作系统 15

1.5.7 嵌入式操作系统 15

1.5.8 多核系统 15

1.6 操作系统的设计 16

1.6.1 设计的目标和原则 16

1.6.2 操作系统设计 17

1.7 操作系统的结构 18

1.7.1 模块接口法 18

1.7.2 层次结构设计法 20

1.7.3 微内核结构 22

1.7.4 微内核的实现 24

本章小结 25

习题 26

第2章 操作系统的运行环境 28

2.1 硬件环境 28

2.1.1 中央处理器 28

2.1.2 主存储器 31

2.1.3 缓冲技术 33

2.1.4 中断技术 34

2.1.5 时钟、时钟队列 37

2.2 操作系统与其他系统软件的关系 39

2.2.1 作业、作业步、进程的关系 39

2.2.2 重定位的概念 40

2.2.3 绝对装入程序与相对装入程序 41

2.3 操作系统与用户的接口 43

2.3.1 作业控制语言 43

2.3.2 联机作业控制 45

2.4 固件——微程序设计概念 47

2.4.1 微程序设计的概念 47

2.4.2 微程序设计与操作系统 48

本章小结 48

习题 49

第3章 进程管理 50

3.1 进程的概念 50

3.1.1 进程的引入 50

3.1.2 进程的定义 51

3.2 进程的状态 52

3.2.1 进程的状态及其变化 52

3.2.2 进程的挂起和解除挂起的状态 54

3.3 进程的描述和管理 56

3.3.1 进程的描述 56

3.3.2 进程管理 57

3.4 进程控制 58

3.4.1 进程的控制原语 58

3.4.2 操作系统与进程控制的执行 61

3.5 UNIX SVR4的进程管理 63

本章小结 66

习题 67

第4章 多线程 68

4.1 线程的概念 68

4.1.1 线程的引入 68

4.1.2 线程的概念 69

4.2 线程的状态和线程管理 71

4.2.1 线程的状态 71

4.2.2 线程的描述 72

4.2.3 线程的管理 74

4.3 多线程的实现 75

4.3.1 概述 75

4.3.2 用户级线程 76

4.3.3 内核级线程 78

4.3.4 KLT和ULT结合的方法 79

4.3.5 线程库 79

4.4 Solaris操作系统的线程机制 80

4.4.1 Solaris的多线程结构 80

4.4.2 轻质进程 81

4.4.3 内核线程 82

4.4.4 用户线程 82

4.4.5 线程的执行 82

4.4.6 内核中断线程 84

本章小结 84

习题 85

第5章 互斥与同步 86

5.1 概述 86

5.2 临界区 87

5.2.1 临界区的提出 88

5.2.2 临界区的互斥要求 89

5.3 互斥 90

5.3.1 互斥的软件解决方法 90

5.3.2 互斥的硬件解决方法 92

5.4 信号量 94

5.4.1 信号量 94

5.4.2 信号量及同步原语 94

5.4.3 同步原语的不可分割性 96

5.4.4 用信号量实现进程间互斥 96

5.4.5 生产者和消费者问题 96

5.4.6 读者和写者问题 98

5.5 管程 99

5.5.1 管程的定义 99

5.5.2 用管程实现同步 100

5.6 进程间的通信 102

5.6.1 消息通信 102

5.6.2 间接通信模式 103

5.6.3 其他消息通信模式 104

5.7 UNIX的进程同步和通信 105

5.7.1 管道 105

5.7.2 消息 106

5.7.3 共享主存 107

5.7.4 信号量 108

5.7.5 信号或软中断 109

本章小结 110

习题 110

第6章 死锁 112

6.1 死锁问题的提出 112

6.2 死锁的必要条件 113

6.2.1 资源的概念 113

6.2.2 死锁的必要条件 114

6.3 死锁的预防 115

6.3.1 预先静态分配法 115

6.3.2 有序资源使用法 115

6.4 死锁的避免和银行家算法 116

6.4.1 单资源的银行家算法 116

6.4.2 多资源的银行家算法 117

6.5 死锁检测与恢复 120

6.5.1 死锁的检测 120

6.5.2 死锁的恢复 121

6.6 资源分配图 121

6.6.1 资源分配图 121

6.6.2 利用资源分配图进行死锁分析 122

6.6.3 资源分配图化简法 123

本章小结 124

习题 124

第7章 实存储器管理技术 126

7.1 引言 126

7.1.1 主存储器的物理组织 126

7.1.2 主存储器的管理功能 127

7.2 固定分区 127

7.3 可变分区多道管理技术 129

7.3.1 可变分区存储管理的概念 129

7.3.2 存储分配算法 131

7.3.3 存储器的压缩和程序浮动 132

7.3.4 可变分区多道管理的地址变换 132

7.4 简单分页 134

7.5 简单分段 136

7.6 内核主存管理 138

7.6.1 内核主存管理概述 138

7.6.2 二次幂空闲表分配器 139

7.6.3 伙伴系统 139

本章小结 140

习题 141

第8章 虚拟存储管理 143

8.1 虚拟存储系统的基本概念 143

8.2 请求页式存储管理 144

8.2.1 地址转换 144

8.2.2 硬件支持 148

8.3 请求分段存储管理 150

8.3.1 请求分段概述 150

8.3.2 分段的实现 151

8.4 段页式存储管理 152

8.4.1 请求段页式存储管理的基本概念 152

8.4.2 请求段页式存储管理的地址转换 152

8.4.3 段页式存储管理算法 154

8.4.4 请求段页式存储管理的优缺点 155

8.5 页面置换算法 156

8.5.1 页面访问失效及处理 156

8.5.2 页面置换算法 156

8.5.3 交换区 159

8.6 页框分配策略 160

8.6.1 物理主存 160

8.6.2 空闲页面链表 160

8.6.3 页架分配中的有关策略 160

8.6.4 分页环境中程序的行为特性 163

8.7 UNIX SVR4的存储管理 164

本章小结 166

习题 167

第9章 设备管理 169

9.1 概述 169

9.2 I/O子系统的层次模型 170

9.2.1 I/O子系统的设计目标 170

9.2.2 I/O子系统的层次模型 171

9.3 I/O硬件组成 172

9.3.1 设备和设备控制器 172

9.3.2 直接存储器访问 174

9.3.3 通道方式与输入输出处理器 175

9.4 设备驱动程序 176

9.4.1 设备和驱动程序分类 176

9.4.2 设备开关表 176

9.4.3 设备驱动程序框架 178

9.5 I/O子系统 179

9.5.1 设备命名 180

9.5.2 输入输出缓冲区 181

9.5.3 I/O子系统独立于设备的工作 183

9.6 流 184

9.6.1 流的概念 184

9.6.2 消息和队列 186

9.6.3 流I/O 188

9.7 磁盘调度 189

9.7.1 磁盘的硬件特性 189

9.7.2 磁盘调度算法 191

9.8 虚拟设备和SPOOLing系统 195

9.9 RAID技术 196

本章小结 198

习题 199

第10章 文件系统 201

10.1 文件 202

10.1.1 文件的命名 202

10.1.2 文件的结构 202

10.1.3 文件的类型 204

10.1.4 文件的属性 205

10.1.5 文件的操作 206

10.2 目录 207

10.2.1 目录内容 207

10.2.2 文件目录的结构 208

10.2.3 路径名 211

10.2.4 符号链接 212

10.2.5 目录操作 213

10.3 文件系统的实现 213

10.3.1 文件空间的分配和管理 213

10.3.2 UNIX系统的目录实现 217

10.3.3 磁盘空间管理 217

10.3.4 文件系统在主存的数据结构和打开操作 219

10.3.5 文件系统挂载 220

10.4 安全性和保护 221

10.4.1 用户确认技术 222

10.4.2 保护机制——数据安全性 223

10.4.3 其他 224

10.4.4 文件的转储和恢复 225

本章小结 226

习题 226

第11章 分布式系统 228

11.1 概述 228

11.1.1 什么是分布式系统 228

11.1.2 分布式系统的优点 229

11.2 进程通信 230

11.2.1 进程通信的概念 230

11.2.2 TCP/IP通信协议 231

11.2.3 分布式环境的客户/服务器模式 234

11.2.4 分布式进程通信 236

11.3 分布式文件系统 240

11.3.1 分布式文件系统概述 240

11.3.2 分布式文件系统的组成 241

11.3.3 分布式文件系统的体系结构 242

11.3.4 客户机高速缓存和一致性 244

11.4 分布式系统中的互斥与死锁 245

11.4.1 逻辑钟和逻辑时 246

11.4.2 时间戳算法(Lamport算法) 247

11.4.3 令牌传送算法 248

11.5 进程迁移 249

11.5.1 进程迁移的原因 249

11.5.2 进程迁移机制 249

本章小结 250

习题 250

第12章 Windows NT操作系统 252

12.1 Windows NT操作系统概述 252

12.2 Windows NT的系统模型 253

12.3 Windows NT的基元成分 256

12.3.1 对象 256

12.3.2 进程 258

12.3.3 线程 260

12.3.4 进程管理程序 262

12.4 Windows NT的线程状态及调度 263

12.4.1 线程状态转换 263

12.4.2 内核调度程序 264

12.4.3 进程和线程的优先级 265

12.5 Windows NT的同步对象 266

12.5.1 线程同步概述 266

12.5.2 用Windows NT对象同步 267

12.6 虚拟存储管理 269

12.6.1 进程的虚拟地址空间 269

12.6.2 虚拟分页 270

12.6.3 页面调度策略和工作集 273

12.6.4 页架状态和页架数据结构 274

12.6.5 主存映射文件和视图 275

12.7 输入输出系统 278

12.7.1 输入输出系统的结构 278

12.7.2 统一的驱动程序模型 279

12.7.3 异步I/O操作和I/O请求处理过程 280

12.7.4 映像文件I/O 280

12.8 Windows NT的内装网络 281

12.8.1 Windows NT内装网络的特色 281

12.8.2 Windows NT内装网络的体系结构 281

12.9 对象管理程序 282

12.10 本地过程调用 283

12.11 Windows NT的安全性 284

12.11.1 Windows NT的安全性 284

12.11.2 存取令牌和安全描述体 284

本章小结 285

习题 286

第13章 Linux操作系统 287

13.1 Linux操作系统概述 287

13.1.1 Linux的诞生和发展 287

13.1.2 Linux的版本 287

13.1.3 Linux内核的组成 288

13.1.4 Linux的特点 290

13.2 Linux进程管理 291

13.2.1 Linux进程概述 291

13.2.2 Linux进程的状态 292

13.2.3 Linux进程的标识 293

13.2.4 Linux进程的调度 294

13.2.5 Linux进程的创建和撤销 295

13.3 Linux的存储管理 296

13.3.1 Linux的虚拟存储空间 296

13.3.2 Linux的地址映射 297

13.3.3 Linux物理内存的管理 298

13.3.4 页面分配算法 298

13.3.5 缺页中断 300

13.3.6 缓存和刷新机制 301

13.4 Linux文件管理 301

13.4.1 Linux虚拟文件系统概述 301

13.4.2 VFS超级块 302

13.4.3 VFS索引节点对象 303

13.4.4 目录项对象 307

13.4.5 文件对象 308

13.5 EXT文件系统 308

13.5.1 EXT2/EXT3/EXT4文件系统的特点 309

13.5.2 EXT2文件系统的磁盘结构 310

13.5.3 EXT2超级块 311

13.5.4 组描述符 312

13.5.5 块位图 313

13.5.6 EXT2文件系统inode结构 313

13.5.7 Linux文件系统的控制 316

13.6 Linux设备管理 319

13.6.1 Linux设备管理概述 319

13.6.2 Linux I/O子系统的设计 320

13.6.3 Linux的字符设备管理 321

13.6.4 Linux的块设备管理 322

13.6.5 缓冲区与buffer结构 323

本章小结 324

习题 325

参考文献 326