《计算机的心智:操作系统之哲学原理》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:邹恒明著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2009
  • ISBN:9787111266426
  • 页数:310 页
图书介绍:本书系统介绍操作系统发展的历史背景、进程与线程、内存管理、文件系统、输入与输出、多核环境下的进程调度和操作系统设计,并加上自己的分析和大量生活实例。

第一篇 基础原理篇 2

第1章 操作系统导论 2

引子:智者的挑战 2

1.1人造学科 3

1.2程序是如何运行的 5

1.3什么是操作系统 7

1.4魔幻与管理 8

1.5用户程序与操作系统 9

1.6操作系统的范畴 11

1.7为什么学习操作系统 12

思考题 13

第2章 操作系统历史 14

引子:操作系统进化的推动因素 14

2.1第一阶段:状态机操作系统(1940年以前) 15

2.2第二阶段:单一操作员、单一控制端操作系统(20世纪40年代) 16

2.3第三阶段:批处理操作系统(20世纪50年代) 16

2.4第四代:多道批处理操作系统(20世纪60年代) 18

2.5第五代之一:分时操作系统(20世纪70年代) 19

2.6第五代之二:实时操作系统 20

2.7第六代:现代操作系统(1980年以后) 21

2.8操作系统的演变过程 22

2.9操作系统的未来发展趋势 25

思考题 26

第3章 操作系统基本概念 27

引子:“差不多”精神 27

3.1计算机硬件基本知识 28

3.2抽象 31

3.3内核态和用户态 31

3.4操作系统结构 33

3.5进程、内存和文件 35

3.6系统调用 36

3.7壳 37

思考题 39

第二篇 进程原理篇 42

第4章 进程 42

引子 42

4.1进程概论 43

4.2进程模型 44

4.3多道编程的效率 44

4.4进程的产生与消失 46

4.5进程的层次结构 47

4.6进程的状态 47

4.7进程创立 49

4.8进程与地址空间 49

4.9进程管理 50

4.10进程的缺陷 52

思考题 52

第5章 线程 53

引子 53

5.1进程的分身术——线程 54

5.2线程管理 55

5.3线程的实现方式 56

5.4现代操作系统的线程实现模型 60

5.5多线程的关系 60

5.6讨论:从用户态进入内核态 61

5.7讨论:线程的困惑——确定性与非确定性 62

思考题 63

第6章 线程通信 64

引子 64

6.1为什么要通信 64

6.2线程对白:管道、记名管道、套接字 65

6.3线程电报:信号 69

6.4线程旗语:信号量 70

6.5线程拥抱:共享内存 71

6.6信件发送:消息队列 71

6.7其他通信机制 72

思考题 72

第7章 进程同步 73

引子 73

7.1为什么要同步 73

7.2线程同步的目的 75

7.3锁的进化 75

7.4睡觉与叫醒:生产者与消费者问题 81

7.5信号量 84

7.6锁、睡觉与叫醒、信号量 87

7.7管程 88

7.8消息传递 91

7.9栅栏 93

思考题 93

第8章 进程调度 96

引子 96

8.1调度的目标 97

8.2处理器调度的总体目标 97

8.3先来先服务调度算法 98

8.4时间片轮转 98

8.5短任务优先 99

8.6优先级调度 101

8.7混合调度算法 102

8.8其他调度算法 102

8.9实时调度算法 103

8.10高级议题:调度异常之优先级倒挂 104

思考题 106

第9章 锁的实现 107

引子:锁的实现哲学 107

9.1以中断启用与禁止来实现锁 108

9.2以测试与设置指令来实现锁 109

9.3以非繁忙等待、中断启用与禁止来实现锁 111

9.4以最少繁忙等待、测试与设置来实现锁 113

9.5中断禁止、测试与设置 116

思考题 117

第10章 死锁应对 118

引子 118

10.1发生死锁的原因 118

10.2死锁的描述 120

10.3死锁的4个必要条件 121

10.4哲学家就餐问题 122

10.5死锁的应对 122

10.6消除死锁的必要条件 128

10.7银行家算法:冒险的代价 130

10.8哲学家就餐问题之解 132

10.9讨论:死锁的思考——综合治理 134

10.10讨论:死锁、活锁与饥饿 134

思考题 135

第三篇 内存原理篇 138

第11章 基本内存管理 138

引子 138

11.1内存管理的环境 139

11.2内存管理的目标 140

11.3虚拟内存的概念 140

11.4操作系统在内存的位置 142

11.5单道编程的内存管理 143

11.6多道编程的内存管理 144

11.7闲置空间管理 150

思考题 152

第12章 页式内存管理 153

引子 153

12.1基址极限管理模式的问题 154

12.2分页内存管理 156

12.3分页系统的优缺点 160

12.4翻译速度 161

12.5缺页中断处理 163

12.6锁住页面 163

12.7页面尺寸 164

12.8内存抖动 165

思考题 167

第13章 页面更换算法 168

引子 168

13.1页面需要更换 169

13.2页面更换的目标 169

13.3随机更换算法 170

13.4先进先出算法 170

13.5第二次机会算法 171

13.6时钟算法 172

13.7最优更换算法 172

13.8 NRU算法 173

13.9 LRU算法 174

13.10工作集算法 179

13.11工作集时钟算法 181

13.12页面替换策略 181

思考题 182

第14章 段式内存管理 184

引子 184

14.1分页系统的缺点 185

14.2分段管理系统 186

14.3分段的优缺点 188

14.4段页式内存管理 189

14.5段号是否占用寻址字位 190

14.6讨论:否定之否定的嵌套——纯粹分段与逻辑分段、分页与段页 191

思考题 192

第四篇 文件原理篇 194

第15章 磁盘操作 194

引子 194

15.1磁盘组织与管理 195

15.2磁盘的结构 195

15.3盘面的结构 196

15.4磁盘驱动器的访问速度 197

15.5操作系统界面 198

15.6磁盘调度算法 199

思考题 202

第16章 文件基础 203

引子 203

16.1为什么需要文件系统 203

16.2什么是文件系统 204

16.3文件系统的目标 205

16.4文件的基本知识 205

16.5从用户角度看文件系统 205

16.6地址独立的实现机制:文件夹 212

16.7文件系统调用 214

16.8内存映射的文件访问 215

思考题 216

第17章 文件系统实现 217

引子 217

17.1文件系统的布局 218

17.2文件的实现 219

17.3目录实现:地址独立的实现 226

17.4闲置空间管理 231

思考题 232

第18章 文件系统 233

引子 233

18.1文件系统访问控制 234

18.2主动控制:访问控制表 235

18.3能力表 236

18.4访问控制的实施 238

18.5文件系统性能 239

18.6提高系统性能的方法 245

18.7文件系统设计分析:日志结构的文件系统 248

18.8海量数据文件系统 250

思考题 251

第五篇I/O原理篇 254

第19章 输入输出 254

引子 254

19.1什么是输入输出 255

19.2输入输出的目的 256

19.3输入输出硬件 256

19.4输入输出软件 262

19.5 I/O软件分层 266

思考题 269

第六篇 多核原理篇 272

第20章 多核结构与内存 272

引子 272

20.1以量取胜 273

20.2多核基本概念 273

20.3多核的内存结构 277

20.4对称多处理器计算机的启动过程 279

20.5多处理器之间的通信 279

20.6 SMP缓存一致性 281

20.7多处理器、超线程和多核的比较 281

思考题 282

第21章 多核环境下的进程同步与调度 283

引子 283

21.1多核环境下操作系统的修正 284

21.2多核环境下的进程同步与调度 284

21.3多核进程同步 284

21.4硬件原子操作 285

21.5总线锁 285

21.6多核环境下的软件同步原语 286

21.7旋锁 286

21.8其他同步原语 289

21.9多核环境下的进程调度 289

21.10多核环境下的能耗管理 292

21.11讨论:多核系统的性能 293

思考题 295

第七篇 操作系统设计原理篇 298

第22章 操作系统设计之原理 298

引子 298

22.1操作系统设计的追求 300

22.2操作系统设计的第1条哲学原理:层次架构 300

22.3操作系统设计的第2条哲学原理:没有对错 301

22.4操作系统设计的第3条哲学原理:懒人哲学 302

22.5操作系统设计的第4条哲学原理:让困于人 303

22.6操作系统设计的第5条哲学原理:留有余地 304

22.7操作系统设计的第6条哲学原理:子虚乌有——海市蜃楼之美 305

22.8操作系统设计的第7条哲学原理:时空转换——沧海桑田之变 305

22.9操作系统设计的第8条哲学原理:策机分离与权利分离 305

22.10操作系统设计的第9条哲学原理:简单为美——求于至简、归于永恒 306

22.11操作系统设计的第10条哲学原理:适可而止 306

思考题 307

结语 308

参考文献 310