当前位置:首页 > 工业技术
操作系统之哲学原理
操作系统之哲学原理

操作系统之哲学原理PDF电子书下载

工业技术

  • 电子书积分:14 积分如何计算积分?
  • 作 者:邹恒明著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2012
  • ISBN:9787111366928
  • 页数:449 页
图书介绍:本书从哲学的视角对操作系统进行独到的阐述。从人类自然的行为规范推演到操作系统的设计,以一条逻辑轴线将整个操作系统的各种原理演绎到读者面前。 本书花大力气解释了操作系统中的主要难点和模糊点:锁的实现、同步机制的发展轴线、单一分段,分页,逻辑分段,段页式的演变、多核环境下的进程与内存管理、和操作系统设计的哲学原理。本书内容丰富、涵盖操作系统核心的所有部分:操作系统的来龙去脉、操作系统历史、进程与线程(进程管理)、分段与分页(内存管理)、文件与磁盘(文件系统)、输入与输出、和OS设计原理。同时,本书以简洁的语言清晰的勾勒出各种让学生感到神秘的技术后面的自然思路,使学生从根本上理解和掌握操作系统。
《操作系统之哲学原理》目录

第一篇 基础原理篇 3

第1章 操作系统导论 3

引子:智者的挑战 3

1.1人造与神造 5

1.2程序是如何运行的 8

1.3什么是操作系统 10

1.4魔术与管理 12

1.5用户程序与操作系统 14

1.6操作系统的范畴 15

1.7为什么学习操作系统 17

思考题 19

第2章 操作系统历史 20

引子:不能承受之真 20

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

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

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

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

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

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

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

2.8操作系统的演变过程 31

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

2.10讨论:操作系统虚拟化和虚拟化的操作系统 36

思考题 37

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

引子:软件师的尴尬 39

3.1计算机硬件基本知识 41

3.2抽象 44

3.3内核态和用户态 45

3.4操作系统结构 47

3.5进程、内存和文件 50

3.6系统调用 50

3.7壳 52

思考题 56

第二篇 进程原理篇 59

第4章 进程 59

引子:牛顿的困惑 59

4.1进程概论 60

4.2进程模型 61

4.3多道编程的好处 62

4.4进程的产生与消失 66

4.5进程的层次结构 67

4.6进程的状态 67

4.7进程与地址空间 69

4.8进程管理 70

4.9进程的缺陷 73

思考题 74

第5章 进程调度 75

引子:恐怖分子的调度 75

5.1进程调度的定义 77

5.2进程调度的目标 78

5.3先来先服务调度算法 79

5.4时间片轮转算法 79

5.5短任务优先算法 81

5.6优先级调度算法 84

5.7混合调度算法 84

5.8其他调度算法 85

5.9实时调度算法 86

5.10进程调度的过程 88

5.11高级议题:调度异常之优先级倒挂 89

思考题 91

第6章 进程通信 93

引子:孤独爆破手的自白 93

6.1为什么要通信 94

6.2进程对白:管道、记名管道、套接字 94

6.3进程电报:信号 100

6.4进程旗语:信号量 101

6.5进程拥抱:共享内存 103

6.6信件发送:消息队列 104

6.7其他通信机制 104

思考题 105

第三篇 线程原理篇 109

第7章 线程 109

引子:亚历山大的分身术 109

7.1进程的分身术——线程 110

7.2线程管理 111

7.3线程模型的实现 112

7.4现代操作系统的线程实现模型 118

7.5多线程的关系 119

7.6讨论:从用户态进入内核态 120

7.7讨论:线程的困惑——确定性与非确定性 121

思考题 123

第8章 线程同步 125

引子:滑铁卢的同步 125

8.1为什么要同步 126

8.2线程同步的目的 128

8.3锁的进化:金鱼生存 129

8.4睡觉与叫醒:生产者与消费者问题 138

8.5信号量 143

8.6锁、睡觉与叫醒、信号量 145

8.7管程 147

8.8消息传递 152

8.9栅栏 154

思考题 155

第9章 死锁应对之哲学原理 158

引子:迷雾笼罩的加拿大 158

9.1为什么会发生死锁 159

9.2死锁的描述 160

9.3死锁的4个必要条件 162

9.4哲学家就餐问题 163

9.5死锁的应对 164

9.6消除死锁的必要条件 172

9.7银行家算法:冒险的代价 175

9.8哲学家就餐问题之解 178

9.9讨论:死锁的思考——综合治理 181

9.10讨论:死锁、活锁与饥饿 182

思考题 183

第10章 锁的实现 185

引子:高登绳结 185

10.1以中断启用与禁止来实现锁 187

10.2以测试与设置指令来实现锁 189

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

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

10.5中断禁止、测试与设置 197

思考题 198

第四篇 内存原理篇 203

第11章 基本内存管理 203

引子:让别人无路可走 203

11.1内存管理的环境 204

11.2内存管理的目标 205

11.3虚拟内存的概念 207

11.4操作系统在内存中的位置 208

11.5单道编程的内存管理 211

11.6多道编程的内存管理 212

11.7闲置空间管理 220

思考题 222

第12章 页式内存管理 224

引子:虚拟概念的变现 224

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

12.2分页内存管理 228

12.3分页系统的优缺点 233

12.4翻译速度 236

12.5缺页中断处理 238

12.6锁住页面 238

12.7页面尺寸 239

12.8内存抖动 240

思考题 243

第13章 页面更换算法 245

引子:黑洞理论的替换 245

13.1页面需要更换 246

13.2页面更换的目标 247

13.3随机更换算法 248

13.4先进先出算法 249

13.5第二次机会算法 249

13.6时钟算法 250

13.7最优更换算法 252

13.8 NRU算法 252

13.9 LRU算法 254

13.10工作集算法 261

13.11工作集时钟算法 264

13.12页面替换策略 265

思考题 266

第14章 段式内存管理 268

引子:否定之否定 268

14.1分页系统的缺点 269

14.2分段管理系统 271

14.3分段的优缺点 274

14.4段页式内存管理 275

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

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

思考题 279

第五篇 文件原理篇 283

第15章 磁盘操作 283

引子:EMC——从不可能到可能 283

15.1磁盘组织与管理 284

15.2磁盘的结构 285

15.3盘面的结构 286

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

15.5操作系统界面 290

15.6磁盘调度算法 291

15.7讨论:固态盘 295

15.8讨论:智能磁盘系统 296

思考题 297

第16章 文件系统 298

引子:掩饰的极致 298

16.1为什么需要文件系统 299

16.2文件系统 300

16.3文件系统的目标 301

16.4文件的基本知识 301

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

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

16.7文件系统调用 313

16.8内存映射的文件访问 315

思考题 316

第17章 文件系统实现 317

引子:成功中的失败 317

17.1文件系统的布局 319

17.2文件的实现 321

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

17.4闲置空间管理 337

思考题 338

第18章 文件系统性能 340

引子:从不可能到可能 340

18.1文件授权管理 341

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

18.3能力表 344

18.4访问控制的实施 346

18.5其他文件安全措施 348

18.6文件系统性能 348

18.7文件系统效率性能 358

18.8文件系统设计分析:日志结构的文件系统 362

18.9海量数据文件系统 365

思考题 366

第六篇 I/O原理篇 371

第19章 输入输出 371

引子:约翰逊的输出——从没有到爆发 371

19.1输入输出 372

19.2输入输出的目的 373

19.3输入输出硬件 374

19.4 I/O软件 382

19.5 I/O软件分层 386

思考题 391

第七篇 多核原理篇 395

第20章 多核结构与内存 395

引子:不能承受之热 395

20.1以量取胜 396

20.2多核基本概念 397

20.3多核的内存结构 402

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

20.5多处理器之间的通信 405

20.6 SMP缓存一致性 407

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

思考题 409

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

引子:“多核”帝国的陨落 410

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

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

21.3多核进程同步 412

21.4硬件原子操作 413

21.5总线锁 413

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

21.7旋锁 414

21.8其他同步原语 418

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

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

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

思考题 427

第八篇 操作系统设计篇 431

第22章 操作系统设计之哲学原理 431

引子:残缺心智的胜利 431

22.1操作系统设计的追求 434

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

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

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

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

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

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

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

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

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

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

思考题 445

结语:失望与希望 446

参考文献 449

返回顶部