计算机操作系统(第2版)

计算机操作系统(第2版)"

作者:彭民德
ISBN:9787302158349
定价:¥23
字数:千字
页数:
出版时间:2007.10.01
开本:
版次:2-4
装帧:
出版社:清华大学出版社
简介

本书系统地阐述了现代计算机操作系统的结构、功能和主要技术,包括进程与CPU管理、内存管理、设备管理和文件系统,讨论了操作系统的安全性。书中详细地介绍了UNIX、Linux和Windows实例,每章都有重点演示和交互练习,以及小结和习题。与本书配套的建立操作系统教学网站的电子文件可从出版社网站(http://www.tup.com.cn)下载,其中有动画讲解、交互练习、题目测试和问题讨论等内容。

本书是计算机专业本科教材,但对各个层次的读者学习计算机操作系统也有一定的帮助

前言

本书第1版2004年出版以来,受到许多操作系统教师欢迎。也有的学生来信,表示对书中的一些习题感兴趣。今年,本校计算机教学委员会的专家和领导们敦促我们申报了省级教研课题,希望把工作继续做下去,这对我们是莫大的鼓励。

第2版主要进行了以下一些修订。

 (1)  增加了操作系统安全一章。针对计算机信息系统日益受到黑客入侵和计算机病毒侵蚀的严重形势,我们从引入一些计算机系统被攻击的案例以引起学生们重视操作系统安全性开始,分析了操作系统易受到攻击的原因,介绍了操作系统安全性机制和对操作系统安全性的评估标准。本章还讨论了目前最流行的UNIX、Linux系统和Windows系统的安全性。

 (2)  删除了MS-DOS一章。20世纪八九十年代,MS-DOS曾经是最流行的微型计算机操作系统,而现在通常它只是被Windows系统内装,一般情况下都不单独使用了,因此已没有必要单独列一章来介绍。

但是,它仍然适用一些非图形化操作,特别是实时性很强的操作,用MS-DOS命令比操作Windows图形快。有些底层功能,比如BIOS配置、端口操作、串口通信、计算机间的ping操作等还要用MS-DOS。就在修订这本书时,计算机感染了病毒,桌面上“我的电脑”、“我的文档”和“IE”等图标无法被点开,只好拿来Windows系统盘从光驱重新安装,但安装前先要保存数据。此时Windows系统已无法为我们保存数据文件。我们的唯一办法是从屏幕左下角执行“开始”|“程序”|“附件”|“命令提示符”菜单命令,进入MS-DOS。在MS-DOS的命令提示符下,用COPY等命令可以把有用的文件保存到U盘。

因此,在网络课件中我们将保留MS-DOS的位置。

 (3)  第1章增加了操作系统的发展简史。从作业自动定序到IBM 360, 从CTSS、MULTICS到UNIX,以及个人计算机上的DOS和Windows,直至2007年的Vista。指出这些系统推出背景和技术特点,指出前面几个操作系统的开发者都曾获得图灵奖。

 (4)  第2章增加了进程间的通信一节。介绍软中断通信、共享存储区通信、共享文件通信,介绍一些系统变通的称为管道通信、剪贴板通信等技术。用纯软件方法实现互斥的Dekker算法我们也给出一个用C语言改写的版本,可以在没有同步工具的开发环境参考使用。

 计算机操作系统(第2版) (5)  第3章增加了多级反馈队列调度算法的介绍。

 (6)  在实存储器管理和虚存管理的两章,主要增加了关于分页共享要区分数据页和程序页,要以相同页号共享同一个程序页。更详细地讲解了LRU页面栈的管理和页面淘汰算法中的栈操作。增加了分段并分页的存储管理技术的讨论。

此外,还改正了原来存在的一些错误,增加了一些习题。

为了降低读者的阅读成本,本书把第1版的附书光盘进行了小的修改,并置于清华大学出版社网络本书相应的页面下,读者在学习时可自行免费下载。尽管可以离开配套的课件单独使用,但是我们还是推荐您把两者结合起来使用。因为网站形式的系统包含有一些用ASP和Java实现的交互操作:存储管理的分区分配、分区和分页的地址重定位,FIFO及LRU页面淘汰算法,UNIX文件的多重索引结构,操作系统的交互论坛,一组操作系统单选和多选题目的测试。这种交互对于学生的学习和老师出题都有帮助。

您可以参照出版社网站上提供的资料文件中所给的readme文件对系统环境进行配置和安装。可以安装在校园网、网络实验室,也可以安装在个人计算机上。而后从盘上OS WEBS\\content\\index1.asp进入,在运行一段Flash片头动画后,单击“由此进入”按钮,便出现本教学网站的主窗口。

以后就可以按照自己的需要和兴趣,单击其中的任一部分进行浏览和交互学习了。

使用本书的老师如果需要其中习题答案,可以与我们联系。网站主窗口有编者的E-mail. 

第2版书稿由有深厚知识功底并有多年操作系统教学经验的肖键宇博士进行了通读,适当地在一批专业名词首次出现时加注了英文。肖教授还乐意担任课题主要负责人把教学网站继续做得更好。参与初版编著的伍桂生、单先余老师几年来一直用本教材给学生授课,陆续提出了很好的改进意见。李亮撰写了关于操作系统安全的第8章。段珊老师也为书稿做了积极的工作,付出了辛勤的劳动。

另外,十分感谢本校计算机学部主任、博士生导师杨路明教授,陆惠民教授,陈振、向亦斌副教授所给予的支持。还要特别感谢清华大学史美林教授、向勇博士给我们的积极评价,并为我们的书稿和网站主审把关,才得以让本书有较好的质量,谨表我们深深的谢忱。

  本稿肯定有不当或不尽如人意之处,难免还有错误,欢迎您批评指正。

目录

第1章 操作系统引论1

1.1 操作系统的功能和特征1

1.1.1 操作系统的功能1

1.1.2 操作系统的外特征5

1.1.3 操作系统的微观特征7

1.1.4 操作系统的基本技术8

1.1.5 多道程序设计的实现9

1.2 操作系统发展简史 10

1.2.1 从无助的人工操作到作业自动定序10

1.2.2 20世纪60年代中期的IBM OS/360 12

1.2.3 从CTSS、MULTICS到UNIX14

1.2.4 个人计算机上的DOS和Windows15

1.2.5 操作系统的发展动力18

1.3 操作系统的基本类型19

1.3.1 批处理系统19

1.3.2 分时系统19

1.3.3 实时系统20

1.3.4 网络操作系统21

1.3.5 分布式操作系统21

1.4 操作系统结构22

1.4.1 整体式系统22

1.4.2 层次式系统22

1.4.3 虚拟机23

1.4.4 客户机/服务器系统25

1.5 现代操作系统概念26

1.6 重点演示和交互练习: 多道程序设计28

小结29

习题30

 计算机操作系统(第2版) 第2章 进程及其管理33

2.1 进程的概念及其引入33

2.1.1 并发程序的特征33

2.1.2 进程的定义34

2.1.3 进程与程序的联系和区别35

2.2 进程的描写35

2.2.1 进程实体35

2.2.2 PCB35

2.2.3 PCB队列 36

2.3 进程状态及转化36

2.3.1 进程状态36

2.3.2 进程状态转化37

2.4 进程管理37

2.4.1 进程管理原语37

2.4.2 创建进程的时机 37

2.4.3 创建进程的基本操作38

2.5 进程互斥与同步38

2.5.1 进程互斥与同步的概念38

2.5.2 临界区准则 39

2.5.3 临界区的软件解决方案39

2.5.4 上锁与解锁指令40

2.5.5 信号量与P、V操作41

2.5.6 经典同步问题 44

2.6 进程间的通信48

2.6.1 软中断通信48

2.6.2 共享存储区(剪贴板)通信48

2.6.3 管道通信49

2.6.4 消息通信50

2.7 线程52

2.7.1 线程概念的引入52

2.7.2 线程与进程的比较 53

2.8 重点演示和交互练习: 经典同步问题 53

2.8.1 生产者-消费者问题的Java程序实现53

2.8.2 读者-写者问题的Java程序实现55

2.8.3 哲学家就餐问题的Java程序实现 55

小结57

习题57

第3章 调度与死锁61

3.1 概述61

3.2 分级调度62

3.2.1 高级调度62

3.2.2 中级调度62

3.2.3 低级调度62

3.3 常用调度算法64

3.3.1 FIFO调度算法64

3.3.2 SJF调度算法65

3.3.3 HRN调度算法66

3.3.4 RR调度算法67

3.3.5 优先级调度算法67

3.3.6 多级反馈队列调度68

3.4 死锁问题70

3.4.1 产生死锁的必要条件70

3.4.2 预防死锁71

3.4.3 死锁避免及银行家算法72

3.4.4 死锁的检测74

3.5 重点演示和交互练习: 优先级调度算法75

小结77

习题78

第4章 存储器管理81

4.1 概述81

4.1.1 存储管理的基本任务81

4.1.2 存储管理的基本概念82

4.2 单一连续分配83

4.2.1 存储区域分配83

4.2.2 存储区域回收   83

4.3 分区管理84

4.3.1 固定分区84

4.3.2 可变分区84

4.3.3 存储保护 85

4.4 分页管理86

4.4.1 分页的概念86

4.4.2 地址映射机构87

4.4.3 地址变换88

4.4.4 页的共享89

4.4.5 保护机制 90

4.5 分段管理91

4.5.1 分段地址空间91

4.5.2 段表与地址变换91

4.5.3 分段与分页的异同点92

4.6 覆盖与对换92

4.6.1 覆盖   92

4.6.2 对换 93

4.7 重点演示和交互练习: 地址重定位94

4.7.1 静态重定位94

4.7.2 动态重定位95

4.7.3 分页重定位96

小结97

习题98

第5章 虚拟存储器101

5.1 虚拟存储器的概念101

5.1.1 分级存储体系101

5.1.2 局部性原理102

5.1.3 虚拟存储器 102

5.2 请求分页式虚拟存储管理103

5.2.1 对页式存储技术的改进103

5.2.2 缺页中断处理过程103

5.2.3 工作集概念103

5.3 页面淘汰算法105

5.3.1 淘汰最老页面的FIFO算法 105

5.3.2 淘汰最近最少使用页面的LRU算法105

5.3.3 OPT算法107

5.4 段页式存储管理107

5.4.1 基本概念107

5.4.2 地址转换108

5.4.3 管理算法108

5.5 重点演示和交互练习: 页面淘汰算法109

小结111

习题111

第6章 设备管理115

6.1 设备管理概述115

6.1.1 输入输出的硬件组成115

6.1.2 计算机设备分类116

6.1.3 设备管理的功能117

6.1.4 主要数据结构118

6.2 缓冲技术118

6.2.1 缓存的作用118

6.2.2 管理缓冲存储119

6.3 中断技术120

6.3.1 中断的作用120

6.3.2 中断处理过程120

6.3.3 嵌套中断处理过程121

6.4 SPOOLing技术121

6.4.1 SPOOLing系统的一般结构121

6.4.2 SPOOLing系统的工作原理122

6.4.3 假脱机打印122

6.4.4 SPOOLing系统的优点122

6.5 设备驱动123

6.5.1 逻辑设备和物理设备124

6.5.2 设备状态监视124

6.5.3 设备驱动程序125

6.6 磁盘的特性及调度算法125

6.6.1 活动头磁盘125

6.6.2 磁盘的存取速度126

6.6.3 FCFS调度算法127

6.6.4 SCAN及其改进算法127

6.7 用户请求输入输出的实现过程128

6.8 重点演示和交互练习: 中断过程、磁盘调度、输入输出实现过程129

小结129

习题130

第7章 文件系统133

7.1 文件与文件系统133

7.1.1 文件133

7.1.2 文件系统133

7.1.3 文件系统模型134

7.1.4 文件卷135

7.2 文件的逻辑结构 136

7.2.1 记录式结构136

7.2.2 流式结构136

7.3 文件组织136

7.3.1 文件 136

7.3.2 组织137

7.3.3 检索138

7.4 文件的物理结构139

7.4.1 连续结构139

7.4.2 链接结构139

7.4.3 索引结构 140

7.5 文件存储空间管理140

7.5.1 空白文件140

7.5.2 位示图141

7.5.3 空闲块链141

7.6 文件保护141

7.6.1 存取控制矩阵 141

7.6.2 存取控制表 141

7.6.3 口令142

7.7 文件系统的系统调用142

7.7.1 用户程序的接口142

7.7.2 文件句柄143

7.7.3 open的实现144

7.8 重点演示和交互练习: 写文件的实现过程144

小结146

习题147

第8章 操作系统的安全性149

8.1 问题的提出149

8.1.1 信息系统面临日益严重的安全性挑战149

8.1.2 操作系统的脆弱性151

8.2 操作系统安全机制153

8.2.1 操作系统的硬件保护153

8.2.2 注册与身份验证154

8.2.3 存取控制156

8.2.4 最小特权原则156

8.2.5 建立可信通道158

8.2.6 消除隐蔽通道158

8.2.7 安全审计159

8.2.8 病毒防护159

8.3 操作系统安全评测标准160

8.3.1 主要的评测标准160

8.3.2 美国评测标准介绍162

8.3.3 中国评测标准163

8.4 UNIX和Linux操作系统的安全性164

8.4.1 标识与鉴别 165

8.4.2 存取控制166

8.4.3 审计与加密166

8.4.4 网络安全169

8.4.5 备份和恢复169

8.5 Windows 2000和Windows XP操作系统安全性170

8.5.1 安全模型170

8.5.2 文件保护及防盗版安全机制174

小结175

习题176

第9章 UNIX和Linux实例分析177

9.1 系统结构177

9.1.1 UNIX的特点177

9.1.2 UNIX系统结构 177

9.1.3 UNIX系统的主要数据结构179

9.2 进程管理 179

9.2.1 进程数据结构179

9.2.2 进程状态179

9.2.3 进程的产生与进程族系180

9.2.4 管道通信机制 181

9.3 内存管理184

9.3.1 支持虚存和分段184

9.3.2 swap交换技术184

9.4 文件管理 185

9.4.1 文件分类186

9.4.2 树状层次186

9.4.3 文件空间的组织 187

9.4.4 空闲块的管理 189

9.4.5 有关文件操作的系统调用 191

9.5 设备缓冲管理 195

9.5.1 块缓冲与字符缓冲195

9.5.2 块缓冲队列管理195

9.5.3 字符缓冲队列管理197

9.6 shell程序设计197

9.6.1 概述197

9.6.2 shell命令及命令的解释执行198

9.6.3 shell程序设计201

9.6.4 shell程序实例204

9.7 Linux206

9.7.1 Linux 的历史206

9.7.2 Linux内核207

9.7.3 Linux进程207

9.7.4 Linux文件系统207

9.7.5 Linux磁盘分区208

9.8 重点演示和交互练习: 文件块的多重索引物理结构208

小结209

习题211

第10章 Windows 2000和Windows XP实例分析213

10.1 模型与结构213

10.1.1 客户机/服务器模型213

10.1.2 对象模型214

10.1.3 对称多处理器模型214

10.1.4 系统结构215

10.1.5 注册表 217

10.2 对象、进程和线程218

10.2.1 对象218

10.2.2 进程218

10.2.3 线程220

10.2.4 对象、进程、线程的关系222

10.3 系统微内核222

10.3.1 内核概述222

10.3.2 内核的线程安排与调度223

10.3.3 描述表切换224

10.3.4 中断与异常处理224

10.3.5 内核的互斥机制225

10.4 虚拟存储器226

10.4.1 进程的虚拟地址空间 226

10.4.2 虚拟分页的地址变换机构 226

10.4.3 页面调度策略和工作集 226

10.4.4 共享主存--段对象和视口227

10.5 磁盘与文件管理228

10.5.1 磁盘管理228

10.5.2 NTFS文件系统229

10.5.3 文件系统的恢复230

10.6 输入输出子系统231

10.6.1 输入输出子系统结构231

10.6.2 高速缓存231

10.6.3 异步输入输出操作和输入输出请求处理过程 232

10.6.4 映像文件的输入输出 232

10.7 进程通信233

10.7.1 端口对象233

10.7.2 LPC消息传送方法 234

10.8 系统安全性234

10.8.1 登录进程和安全子系统 234

10.8.2 存取令牌 234

10.8.3 存取控制表 235

10.8.4 主存保护 236

10.9 Windows 2003简介236

10.9.1 IIS 6.0服务236

10.9.2 集群技术236

10.9.3 跨域树信任技术237

10.9.4 终端服务技术237

10.9.5 SAN/NAS 技术237

10.9.6 活动技术238

10.9.7 便于Windows XP用户登录网络238

小结238

习题239

参考文献241

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个