计算机的心智操作系统之哲学原理(第2版)
作者:邹恒明著
出版时间: 2012.03
内容简介:
操作系统是计算机系统的核心系统软件,负责控制和管理整个系统,使之协调工作。本书对操作系统的核心内容进行了全面分析,包括操作系统的发展历史和基本概念、进程与线程、内存管理、文件系统、输入与输出、多核环境下的进程调度和操作系统设计。本书用大量生活实例,生动地解释了操作系统中的主要难点和模糊点:锁的实现、同步机制的发展轴线、纯粹分段到段页式的演变、多核环境下的进程同步与调度和操作系统设计等内容。本书重点突出、逻辑清晰、内容连贯,便于学生顺利掌握操作系统的核心内容。
《操作系统之哲学原理(第2版)》层次丰富、涵盖操作系统的所有核心内容,适合作为国内高校计算机及相关专业本科生操作系统课程的教材,也是了解计算机操作系统原理不可多得的参考书。
目录:
前言
第一篇基础原理篇
第1章操作系统导论
引子:智者的挑战
1.1人造与神造
1.2程序是如何运行的
1.3什么是操作系统
1.4魔术与管理
1.5用户程序与操作系统
1.6操作系统的范畴
1.7为什么学习操作系统
思考题
第2章操作系统历史
引子:不能承受之真
2.1第一阶段:状态机操作系统(1940年以前)
2.2第二阶段:单一操作员单一控制端操作系统(20世纪40年代)
2.3第三阶段:批处理操作系统(20世纪50年代)
2.4第四代:多道批处理操作系统(20世纪60年代)
2.5第五代之一:分时操作系统(20世纪70年代)
2.6第五代之二:实时操作系统
2.7第六代:现代操作系统(1980年以后)
2.8操作系统的演变过程
2.9操作系统的未来发展趋势
2.10讨论:操作系统虚拟化和虚拟化的操作系统
思考题
第3章操作系统基本概念
引子:软件师的尴尬
3.1计算机硬件基本知识
3.2抽象
3.3内核态和用户态
3.4操作系统结构
3.5进程、内存和文件
3.6系统调用
3.7壳
思考题
第二篇进程原理篇
第4章进程
引子:牛顿的困惑
4.1进程概论
4.2进程模型
4.3多道编程的好处
4.4进程的产生与消失
4.5进程的层次结构
4.6进程的状态
4.7进程与地址空间
4.8进程管理
4.9进程的缺陷
思考题
第5章进程调度
引子:恐怖分子的调度
5.1进程调度的定义
5.2进程调度的目标
5.3先来先服务调度算法
5.4时间片轮转算法
5.5短任务优先算法
5.6优先级调度算法
5.7混合调度算法
5.8其他调度算法
5.9实时调度算法
5.10进程调度的过程
5.11高级议题:调度异常之优先级倒挂
思考题
第6章进程通信
引子:孤独爆破手的自白
6.1为什么要通信
6.2进程对白:管道、记名管道、套接字
6.3进程电报:信号
6.4进程旗语:信号量
6.5进程拥抱:共享内存
6.6信件发送:消息队列
6.7其他通信机制
思考题
第三篇线程原理篇
第7章线程
引子:亚历山大的分身术
7.1进程的分身术——线程
7.2线程管理
7.3线程模型的实现
7.4现代操作系统的线程实现模型
7.5多线程的关系
7.6讨论:从用户态进入内核态
7.7讨论:线程的困惑——确定性与非确定性
思考题
第8章线程同步
引子:滑铁卢的同步
8.1为什么要同步
8.2线程同步的目的
8.3锁的进化:金鱼生存
8.4睡觉与叫醒:生产者与消费者问题
8.5信号量
8.6锁、睡觉与叫醒、信号量
8.7管程
8.8消息传递
8.9栅栏
思考题
第9章死锁应对之哲学原理
引子:迷雾笼罩的加拿大
9.1为什么会发生死锁
9.2死锁的描述
9.3死锁的4个必要条件
9.4哲学家就餐问题
9.5死锁的应对
9.6消除死锁的必要条件
9.7银行家算法:冒险的代价
9.8哲学家就餐问题之解
9.9讨论:死锁的思考——综合治理
9.10讨论:死锁、活锁与饥饿
思考题
第10章锁的实现
引子:高登绳结
10.1以中断启用与禁止来实现锁
10.2以测试与设置指令来实现锁
10.3以非繁忙等待、中断启用与禁止来实现锁
10.4以最少繁忙等待、测试与设置来实现锁
10.5中断禁止、测试与设置
思考题
第四篇内存原理篇
第11章基本内存管理
引子:让别人无路可走
11.1内存管理的环境
11.2内存管理的目标
11.3虚拟内存的概念
11.4操作系统在内存中的位置
11.5单道编程的内存管理
11.6多道编程的内存管理
11.7闲置空间管理
思考题
第12章页式内存管理
引子:虚拟概念的变现
12.1基址极限管理模式的问题
12.2分页内存管理
12.3分页系统的优缺点
12.4翻译速度
12.5缺页中断处理
12.6锁住页面
12.7页面尺寸
12.8内存抖动
思考题
第13章页面更换算法
引子:黑洞理论的替换
13.1页面需要更换
13.2页面更换的目标
13.3随机更换算法
13.4先进先出算法
13.5第二次机会算法
13.6时钟算法
13.7最优更换算法
13.8NRU算法
13.9LRU算法
13.10工作集算法
13.11工作集时钟算法
13.12页面替换策略
思考题
第14章段式内存管理
引子:否定之否定
14.1分页系统的缺点
14.2分段管理系统
14.3分段的优缺点
14.4段页式内存管理
14.5段号是否占用寻址字位
14.6讨论:否定之否定的嵌套——纯粹分段与逻辑分段、分页与段页
思考题
第五篇文件原理篇
第15章磁盘操作
引子:EMC——从不可能到可能
15.1磁盘组织与管理
15.2磁盘的结构
15.3盘面的结构
15.4磁盘驱动器的访问速度
15.5操作系统界面
15.6磁盘调度算法
15.7讨论:固态盘
15.8讨论:智能磁盘系统
思考题
第16章文件系统
引子:掩饰的极致
16.1为什么需要文件系统
16.2文件系统
16.3文件系统的目标
16.4文件的基本知识
16.5从用户角度看文件系统
16.6地址独立的实现机制:文件夹
16.7文件系统调用
16.8内存映射的文件访问
思考题
第17章文件系统实现
引子:成功中的失败
17.1文件系统的布局
17.2文件的实现
17.3目录实现:地址独立的实现
17.4闲置空间管理
思考题
第18章文件系统性能
引子:从不可能到可能
18.1文件授权管理
18.2主动控制:访问控制表
18.3能力表
18.4访问控制的实施
18.5其他文件安全措施
18.6文件系统性能
18.7文件系统效率性能
18.8文件系统设计分析:日志结构的文件系统
18.9海量数据文件系统
思考题
第六篇I/O原理篇
第19章输入输出
引子:约翰逊的输出——从没有到爆发
19.1输入输出
19.2输入输出的目的
19.3输入输出硬件
19.4I/O软件
19.5I/O软件分层
思考题
第七篇多核原理篇
第20章多核结构与内存
引子:不能承受之热
20.1以量取胜
20.2多核基本概念
20.3多核的内存结构
20.4对称多处理器计算机的启动过程
20.5多处理器之间的通信
20.6SMP缓存一致性
20.7多处理器、超线程和多核的比较
思考题
第21章多核环境下的进程同步与调度
引子:“多核”帝国的陨落
21.1多核环境下操作系统的修正
21.2多核环境下的进程同步与调度
21.3多核进程同步
21.4硬件原子操作
21.5总线锁
21.6多核环境下的软件同步原语
21.7旋锁
21.8其他同步原语
21.9多核环境下的进程调度
21.10多核环境下的能耗管理
21.11讨论:多核系统的性能
思考题
第八篇操作系统设计篇
第22章操作系统设计之哲学原理
引子:残缺心智的胜利
22.1操作系统设计的追求
22.2操作系统设计的第1条哲学原理:层次架构
22.3操作系统设计的第2条哲学原理:没有对错
22.4操作系统设计的第3条哲学原理:懒人哲学
22.5操作系统设计的第4条哲学原理:让困于人
22.6操作系统设计的第5条哲学原理:留有余地
22.7操作系统设计的第6条哲学原理:子虚乌有——海市蜃楼之美
22.8操作系统设计的第7条哲学原理:时空转换——沧海桑田之变
22.9操作系统设计的第8条哲学原理:策机分离与权利分离
22.10操作系统设计的第9条哲学原理:简单为美——求于至简,归于永恒
22.11操作系统设计的第10条哲学原理:适可而止
思考题
结语:失望与希望
参考文献