现代操作系统.pdf

现代操作系统.pdf
 

书籍描述

编辑推荐
《现代操作系统(原书第3版)》特色:
涉及Windows Vista以及最新的Linux/UNIX操作系统。
用一整章(第12章)的篇幅对用于移动设备的Symbian操作系统进行分析。
涵盖更多、更新的安全方面的内容。
重新组织内容,尽早论述关键抽象概念。
给出与未来操作系统发展有关的新研究成果。
更新和增加了编程练习。
在线操作系统练习(http://www.prenhall.com/tanenbaum/details.html)采用主流Windows操作系统以及开源工具。
包括操作系统模拟练习。
Tanenbaum教授作为三个操作系统的设计师或联合设计师,具有长期设计开发操作系统的经验,从而把其对理论的深入理解和具体实践融入书中,使《现代操作系统(原书第3版)》成为操作系统领域的经典之作。
在《现代操作系统(原书第3版)》第3版中,作者深入讨论了许多主题,包括:进程、线程、存储管理、文件系统、I/O、死锁、接口设计、多媒体、性能权衡,以及有关操作系统设计的最新趋势。书中不仅涵盖了现代操作系统的原理和实践,而且特别关注了Linux操作系统、Windows Vista操作系统、嵌入式操作系统、实时操作系统以及多媒体操作系统。

作者简介
作者:(荷兰) 塔嫩鲍姆 (Tanenbaum.A.S) 译者:陈向群 马洪兵

Andrew S.Tanenbaum,拥有美国麻省理工学院的理学学士学位和加州大学伯克利分校的哲学博士学位,目前是荷兰阿姆斯特丹Vrije大学的计算机科学系教授多年来,他在编译技术、操作系统、网络及局域分布式系统方面进行了大量的研究工作。目前。他专注于系统和安全方面的高级研究他已经发表了近150篇论文,并在十几个国家做了有关操作系统的学术报告Tanenbaum是ACM会员、IEEE资深会员、荷兰皇家艺术和科学学院院士。并由于计算领域.特别是计算机组织、网络和操作系统方面的教育所做的贡献。而获得2007年度IEEE James H.Mulhgan,Jr教育奖。他还入选了《世界名人录》。

目录
出版者的话
译者充
前言
第1章 引论
1.1 什么是操作系统
1.1.1 作为扩展机器的操作系统
1.1.2 作为资源管理者的操作系统
1.2 操作系统的历史
1.2.1 第一代(1945~1955):真空管和穿孔卡片
1.2.2 第二代(1955~1965):晶体管和批处理系统
1.2.3 第三代(1965~1980):集成电路芯片和多道程序设计
l.2.4第四代(1980年至今):个人
计算机
1.3 计算机硬件介绍
1.3.1 处理器
1.3.2 存储器
1.3.3 磁盘
1.3.4 磁带
1.3.5 I/O设备
1.3.6 总线
1.3.7 启动计算机
1.4 操作系统大观园
1.4.1 大型机操作系统
1.4.2 服务器操作系统
1.4.3 多处理器操作系统
1.4.4 个人计算机操作系统
1.4.5 掌上计算机操作系统
1.4.6 嵌入式操作系统
1.4.7 传感器节点操作系统
1.4.8 实时操作系统
1.4.9 智能卡操作系统
1.5 操作系统概念
1.5.1 进程
1.5.2 地址空间
1.5.3 文件
1.5.4 输入/输出
1.5.5 保护
1.5.6 shell
1.5.7 个体重复系统发育
1.6 系统调用
1.6.1 用于进程管理的系统调用
1.6.2 用于文件管理的系统调用
1.6.3 用于目录管理的系统调用
1.6.4 各种系统调用
1.6.5 WindowsWin32API
1.7 操作系统结构
1.7.1 单体系统
1.7.2 层次式系统
1.7.3 微内核
1.7.4 客户机-服务器模式
1.7.5 虚拟机
1.7.6 外核
1.8 依靠C的世界
1.8.1 C语言
1.8.2 头文件
1.8.3 大型编程项目
1.8.4 运行模型
1.9 有关操作系统的研究
1.10 本书其他部分概要
1.11 公制单位
1.12 小结
习题

第2章 进程与线程
2.1 进程
2.1.1 进程模型
2.1.2 创建进程
2.1.3 进程的终止
2.1.4 进程的层次结构
2.1.5 进程的状态
2.1.6 进程的实现
2.1.7 多道程序设计模型
2.2 线程
2.2.1 线程的使用
2.2.2 经典的线程模型
2.2.3 POSIX线程
2.2.4 在用户空间中实现线程
2.2.5 在内核中实现线程
2.2.6 混合实现
2.2.7 调度程序激活机制
2.2.8 弹出式线程
2.2.9 使单线程代码多线程化
2.3 进程间通信
2.3.1 竞争条件
2.3.2 临界区
2.3.3 忙等待的互斥
2.3.4 睡眠与唤醒
2.3.5 信号量
2.3.6 互斥量
2.3.7 管程
2.3.8 消息传递
2.3.9 屏障
2.4 调度
2.4.1 调度介绍
2.4.2 批处理系统中的调度
2.4.3 交互式系统中的调度
2.4.4 实时系统中的调度
2.4.5 策略和机制
2.4.6 线程调度
2.5 经典的IPC问题
2.5.1 哲学家就餐问题
2.5.2 读者一写者问题
2.6 有关进程和线程的研究
2.7 小结
习题

第3章 存储管理
3.1 无存储器抽象
3.2 一种存储器抽象:地址空间
3.2.1 地址空间的概念
3.2.2 交换技术
3.2.3 空闲内存管理
3.3 虚拟内存
3.3.1 分页
3.3.2 页表
3.3.3 加速分页过程
3.3.4 针对大内存的页表
3.4 页面置换算法
3.4.1 最优页面置换算法
3.4.2 最近未使用页面置换算法
3.4.3 先进先出页面置换算法
3.4.4 第二次机会页面置换算法
3.4.5 时钟页面置换算法
3.4.6 最近最少使用页面置换算法
3.4.7 用软件模拟LRU
3.4.8 工作集页面置换算法
3.4.9 工作集时钟页面置换算法
3.4.10 页面置换算法小结
3.5 分页系统中的设计问题
3.5.1 局部分配策略与全局分配策略
3.5.2 负载控制
3.5.3 页面大小
3.5.4 分离的指令空间和数据空间
3.5.5 共享页面
3.5.6 共享库
3.5.7 内存映射文件
3.5.8 清除策略
3.5.9 虚拟内存接口
3.6 有关实现的问题._
3.6.1 与分页有关的工作
3.6.2 缺页中断处理
3.6.3 指令备份__
3.6.4 锁定内存中的页面
3.6.5 后备存储
3.6.6 策略和机制的分离
3.7 分段
3.7.1 纯分段的实现
3.7.2 分段和分页结合:MULTICS
3.7.3 分段和分页结合:Intel Pentium
3.8 有关存储管理的研究
3.9 小结
习题

第4章 文件系统
4.1 文件
4.1.1 文件命名
4.1.2 文件结构
4.1.3 文件类型
4.1.4 文件存取
4.1.5 文件属性
4.1.6 文件操作
4.1.7 使用文件系统调用的一个示例程序
4.2 目录
4.2.1 一级目录系统
4.2.2 层次目录系统
4.2.3 路径名
4.2.4 目录操作
4.3 文件系统的实现
4.3.1 文件系统布局
4.3.2 文件的实现
4.3.3 目录的实现
4.3.4 共享文件
4.3.5 日志结构文件系统
4.3.6 日志文件系统
4.3.7 虚拟文件系统
4.4 文件系统管理和优化
4.4.1 磁盘空间管理
4.4.2 文件系统备份
4.4.3 文件系统的一致性
4.4.4 文件系统性能
4.4.5 磁盘碎片整理
4.5 文件系统实例
4.5.1 CD-ROM文件系统
4.5.2 MS-DOS文件系统
4.5.3 UNIXV7文件系统
4.6 有关文件系统的研究
4.7 小结
习题

第5章 输入/输出
5.1 I/O硬件原理
5.1.1 I/O设备
5.1.2 设备控制器
5.1.3 内存映射I/O
5.1.4 直接存储器存取
5.1.5 重温中断
5.2 I/O软件原理
5.2.1 I/O软件的目标
5.2.2 程序控制I/O
5.2.3 中断驱动I/O
5.2.4 使用DMA的I/O
5.3 I/O软件层次
5.3.1 中断处理程序
5.3.2 设备驱动程序
5.3.3 与设备无关的I/O软件
5.3.4 用户空间的I/O软件
5.4 盘
5.4.1 盘的硬件
5.4.2 磁盘格式化
5.4.3 磁盘臂调度算法
5.4.4 错误处理
5.4.5 稳定存储器
5.5 时钟
5.5.1 时钟硬件
5.5.2 时钟软件
5.5.3 软定时器
5.6 用户界面:键盘、鼠标和监视器
5.6.1 输入软件
5.6.2 输出软件
5.7 瘦客户机
5.8 电源管理
5.8.1 硬件问题
5.8.2 操作系统问题
5.8.3 应用程序问题
5.9 有关输入/输出的研究
5.10 小结
习题

第6章 死锁
6.1 资源
6.1.1 可抢占资源和不可抢占资源
6.1.2 资源获取
6.2 死锁概述
6.2.1 资源死锁的条件
6.2.2 死锁建模
6.3 鸵鸟算法
6.4 死锁检测和死锁恢复
6.4.1 每种类型一个资源的死锁检测
6.4.2 每种类型多个资源的死锁检测
6.4.3 从死锁中恢复
6.5 死锁避免
6.5.1 资源轨迹图
6.5.2 安全状态和不安全状态
6.5.3 单个资源的银行家算法
6.5.4 多个资源的银行家算法
6.6 死锁预防
6.6.1 破坏互斥条件
6.6.2 破坏占有和等待条件
6.6.3 破坏不可抢占条件
6.6.4 破坏环路等待条件
6.7 其他问题
6.7.1 两阶段加锁
6.7.2 通信死锁
6.7.3 活锁
6.7 -4饥饿
6.8.有关死锁的研究
6.9 小结
习题

第7章 多媒体操作系统
7.1 多媒体简介
7.2 多媒体文件
7.2.1 视频编码
7.2.2 音频编码
7.3 视频压缩
7.3.1 JPEG标准
7.3.2 MPEG标准
7.4 音频压缩
7.5 多媒体进程调度
7.5.1 调度同质进程
7.5.2 一般实时调度
7.5.3 速率单调调度
7.5.4 最早最终时限优先调度
7.6 多媒体文件系统范型
7.6.1 VCR控制功能
7.6.2 近似视频点播
7.6.3 具有VCR功能的近似视频点播
7.7 文件存放
7.7.1 在单个磁盘上存放文件
7.7.2 两个替代的文件组织策略
7.7.3 近似视频点播的文件存放
7.7.4 在单个磁盘上存放多个文件
7.7.5 在多个磁盘上存放文件
7.8 高速缓存
7.8.1 块高速缓存
7.8.2 文件高速缓存
7.9 多媒体磁盘调度
7.9.1 静态磁盘调度
7.9.2 动态磁盘调度
7.10 有关多媒体的研究
7.11 小结
习题

第8章 多处理机系统
8.1 多处理机
8.1.1 多处理机硬件
8.1.2 多处理机操作系统类型
8.1.3 多处理机同步
8.1.4 多处理机调度
8.2 多计算机
8.2.1 多计算机硬件
8.2.2 低层通信软件
8.2.3 用户层通信软件
8.2.4 远程过程调用
8.2.5 分布式共享存储器
8.2.6 多计算机调度
8.2.7 负载平衡
8.3 虚拟化
8.3.1 虚拟化的条件
8.3.2 Ⅰ型管理程序
8.3.3 Ⅱ型管理程序
8.3.4 准虚拟化
8.3.5 内存的虚拟化
8.3.6 I/0设备的虚拟化
8.3.7 虚拟工具
8.3.8 多核处理机上的虚拟机
8.3.9 授权问题
8.4 分布式系统
8.4.1 网络硬件
8.4.2 网络服务和协议
8.4.3 基于文档的中间件
8.4.4 基于文件系统的中间件
8.4.5 基于对象的中间件
8.4.6 基于协作的中间件
8.4.7 网格
8.5 有关多处理机系统的研究
8.6 小结
习题

第9章 安全
第10章 实例研究1:Linux
第11章 实例研究2:Windows Visa
第12章 实例研究3:Symbian操作系统
第13章 操作系统设计
第14章 阅读材料及参考文献

序言
Andrew S.Tanenbaum教授写作的《现代操作系统》,无论是英文版还是中文版都受到了中国读者的欢迎。究其原因,该书内容丰富,反映了当代操作系统的发展与动向。这次出版的第3版,无疑在保持原有特色的基础上,又有所发展。
第3版的一个很大变化是,大大加强了对操作系统中许多抽象概念的叙述,包括CPU到进程的抽象、物理内存到地址空间(虚拟内存)的抽象以及磁盘到文件的抽象等。Tanenbaum教授在《现代操作系统》前两版中,在这一方面确实着墨不多。译者在翻译该书前两版的内容时,就对此有些疑问,似乎Tanenbaum教授的讲授方法与众不同。这是因为,在国内许多院校的操作系统教学过程中,授课教师非常重视对这些抽象概念的讲解和分析。而且据译者所知,在美国不少大学的操作系统教学过程中,也很重视对这些抽象概念的引入。译者认为,Tanenbaum教授在第3版中对有关操作系统基本抽象概念叙述方式的重大修改,是对《现代操作系统》内在质量的提升,将使第3版受到更多中国教师和读者的欢迎。

文摘
插图:

现代操作系统
第2章 进程与线程
从本章开始我们将深入考察操作系统是如何设计和构造的。操作系统中最核心的概念是进程:这是对正在运行程序的一个抽象。操作系统的其他所有内容都是围绕着进程的概念展开的,所以,让操作系统的设计者(及学生)尽早并透彻地理解进程是非常重要的。
进程是操作系统提供的最古老的也是最重要的抽象概念之一。即使可以利用的CPU只有一个,但它们也支持(伪)并发操作的能力。它们将一个单独的CPU变换成多个虚拟的CPU。没有进程的抽象,现代计算将不复存在。在本章里我们会通过大量的细节去探究进程,以及它们的第一个亲戚——线程。
2.1 进程
所有现代的计算机经常会在同一时间做许多件事。习惯于在个人计算机上工作的人们也许不会十分注意这个事实,因此列举一些例子可以更清楚地说明这一问题。先考虑一个网络服务器。从各处进入一些网页请求。当一个请求进入时,服务器检查是否其需要的网页在缓存中。如果是,则把网页发送回去;如果不是,则启动一个磁盘请求以获取网页。然而,从CPU的角度来看,磁盘请求需要漫长的时间。当等待磁盘请求完成时,其他更多的请求将会进入。如果有多个磁盘存在,会在满足第一个请求之前就接二连三地对其他的磁盘发出一些或所有的请求。很明显,需要一些方法去模拟并控制这种并发。进程(特别是线程)在这里就可以产生作用。
现在考虑只有一个用户的PC。一般用户不知道,当启动系统时,会秘密启动许多进程。例如,启动一个进程用来等待进入的电子邮件;或者启动另一个防病毒进程周期性地检查是否有新的有效的病毒定义。另外,某个用户进程也许会在所有用户上网的时候打印文件以及烧录CD-ROM。所有的这些活动需要管理,于是一个支持多进程的多道程序系统在这里就显得很有用了。
在任何多道程序设计系统中,CPU由一个进程快速切换至另一个进程,使每个进程各运行几十或几百个毫秒。严格地说,在某一个瞬间,CPU只能运行一个进程。但在1秒钟期间,它可能运行多个进程,这样就产生并行的错觉。有时人们所说的伪并行就是指这种情形,以此来区分多处理器系统(该系统有两个或多个CPU共享同一个物理内存)的真正硬件并行。人们很难对多个并行活动进行跟踪。因此,经过多年的努力,操作系统的设计者发展了用于描述并行的一种概念模型(顺序进程),使得并行更容易处理。有关该模型、它的使用以及它的影响正是本章的主题。

内容简介
《现代操作系统(原书第3版)》是操作系统领域的经典之作,与第2版相比,增加了关于Linux、Windows Vista和Symbian操作系统的详细介绍。书中集中讨论了操作系统的基本原理,包括进程、线程、存储管理、文件系统、输入/输出、死锁等,同时还包含了有关计算机安全、多媒体操作系统、掌上计算机操作系统、微内核、多核处理机上的虚拟机以及操作系统设计等方面的内容。此外,还在第2版的基础上对部分习题进行了增删,更有助于读者学习和对知识的理解及掌握。
《现代操作系统(原书第3版)》适合作为高等院校计算机专业操作系统课程教材,也是设计、开发操作系统的重要参考书。

海报:

现代操作系统

购买书籍

当当网购书 京东购书 卓越购书

PDF电子书下载地址

相关书籍

搜索更多