《操作系统引论》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:黄上腾等编著
  • 出 版 社:上海:上海交通大学出版社
  • 出版年份:2003
  • ISBN:7313034598
  • 页数:322 页
图书介绍:本书阐述有关计算机操作系统。

第一部分 引论 3

1 操作系统概述 3

1.1 什么是操作系统 3

1.1.1 从用户的观点看什么是操作系统 3

1.1.2 从系统的观点看什么是操作系统 4

1.1.3 操作系统的目标 5

1.2 操作系统的发展 6

1.2.1 串行处理 6

1.2.2 简单批处理系统 6

1.2.3 多道程序批处理系统 9

1.2.4 分时系统 12

1.2.5 实时操作系统 14

1.2.6 各种类型的现代操作系统 15

1.3 操作系统的主要组成部分 17

1.3.1 命令解释器系统 17

1.3.2 进程管理 17

1.3.3 内存管理 18

1.3.4 文件管理 19

1.3.5 I/O系统管理 19

1.3.6 保护系统 20

1.4 Linux操作系统概述 20

1.4.1 Linux的发展简史 20

1.4.2 Linux的技术特点 22

1.4.3 Linux的不足之处 22

1.5 习题 23

2 计算机系统概述 25

2.1 基本成分 25

2.2 处理器的寄存器 26

2.2.1 用户可见的寄存器 26

2.2.2 控制和状态寄存器 27

2.3 指令的执行 27

2.3.1 指令的读取和执行 28

2.3.2 I/O功能 30

2.4 中断 30

2.4.1 中断和指令周期 31

2.4.2 中断处理 33

2.4.3 多个中断 36

2.4.4 多道程序 37

2.5 存储器的层次结构 38

2.6 高速缓冲存储器 40

2.7 I/O通信技术 42

2.7.1 编程I/O 42

2.7.2 中断驱动I/O 43

2.7.3 直接内存存取 44

2.8 习题 45

3 用户与操作系统的接口 47

3.1 概述 47

3.2 操作员接口 47

3.2.1 命令驱动方式 48

3.2.2 窗口系统与菜单驱动方式 48

3.2.3 命令文件方式 48

3.3 程序级接口 49

3.3.1 用户态与系统态 49

3.3.2 特权指令与访管指令 49

3.3.3 系统调用 50

3.3.4 系统调用类型 50

3.3.5 系统调用的使用和执行过程 53

3.3.6 主要系统调用命令的功能和使用方法 53

3.4 Linux的用户界面Shell 57

3.4.1 SHELL命令语言 57

3.4.2 Shell过程 59

3.5 习题 59

第二部分 进程 63

4 进程描述与控制 63

4.1 进程状态 63

4.1.1 一个两状态的进程模型 65

4.1.2 进程的创建和终止 66

4.1.3 一个五状态的模型 67

4.1.4 被挂起的进程 71

4.2 进程描述 74

4.2.1 操作系统控制结构 75

4.2.2 进程控制结构 76

4.3 进程控制 81

4.3.1 执行模式 81

4.3.2 进程创建 82

4.3.3 进程切换 82

4.4 线程 86

4.4.1 线程的引入 87

4.4.2 线程的概念 87

4.5 对称多处理器和相应的操作系统设计问题 89

4.5.1 SMP体系结构 89

4.5.2 SMP的组织结构 90

4.5.3 设计多处理器操作系统应考虑的一些问题 91

4.6 总结 91

4.7 习题 92

5 并发:互斥与同步 95

5.1 并发原理 95

5.1.1 一个简单的例子 96

5.1.2 操作系统关注的问题 97

5.1.3 进程交互 97

5.1.4 进程之间对资源的竞争 98

5.1.5 进程之间通过共享合作 99

5.1.6 进程之间通过通信合作 100

5.1.7 互斥的要求 101

5.2 互斥:软件方法 101

5.2.1 Dekker算法 101

5.2.2 Peterson算法 105

5.3 互斥:硬件支持 107

5.3.1 关中断 107

5.3.2 特殊机器指令 108

5.3.3 机器指令方法的特性 109

5.4 信号量 110

5.4.1 互斥 110

5.4.2 生产者/消费者问题 112

5.4.3 信号量的实现 116

5.4.4 理发店问题 118

5.5 管程 122

5.6 消息传递 125

5.6.1 同步 126

5.6.2 寻址 127

5.6.3 消息格式 128

5.6.4 排队策略 128

5.6.5 互斥 128

5.7 读者/写者问题 129

5.7.1 读者具有优先权 131

5.7.2 写者具有优先权 132

5.8 Linux中的并发机制 134

5.8.1 管道 134

5.8.2 管道的实现 134

5.8.3 管道的操作 135

5.8.4 命名管道 135

5.8.5 消息队列 135

5.8.6 共享内存 137

5.8.7 信号量 138

5.8.8 信号 139

5.9 总结 141

5.10 习题 141

6 并发:死锁和饥饿 147

6.1 死锁原理 147

6.1.1 可重用资源 150

6.1.2 可消耗资源 150

6.1.3 死锁的条件 151

6.2 死锁预防 152

6.2.1 破坏互斥条件 152

6.2.2 破坏占用并等待条件 153

6.2.3 破坏不可抢占条件 153

6.2.4 破坏循环等待条件 153

6.3 死锁避免 153

6.3.1 拒绝进程启动 154

6.3.2 拒绝资源分配 154

6.4 死锁检测 157

6.4.1 死锁检测算法 158

6.4.2 恢复 158

6.5 一个集成的死锁策略 159

6.6 哲学家就餐问题 160

6.7 总结 161

6.8 习题 161

7 单处理器调度 167

7.1 调度的类型 167

7.1.1 长期调度 168

7.1.2 中期调度 169

7.1.3 短期调度 169

7.2 调度算法 170

7.2.1 短期调度标准 170

7.2.2 使用优先级 172

7.2.3 可供选择的调度策略 172

7.4 Linux中的进程调度 179

7.4.1 调度参数 179

7.4.2 调度工作 180

7.4.3 调度的实现 181

7.5 总结 182

7.6 习题 182

第三部分 内存 187

8 内存管理 187

8.1 内存管理需求 187

8.1.1 重定位 187

8.1.2 保护 187

8.1.3 共享 188

8.1.4 逻辑组织 188

8.1.5 物理组织 189

8.2 内存分区 189

8.2.1 固定分区 189

8.2.2 伙伴系统 194

8.2.3 重定位 196

8.3 分页 197

8.4 分段 201

8.5 总结 201

8.6 习题 202

9 虚拟内存 204

9.1 硬件和控制结构 204

9.1.1 局部性及虚拟内存 205

9.1.2 分页 206

9.1.3 页表结构 208

9.1.4 关联存储器(快表) 209

9.1.5 页大小 211

9.1.6 分段 213

9.1.7 组织 214

9.1.8 分页与分段结合技术 215

9.1.9 保护和共享 216

9.2 操作系统软件 216

9.2.1 读取策略 217

9.2.2 放置策略 218

9.2.3 置换策略 218

9.2.4 页缓冲 223

9.2.5 驻留集管理 224

9.2.6 清洗策略 228

9.2.7 装入控制 229

9.3 Linux的虚拟内存管理 230

9.3.1 Linux进程的虚拟内存 230

9.3.2 Linux的页面管理 232

9.3.3 Linux的页面装卸管理 233

9.4 总结 235

9.5 习题 236

第四部分 输入/输出和文件 241

10 输入/输出管理和磁盘调度 241

10.1 输入/输出设备 241

10.2 输入/输出功能的组织 242

10.2.1 输入/输出功能的发展 242

10.2.2 直接存储访问 243

10.3 操作系统的设计问题 244

10.3.1 设计目标 244

10.3.2 输入/输出功能的逻辑结构 245

10.4 输入/输出缓冲 247

10.4.1 单缓冲 247

10.4.2 双缓冲 248

10.4.3 缓冲的应用 248

10.5 磁盘调度 249

10.5.1 磁盘性能参数 249

10.5.2 寻道时间 250

10.5.3 旋转延迟 250

10.5.4 传输时间 251

10.5.5 时序比较 251

10.5.6 磁盘调度策略 251

10.6 RAID 254

10.7 磁盘高速缓存 254

10.7.1 设计考虑 254

10.7.2 性能考虑 255

10.8 Linux输入/输出 256

10.8.1 设备驱动程序 256

10.8.2 核心接口 258

10.8.3 字符设备 258

10.8.4 块设备 259

10.9 总结 261

10.10 习题 261

11 文件管理 263

11.1 概述 263

11.1.1 文件 263

11.1.2 文件管理系统 264

11.1.3 文件系统结构 264

11.1.4 文件管理功能 265

11.2 文件组织和访问 266

11.2.1 堆 268

11.2.2 顺序文件 268

11.2.3 索引顺序文件 269

11.2.4 索引文件 269

11.2.5 直接或哈希文件 270

11.3 文件目录 270

11.3.1 内容 270

11.3.2 结构 270

11.3.3 命名 272

11.4 文件共享 273

11.4.1 访问权限 273

11.4.2 并发访问 274

11.5 记录分块 274

11.6 辅存管理 276

11.6.1 文件分配 276

11.6.2 空闲空间管理 280

11.6.3 可靠性 281

11.7 Linux中的文件系统 281

11.7.1 Linux文件系统概述 281

11.7.2 EXT2文件系统 282

11.8 总结 289

11.9 习题 289

12 系统安全 291

12.1 安全威胁 292

12.1.1 威胁的种类 292

12.1.2 计算机系统资源 293

12.2 保护 295

12.2.1 保护内存 295

12.2.2 面向用户的访问控制 296

12.2.3 面向数据的访问控制 296

12.3 入侵 298

12.3.1 入侵者 298

12.3.2 入侵技术 299

12.4 病毒和相关威胁 308

12.4.1 恶意程序 308

12.4.2 后门 308

12.4.3 逻辑炸弹 309

12.4.5 病毒 310

12.4.6 蠕虫 310

12.4.7 细菌 311

12.4.8 病毒的本质 311

12.4.9 病毒类型 311

12.4.10 抗病毒方法 312

12.5 可信任系统 313

12.6 络安全 316

12.6.1 潜在的进行安全攻击的位置 316

12.6.2 加密设备的位置 316

12.6.3 密钥分布 317

12.6.4 通信量的填充 319

12.7 总结 320

12.8 习题 320

参考资料 322