展开全部

主编推荐语

将生活哲学与操作系统发展的来龙去脉进行了完美的结合。

内容简介

本书对操作系统的核心内容进行了全面分析,包括操作系统的发展历史和基本概念、进程与线程、内存管理、文件系统、输入与输出、多核环境下的进程调度和操作系统设计。

本书用大量生活实例,生动地解释了操作系统中的主要难点和模糊点:锁的实现、同步机制的发展轴线、纯粹分段到段页式的演变、多核环境下的进程同步与调度和操作系统设计等内容。
本书重点突出、逻辑清晰、内容连贯,便于学生顺利掌握操作系统的核心内容。

目录

  • 版权信息
  • 前言
  • 计算机的心智
  • 操作系统的奥秘
  • 操作系统之哲学原理
  • 本书内容安排
  • 基础原理篇
  • 进程原理篇
  • 线程原理篇
  • 内存原理篇
  • 文件原理篇
  • I/O原理篇
  • 多核原理篇
  • 操作系统设计篇
  • 本书特点
  • 第一篇 基础原理篇
  • 第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.8 NRU算法
  • 13.9 LRU算法
  • 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.4 I/O软件
  • 19.5 I/O软件分层
  • 思考题
  • 第七篇 多核原理篇
  • 第20章 多核结构与内存
  • 引子:不能承受之热
  • 20.1 以量取胜
  • 20.2 多核基本概念
  • 20.3 多核的内存结构
  • 20.4 对称多处理器计算机的启动过程
  • 20.5 多处理器之间的通信
  • 20.6 SMP缓存一致性
  • 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条哲学原理:适可而止
  • 思考题
  • 结语:失望与希望
  • 参考文献
展开全部

评分及书评

4.3
3个评分
  • 用户头像
    给这本书评了
    3.0

    作者挺用心的,而且在教学和实践中对操作系统本身、对哲学肯定都有深入地思考和感悟。但从书的内容来说,哲学部分 * 显得 * 刻意了。作为一个有半拉子操作系统基础的工科生,从这本书中获得的操作系统知识边界的突破并不大。如果是没学过的人想通过这本书入门操作系统,这本书太难了;学过的想再进一步拓展,似乎又简单了… 书标题显然是要致敬牛顿;而书的每个章节开头都通过一个小故事开始,这显然也是英文非虚构类书的常用套路,但是这些故事太刻意了,而且跟接下来的内容也不太搭…

      转发
      评论

    出版方

    机械工业出版社有限公司

    机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。