logo资料库

操作系统(国内优秀教材).pdf

第1页 / 共537页
第2页 / 共537页
第3页 / 共537页
第4页 / 共537页
第5页 / 共537页
第6页 / 共537页
第7页 / 共537页
第8页 / 共537页
资料共537页,剩余部分请下载后查看
操作系统原理
《操作系统教程》 (第三版) 孙钟秀主编 费翔林 骆斌 谢立参编 高等教育出版社 2003 年 3 月 I
前言 操作系统是计算机系统的重要组成部分,操作系统课程是计算机教育的基础课程, 作为计算机专业的核心课,不但高等院校计算机相关专业学生必须学习它,而且从事 计算机行业的人员也需要深入了解它。为了更好地学习和透彻理解计算机系统的运作 过程和操作系统的基本原理,一本适用的操作系统教材显得十分重要。本教材是多年 来操作系统教学和操作系统科学研究相结合的产物,多年来在南京大学和国内很多高 校计算机专业的教学过程中得到了广泛的应用,曾在 1992 年第二届全国高等学校优秀 教材评选中获国家级优秀教材奖。是继《操作系统原理》(人民邮电出版社,1980 年 3 月),《操作系统教程》(第一版)(高等教育出版社,1989 年 3 月)和《操作系 统教程》(第二版)(高等教育出版社,1994 年 12 月)之后更新教学内容后的新版本。 进入九十年代以后,计算机科学技术突飞猛进,操作系统又是计算机领域最活跃 的分支之一,操作系统的新概念、新技术和新方法层出不穷,促使现代操作系统发生 了巨大的变化。为了适应这种发展的趋势,操作系统的教材必需尽快更新。除了反映 经典内容外,当代操作系统的最新成果也应尽快、准确、全面地组织到教材中,国外 非常重视操作系统教材的建设和更新工作,近年来又出版了若干有影响的操作系统教 材。为此,我们在以前多年教学工作的基础上,结合国内外最新的资料和教材编写出 版《操作系统教程》(第三版),以适应信息社会计算机科学技术飞速发展的形势和 社会用人单位对计算机教学内容要求改革的迫切需求。 本书的特点之一是:既致力于传统操作系统基本概念、基本技术、基本方法的阐 述,又融合现代操作系统最新技术发展和应用的讨论,着眼于操作系统学科知识体系 的系统性、先进性和实用性。本书的特点之二是:把操作系统成熟的基本原理与当代 有代表性的具体实例,操作系统的设计原理与操作系统的实现技术,操作系统的理论 知识与操作系统的实践实习紧密地结合起来。选择了具有代表性的 Windows 2000/XP 和 UNIX 类(包括 SVR4、Solaris、Linux)主流操作系统作为实例贯穿全书,这十分 有益于学生深入理解操作系统的整体概念和牢固掌握操作系统设计实现的精髓。《操 作系统教程》(第三版)保持原版本系列教材的编写特点,力求做到:概念清晰、结 构合理;内容丰富、取舍得当;由浅入深、循序渐进。新版本既有利于学生的知识获 取,又有利于学生的能力培养,希望能达到较好的教学效果。 本书是一本关于操作系统的基本概念、基本方法、设计原理和实现技术的教材, 目的是尽可能系统、清晰、全面、综合地展示当代操作系统的概念、特点、本质和精 髓。全书共分八章,每章的最后一节是小结,涉及的内容有: CH1 操作系统概论。介绍操作系统的基本概念、多道程序设计技术、操作系统的 形成和发展,操作系统的分类;操作系统的服务、操作系统的功能、操作系统的接口; 操作系统的结构,并以 Windows 2000/XP 为例着重介绍了客户/服务器结构;对流行的 一些主要操作系统也作了简单介绍。 CH2 处理机管理。从处理器和中断技术开始,介绍了中断的概念、分类、处理、 优先级和多重中断;接着,引入进程和线程的概念,介绍进程管理的实现模型、线程 不同级别的实现方法;介绍处理机调度的三个层次,着重讨论了各种单处理机调度算法, 也涉及到多处理机调度算法和实时调度算法。实例研究讨论了 Window2000/XP、Solaris 和 Linux 中断处理;UNIX SVR4、Windows2000/XP 和 Linux 处理机调度算法。 CH3 并发进程。介绍进程的顺序性和并发性,进程的协作和竞争,以进程交互、 进程控制、进程通信和进程死锁问题为重点,讨论并发程序设计有关技术和各种进程 互斥、同步、通信机制和工具。最后介绍了 Windows2000/XP 的同步和通信机制,Linux 的信号量机制。 CH4 存储管理。讨论存储管理的基本功能、各种传统存储管理技术、虚拟存储管 II
理技术和最新的存储管理技术如:多级页表、反置页表等。实例研究深入介绍了 Intel x86/Pentium 存储管理硬件设施,Windows 2000/XP 虚拟存储管理和 Linux 虚拟存储管 理。 CH5 设备管理。讨论 I/O 硬件原理、I/O 控制方式、I/O 软件原理、I/O 缓冲技术; 着重介绍磁盘驱动调度技术、RAID 技术,以及设备分配/去配和虚拟设备技术。也介 绍了具有通道的 I/O 系统管理。实例研究介绍了 Windows2000/XP I/O 系统和 Linux 设 备管理。 CH6 文件管理。讨论文件概念、文件目录、文件逻辑结构、文件物理结构、文件 的保护和保密、文件存储空间管理,以及文件的操作和使用原理。也讨论了文件系统 的新概念:内存映射文件和虚拟文件系统。实例研究介绍了 Windows2000/XP 文件管 理和 Linux 文件管理。 CH7 操作系统安全性。讨论操作系统安全威胁和类型;操作系统保护的层次及保 护的基本机制、策略和模型,其中着重讨论了身份认证机制、授权机制、加密机制和 审计机制;实例研究介绍了 Windows 2000/XP 安全机制。 CH8 网络和分布式操作系统。简要介绍网络和分布式操作系统的基本概念和技 术,包括网络和数据通信基础、网络体系结构、网络操作系统;分布式进程通信、分 布式资源管理、分布式进程同步、分布式文件系统和进程迁移等。实例研究介绍了 Windows2000/XP 网络体系结构和网络服务。 《操作系统教程》第三版教材的编写工作起始于 1999 年,经过南京大学计算机科 学和技术系 98 级、99 级和 00 级三届本科学生的教学和其他教学系列中采用了该教材 的讲义,现在再次改版就有了较好的基础。为了便于教和学,我们还做了两项工作, 一是与教材相配套提供了 ppt 讲稿,鉴于它的内容既不能做得太粗,这样无助于教和学; 但也不能做得太细,显得太繁琐累赘。各位老师在教学备课时,可以根据各校各相关 专业的教学计划、教学需要和实际情况对配套提供的 ppt 讲稿进行增、删、改。二是订 正和增加了大量思考题和应用题,便于老师布置作业,也便于学生课余选做。 本书由孙钟秀院士主编,费翔林、骆斌、谢立参编。衷心感谢南京大学谭耀铭教 授在本书前两版中所做的许多建设性工作;特别感谢上海交通大学尤晋元教授百忙中 抽空仔细审阅了全书,提出了许多极为宝贵的意见;感谢陶先平、高阳和花蕾老师在 教学过程中对教材提出的意见和建议;感谢田原、花蕾、张建莹、周德宇、王天青、 蔡飞和裴永刚等同志在本书的 ppt 制作和校对过程中所提供的帮助;感谢高等教育出版 社的大力支持、合作和辛勤劳动。本教材中有些章节还引用了参考文献中列出的国内 外著作的一些内容,谨此向各位作者致以衷心的感谢和深深的敬意! 限于编者的水平,错误与不妥之处定然难免,衷心希望读者指正赐教,联系 email 为:feixl@nju.edu.cn 及 luobin@nju.edu.cn。 作者 2003 年 3 月 III
CH1 操作系统概论 ............................................................................................................................1 1.1 操作系统概观............................................................................................................................1 1.1.1 操作系统的定义和目标.....................................................................................................1 1.1.2 操作系统的作用与功能.....................................................................................................2 1.1.3 操作系统的主要特性.........................................................................................................4 1.2 操作系统的形成和发展............................................................................................................6 1.2.1 人工操作阶段.....................................................................................................................6 1.2.2 管理程序阶段.....................................................................................................................6 1.2.3 多道程序设计与操作系统的形成.....................................................................................8 1.2.4 操作系统的发展与分类...................................................................................................11 1.3 操作系统提供的服务和用户接口..........................................................................................18 1.3.1 操作系统提供的基本服务...............................................................................................18 1.3.2 操作系统提供的用户接口...............................................................................................19 1.3.3 程序接口与系统调用.......................................................................................................20 1.3.4 操作接口与系统程序.......................................................................................................22 1.4 操作系统的结构设计..............................................................................................................26 1.4.1 操作系统的构件...............................................................................................................26 1.4.2 整体式结构的操作系统...................................................................................................29 1.4.3 层次式结构的操作系统...................................................................................................29 1.4.4 虚拟机结构的操作系统...................................................................................................31 1.4.5 客户/服务器与微内核结构的操作系统..........................................................................32 1.4.6 操作系统功能的实现模型...............................................................................................35 1.4.7 实例研究:Windows 2000/XP 客户/服务器结构...........................................................37 1.5 流行操作系统简介..................................................................................................................41 1.5.1 DOS 操作系统...................................................................................................................41 1.5.2 Windows 操作系统............................................................................................................42 1.5.3 UNIX 操作系统家族.........................................................................................................44 1.5.4 自由软件和Linux 操作系统............................................................................................45 1.5.5 IBM 系列操作系统...........................................................................................................47 1.5.6 其他流行操作系统...........................................................................................................49 1.6 本章小结..................................................................................................................................50 CH2 处理器管理 ..............................................................................................................................56 2.1 中央处理器..............................................................................................................................56 2.1.1 单处理器系统和多处理器系统.......................................................................................56 2.1.2 寄存器..............................................................................................................................57 2.1.3 机器指令与特权指令.......................................................................................................58 2.1.4 处理器状态.......................................................................................................................58 2.1.5 程序状态字寄存器...........................................................................................................59 IV
2.2 中断技术..................................................................................................................................60 2.2.1 中断的概念.......................................................................................................................60 2.2.2 中断源分类.......................................................................................................................60 2.2.3 中断装置..........................................................................................................................61 2.2.4 中断处理程序...................................................................................................................63 2.2.5 中断事件的具体处理方法...............................................................................................63 2.2.6 中断的优先级和多重中断...............................................................................................68 2.2.7 实例研究:Windows 2000/XP 中断处理........................................................................69 2.2.8 实例研究:Solaris 中断处理..........................................................................................75 2.2.9 实例研究:Linux 中断处理.............................................................................................76 2.3 进程及其实现..........................................................................................................................79 2.3.1 进程的定义和属性...........................................................................................................79 2.3.2 进程的状态和转换...........................................................................................................80 2.3.3 进程的描述.......................................................................................................................83 2.3.4 进程切换与模式切换.......................................................................................................87 2.3.5 进程的控制.......................................................................................................................88 2.3.6 实例研究:UNIX SVR4 进程管理...................................................................................91 2.3.7 实例研究:Linux 进程管理.............................................................................................94 2.4 线程及其实现..........................................................................................................................97 2.4.1 引入多线程技术的动机...................................................................................................97 2.4.2 多线程环境中的进程与线程...........................................................................................98 2.4.3 线程的实现.....................................................................................................................103 2.4.4 实例研究:Solaris 的进程与线程................................................................................106 2.4.5 实例研究:Windows 2000/XP 的进程与线程..............................................................110 2.5 处理器调度............................................................................................................................116 2.5.1 处理器调度的层次.........................................................................................................117 2.5.2 高级调度.........................................................................................................................117 2.5.3 中级调度........................................................................................................................118 2.5.4 低级调度........................................................................................................................118 2.5.5 选择调度算法的原则.....................................................................................................119 2.6 批处理作业的管理与调度....................................................................................................119 2.6.1 作业和进程的关系.........................................................................................................119 2.6.2 批处理作业的管理.........................................................................................................120 2.6.3 批处理作业的调度.........................................................................................................121 2.6.4 作业调度算法.................................................................................................................121 2.7 低级调度................................................................................................................................124 2.7.1 低级调度的功能.............................................................................................................124 2.7.2 低级调度算法.................................................................................................................124 2.7.3 实时调度........................................................................................................................127 2.7.4 多处理器调度.................................................................................................................128 2.7.5 实例研究:UNIX SVR4 调度算法.................................................................................132 2.7.6 实例研究:Windows 2000/XP 调度算法......................................................................133 V
2.7.7 实例研究:Linux 调度算法...........................................................................................140 2.8 本章小结................................................................................................................................143 CH3 并发进程 ................................................................................................................................151 3.1 并发进程................................................................................................................................151 3.1.1 顺序程序设计.................................................................................................................151 3.1.2 进程的并发性.................................................................................................................151 3.1.3 与时间有关的错误.........................................................................................................153 3.1.4 进程的交互(Interaction Among Processes):协作和竞争........................................155 3.2 临界区管理............................................................................................................................156 3.2.1 互斥和临界区.................................................................................................................156 3.2.2 临界区管理的尝试.........................................................................................................157 3.2.3 实现临界区管理的软件方法.........................................................................................158 3.2.4 实现临界区管理的硬件设施.........................................................................................160 3.3 信号量与 PV 操作.................................................................................................................162 3.3.1 同步和同步机制.............................................................................................................162 3.3.2 记录型信号量与PV 操作..............................................................................................163 3.3.3 用记录型信号量实现互斥.............................................................................................166 3.3.4 记录型信号量解决生产者-消费者问题.......................................................................168 3.3.5 记录型信号量解决读者-写者问题...............................................................................170 3.3.6 记录型信号量解决理发师问题.....................................................................................172 3.4 管程........................................................................................................................................172 3.4.1 管程和条件变量.............................................................................................................172 3.4.2 Hoare 方法实现管程.......................................................................................................175 3.4.3 Hanson 方法实现管程....................................................................................................178 3.5 进程通信................................................................................................................................184 3.5.1 信号通信机制.................................................................................................................184 3.5.2 共享文件通信机制` .......................................................................................................185 3.5.3 共享存储区通信机制.....................................................................................................188 3.5.4 消息传递通信机制.........................................................................................................189 3.5.5 有关消息传递实现的若干问题.....................................................................................192 3.6 死锁........................................................................................................................................195 3.6.1 死锁的产生.....................................................................................................................195 3.6.2 死锁的定义.....................................................................................................................196 3.6.3 死锁的防止.....................................................................................................................197 3.6.4 死锁的避免.....................................................................................................................198 3.6.5 死锁的检测和解除.........................................................................................................206 3.7 实例研究:WINDOWS 2000/XP 的同步和通信机制 ...........................................................209 3.7.1 Windows 2000/XP 的同步和互斥机制...........................................................................209 3.7.2 Windows2000/XP 进程通信机制....................................................................................210 3.8 实例研究:LINUX 信号量机制.............................................................................................211 3.9 本章小结................................................................................................................................212 VI
CH4 存储管理 ................................................................................................................................225 4.1 主存储器................................................................................................................................225 4.1.1 存储器的层次.................................................................................................................225 4.1.2 快速缓存(caching)....................................................................................................226 4.1.3 地址转换与存储保护.....................................................................................................227 4.2 连续存储空间管理................................................................................................................227 4.2.1 单用户连续存储管理.....................................................................................................227 4.2.2 固定分区存储管理.........................................................................................................229 4.2.3 可变分区存储管理.........................................................................................................230 4.3 分页式存储管理....................................................................................................................235 4.3.1 分页式存储管理的基本原理.........................................................................................235 4.3.2 相联存储器和快表.........................................................................................................236 4.3.3 分页式存储空间的分配和去配.....................................................................................237 4.3.4 分页存储空间的页面共享和保护.................................................................................238 4.3.5 多级页表........................................................................................................................238 4.3.6 反置页表........................................................................................................................240 4.4 分段式存储管理....................................................................................................................241 4.4.1 程序的分段结构.............................................................................................................241 4.4.2 分段式存储管理的基本原理.........................................................................................241 4.4.3 段的共享........................................................................................................................243 4.4.4 分段和分页的比较.........................................................................................................243 4.5 虚拟存储管理........................................................................................................................243 4.5.1 虚拟存储器的概念.........................................................................................................243 4.5.2 请求分页虚拟存储管理.................................................................................................245 4.5.3 请求分段虚拟存储管理.................................................................................................261 4.5.4 请求段页式虚拟存储管理.............................................................................................262 4.6 实例研究:INTEL X86/PENTIUM 存储管理硬件设施...........................................................263 4.6.1 Intel x86/Pentium 段机制——段选择符和段描述符....................................................264 4.6.2 Intel x86/Pentium 运行模式选择....................................................................................265 4.6.3 Intel x86/Pentium 地址转换............................................................................................265 4.6.4 Intel x86/Pentium 页式或段页式地址转换....................................................................266 4.7 实例研究:WINDOWS 2000/XP 虚拟存储管理 ...................................................................268 4.7.1 进程地址空间布局.........................................................................................................268 4.7.2 用户空间内存分配.........................................................................................................269 4.7.3 内存管理的实现.............................................................................................................273 4.8 实例研究:LINUX 的存储管理.............................................................................................279 4.8.1 Linux 存储管理概述.......................................................................................................279 4.8.2 虚拟地址空间的组织和管理.........................................................................................279 4.8.3 物理内存空间的管理.....................................................................................................280 4.8.4 用户态内存的申请与释放.............................................................................................281 4.8.5 内存的共享和保护.........................................................................................................282 VII
4.8.6 交换空间、页面的换出和调入.....................................................................................283 4.8.7 缓冲机制........................................................................................................................284 4.9 本章小结................................................................................................................................285 CH5 设备管理 ................................................................................................................................292 5.1 I/O 硬件原理 ..........................................................................................................................292 5.1.1 I/O 系统...........................................................................................................................292 5.1.2 I/O 控制方式...................................................................................................................293 5.1.3 设备控制器.....................................................................................................................297 5.2 I/O 软件原理 ..........................................................................................................................298 5.2.1 I/O 软件的设计目标和原则...........................................................................................298 5.2.2 I/O 中断处理程序...........................................................................................................299 5.2.3 设备驱动程序.................................................................................................................300 5.2.4 与硬件无关的操作系统I/O 软件.................................................................................300 5.2.5 用户空间的I/O 软件.....................................................................................................302 5.3 具有通道的 I/O 系统管理.....................................................................................................302 5.3.1 通道命令和通道程序.....................................................................................................302 5.3.2 I/O 指令和主机I/O 程序................................................................................................304 5.3.3 通道启动和I/O 操作过程.............................................................................................305 5.4 缓冲技术................................................................................................................................306 5.4.1 单缓冲............................................................................................................................306 5.4.2 双缓冲............................................................................................................................307 5.4.3 多缓冲............................................................................................................................307 5.5 驱动调度技术........................................................................................................................308 5.5.1 存储设备的物理结构.....................................................................................................308 5.5.2 循环排序........................................................................................................................309 5.5.3 优化分布........................................................................................................................310 5.5.4 交替地址........................................................................................................................311 5.5.5 搜查定位........................................................................................................................311 5.5.6 独立磁盘冗余阵列.........................................................................................................313 5.5.7 提高磁盘I/O 速度的一些方法.....................................................................................316 5.6 设备分配................................................................................................................................316 5.6.1 设备独立性.....................................................................................................................316 5.6.2 设备分配........................................................................................................................317 5.7 虚拟设备................................................................................................................................318 5.7.1 问题的提出.....................................................................................................................318 5.7.2 SPOOLING 的设计和实现.............................................................................................319 5.7.3 SPOOLING 应用例子.....................................................................................................321 5.8 实例研究:WINDOWS 2000/XP 的 I/O 系统........................................................................321 5.8.1 Windows 2000/XP I/O 系统结构和组件.........................................................................321 5.8.2 Windows 2000/XP I/O 系统的数据结构.........................................................................325 5.8.3 Windows2000/XP 设备驱动程序....................................................................................328 VIII
分享到:
收藏