现代操作系统(原书第3版)[Modern Operating Systems] 内容简介

现代操作系统(原书第3版)[Modern Operating Systems] 内容简介

现代操作系统(原书第3版)[Modern Operating Systems] 目录

现代操作系统(原书第3版)[Modern Operating Systems] 精彩文摘

《计算机科学丛书:现代操作系统(原书第3版)》是操作系统领域的经典之作,与第2版相比,增加了关于Linux、Windows Vista和Symbian操作系统的详细介绍。书中集中讨论了操作系统的基本原理,包括进程、线程、存储管理、文件系统、输入/输出、死锁等,同时还包含了有关计算机安全、多媒体操作系统、掌上计算机操作系统、微内核、多核处理机上的虚拟机以及操作系统设计等方面的内容。此外,还在第2版的基础上对部分习题进行了增删,更有助于读者学习和对知识的理解及掌握。《计算机科学丛书:现代操作系统(原书第3版)》适合作为高等院校计算机专业操作系统课程教材,也是设计、开发操作系统的重要参考书。前言第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):集成电路芯片和多道程序设计1.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 shell1.5.7 个体重复系统发育1.6 系统调用1.6.1 用于进程管理的系统调用1.6.2 用于文件管理的系统调用1.6.3 用于目录管理的系统调用1.6.4 各种系统调用1.6.5 WindowsWin32API1.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 用软件模拟LRU3.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 分段和分页结合:MULTICS3.7.3 分段和分页结合:Intel Pentium3.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/O5.1.4 直接存储器存取5.1.5 重温中断5.2 I/O软件原理5.2.1 I/O软件的目标5.2.2 程序控制I/O5.2.3 中断驱动I/O5.2.4 使用DMA的I/O5.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章 阅读材料及参考文献第2章 进程与线程从本章开始我们将深入考察操作系统是如何设计和构造的。操作系统中最核心的概念是进程:这是对正在运行程序的一个抽象。操作系统的其他所有内容都是围绕着进程的概念展开的,所以,让操作系统的设计者(及学生)尽早并透彻地理解进程是非常重要的。进程是操作系统提供的最古老的也是最重要的抽象概念之一。即使可以利用的CPU只有一个,但它们也支持(伪)并发操作的能力。它们将一个单独的CPU变换成多个虚拟的CPU。没有进程的抽象,现代计算将不复存在。在本章里我们会通过大量的细节去探究进程,以及它们的第一个亲戚——线程。2.1 进程所有现代的计算机经常会在同一时间做许多件事。习惯于在个人计算机上工作的人们也许不会十分注意这个事实,因此列举一些例子可以更清楚地说明这一问题。先考虑一个网络服务器。从各处进入一些网页请求。当一个请求进入时,服务器检查是否其需要的网页在缓存中。如果是,则把网页发送回去;如果不是,则启动一个磁盘请求以获取网页。然而,从CPU的角度来看,磁盘请求需要漫长的时间。当等待磁盘请求完成时,其他更多的请求将会进入。如果有多个磁盘存在,会在满足第一个请求之前就接二连三地对其他的磁盘发出一些或所有的请求。很明显,需要一些方法去模拟并控制这种并发。进程(特别是线程)在这里就可以产生作用。现在考虑只有一个用户的PC。一般用户不知道,当启动系统时,会秘密启动许多进程。例如,启动一个进程用来等待进入的电子邮件;或者启动另一个防病毒进程周期性地检查是否有新的有效的病毒定义。另外,某个用户进程也许会在所有用户上网的时候打印文件以及烧录CD-ROM。所有的这些活动需要管理,于是一个支持多进程的多道程序系统在这里就显得很有用了。在任何多道程序设计系统中,CPU由一个进程快速切换至另一个进程,使每个进程各运行几十或几百个毫秒。严格地说,在某一个瞬间,CPU只能运行一个进程。但在1秒钟期间,它可能运行多个进程,这样就产生并行的错觉。有时人们所说的伪并行就是指这种情形,以此来区分多处理器系统(该系统有两个或多个CPU共享同一个物理内存)的真正硬件并行。人们很难对多个并行活动进行跟踪。因此,经过多年的努力,操作系统的设计者发展了用于描述并行的一种概念模型(顺序进程),使得并行更容易处理。有关该模型、它的使用以及它的影响正是本章的主题。

类似文章

发表评论

您的电子邮箱地址不会被公开。