I
《操作系统教程》
(第三版)
孙钟秀主编
费翔林 骆斌 谢立参编
高等教育出版社
2003 年 3 月
II
前言
操作系统是计算机系统的重要组成部分,操作系统课程是计算机教育的基础课程,
作为计算机专业的核心课,不但高等院校计算机相关专业学生必须学习它,而且从事
计算机行业的人员也需要深入了解它。为了更好地学习和透彻理解计算机系统的运作
过程和操作系统的基本原理,一本适用的操作系统教材显得十分重要。本教材是多年
来操作系统教学和操作系统科学研究相结合的产物,多年来在南京大学和国内很多高
校计算机专业的教学过程中得到了广泛的应用,曾在 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 存储管理。讨论存储管理的基本功能、各种传统存储管理技术、虚拟存储管
III
理技术和最新的存储管理技术如:多级页表、反置页表等。实例研究深入介绍了 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 月
IV
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
V
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
- 1
- 2
前往页