封底-------------------------
本书涵盖操作系统课程的所有基础知识点,主要内容包括操作系统概论、进程管理、内存管理、输入输出管理、文件管理、操作系统示例分析等。全书在强调基本原理与主要知识点的同时,力求原理、设计与实现并重;使学生在掌握基本原理知识之后,通过对设计与具体实现的学习进一步加深对操作系统基础的理解。
本书全面系统地介绍操作系统的经典内容和若干最新发展成果,既可作为高等学校计算机专业本、专科教材,也可作为非计算机专业的操作系统课程教材,同时也适合学生自学和考试复习使用。
曹先彬博士,中国科学技术大学计算机科学与技术学院教授,博士生导师;1996年获中国科学技术大学信号与信息处理专业博士学位;多年来一直承担《操作系统原理与设计》、《计算机与网络安全》、《分布式操作系统》、《计算智能》等课程的主讲工作;主持过多项国家自然科学基金、863、973课题,已发表学术论文90余篇,获省部级科技进步奖4项;2007年获选“教育部新世纪优秀人才”计划。主要研究方向包括计算智能、信息安全、智能交通系统等。
陈香兰博士,中国科学技术大学计算机科学与技术学院讲师;2007年获中国科学技术大学计算机软件与理论专业博士学位。近年来主讲过《操作系统原理》、《嵌入式操作系统》、《Linux操作系统分析》、《安全操作系统》等课程;有多年的操作系统分析、设计实现和研究经验,分析过多种版本的Linux内核、RTEMS、μC/OS-II等操作系统源代码,熟悉I386、IA64、ARM、MIPS等硬件体系结构,发表相关论文多篇。主要研究方向为操作系统方向。
操作系统课程是计算机学科最重要的专业基础课之一,对提高学生基本素质与专业技能的培养意义重大。随着我国
计算机专业教学改革的深入,要求操作系统课程的教学也必须遵循本科计算机教学改革的精神,在内容上既要全面
覆盖基本原理、基本知识,也要适当反映操作系统的新发展。
编写思想
本书结合教育部最新的教学内容知识点分布来组织教材内容。原理介绍部分强化从整体到局部的思路,使读者能遵
循一个合理的逻辑来学习操作系统的教学内容。操作系统的实现部分通过一个开源操作系统的示例来全面展现操作
系统的原理、设计思路与实现技术,使读者具有较强的感性认识。
体系结构
本书强调原理、设计与实现并重。原理等内容的组织遵循从整体到局部、逐步求精的思路;示例部分围绕一个完整
的源码级的具体示例来介绍操作系统的设计与实现。
内容组织
本书尽量全面覆盖操作系统课程的所有基础知识,强调基本原理与主要知识点的介绍。同时,原理、设计与实现并
重;使学生能在掌握基本原理知识的同时,通过对操作系统设计与具体实现的剖析进一步加深对操作系统基础的理
解。
框架介绍
本教材共包括7个部分:
第一部分是操作系统概论。本部分包括本教材的第1章,主要介绍了操作系统的定义、目的、功能等基础知识,梳
理了操作系统的发展历程与类型,归纳出现代操作系统呈现的特征,阐释了操作系统硬件对操作系统的支持、以及
操作系统的结构设计方法。
第二部分是进程管理。进程管理在整个操作系统中占据非常重要的地位,包括本教材的第2、3、4、5章。其中,第
2章是操作系统中进程管理的一个总领,包括:进程的概念、进程的状态与转换、进程控制、进程组织、进程通信
以及线程基础。第3章介绍进程同步的基本概念、解决策略与典型的解决方法。第4章分析对比进程调度的基本方法
、典型算法以及调度可能导致的死锁现象的处置策略。第5章介绍操作系统中的用户接口方式和用于批处理系统的
作业管理。
第三部分是内存管理。本部分包括第6、7章。其中,第6章介绍存储管理的基础知识,主要包含三个部分:存储管
理的概念、连续分配管理和非连续存储管理。第7章介绍虚拟存储管理知识,主要包括虚拟存储的基本概念和虚拟
存储的实现技术。
第四部分是输入输出管理。本部分包括第8章。首先介绍I/O过程、包含的功能部件、I/O控制方式等基础知识;然
后介绍I/O核心子系统,其中分析指出I/O管理需要解决的关键技术,并给出相应的实现方法。
第五部分是文件管理。本部分包括第9、10章。其中,第9章介绍文件管理的一些基础知识。主要包括:文件系统的
基本概念、文件存储介质、单个文件的逻辑组织和多个文件的目录组织等基础知识。最后简要地介绍了实现文件共
享与保护的基本方法。第10章侧重介绍文件系统实现时需要的相关技术。包括外存空间管理技术、文件系统实现时
需要的结构信息、文件在外存空间存储可以采用的存储方法与存取方式、支持文件存储的磁盘空间优化调度与提高
文件系统可靠性等性能的方法。
第六部分是操作系统示例分析。本部分包括第11章。本章选用Linux操作系统作为示例平台,从源码级出发,详细
介绍了操作系统设计的具体思路与实现方法。本章内容顺序是完全按照前面章节对操作系统原理的介绍思路展开的
,这样可以将示例操作系统的知识与前面的基础知识对照起来进行学习与理解。
第七部分是操作系统的扩展内容。本部分包括第12、13、14章。在本部分,我们选择介绍了操作系统的安全性、分
布式操作系统以及多核操作系统。其中,第12章介绍了操作系统本身提供的一些经典的安全措施,便于读者对操作
系统安全有一个最基本了解。第13章阐释了与分布式操作系统相关的基础知识,重点介绍分布式操作系统设计涉及
的分布式通信、命名系统、分布式资源管理与分布式处理机管理等内容,以期对分布式操作系统有一宏观上的了解
。第14章对多核技术和多核操作系统做简单介绍,其中重点指出多核操作系统实现的关键技术,目的是使读者对多
核操作系统有概念性的了解。
本教材全面系统地介绍操作系统的经典内容和若干最新发展。本书既可作为高等学校计算机专业本、专科教材,也
可作为非计算机专业的操作系统课程教材,同时也适合自学和考试复习使用。
致谢
本教材是在学习、借鉴已有多个操作系统教材的基础上,整理我们十几年的教学讲义而成的。在此,我们对Andrew
STanenbaum、Gary Nutt、Abraham Silberschatz、William Stalling等国外著名专家以及我国一线的操作系统
主讲老师陈向群、何炎祥、罗宇、陈渝、张亮、王丹、蒲晓蓉、齐勇、郑扣根、陆丽娜、汤小丹、张尧学、孟静、
陈莉君等表示衷心的感谢。同时,在本教材的形成过程中,许言午、杜文博、李彤、杨浩、俞盛朋等在文字、绘图
等方面给予了很大帮助,在此也表示谢意。特别感谢多年来中国科技大学计算机专业的本科生,他们对本书内容的
组织、教学的方法等提出了许多有益的建议。
虽然我们尽可能地避免教材的错误,但限于水平、时间等种种原因,书中难免还存在错误与不妥之处,恳请读者批
评指正。
编者
2009年6月
本书的内容尽量全面覆盖操作系统课程的所有基础知识,主要内容包括操作系统概论、进程管理、内存管理、输入输出管理、文件管理、操作系统示例分析等。全书在强调基本原理与主要知识点的介绍。同时,原理、设计与实现并重;使学生能在基本原理知识掌握的同时,通过对设计与具体实现的理解进一步加深对操作系统基础的理解。
本书全面系统地介绍操作系统的经典内容和若干最新发展,既可作为高等学校计算机专业本、专科教材,也可作为非计算机专业的操作系统课程教材,同时也适合自学和考试复习使用。
本书特点
经典的架构。本书结合国内高校的主流教学要求,全面系统地介绍操作系统的经典内容。
最新的技术剖析。本书在操作系统的设计部分介绍了业界的若干最新发展。
知识点覆盖全面。本书结合教育部最新的教学内容知识点分布来组织教材内容。
内容安排合理。在本书的体系结构方面,强调原理、设计与实现并重。
曹先彬,陈香兰 编著:暂无简介
前言
第一部分操作系统概论
第1章操作系统概述2
11操作系统的概念2
111操作系统层次模型2
112操作系统的含义4
113操作系统的目的5
114操作系统的功能5
12操作系统的特点8
121操作系统的研究观点8
122操作系统的特征9
13操作系统的发展与类型10
131操作系统的发展动力10
132操作系统的发展历程10
133操作系统的类型15
14操作系统的运行环境16
141操作系统运行的硬件环境组成16
142操作系统运行涉及的硬件支持17
15操作系统的结构设计方法18
151模块接口法18
152有序分层法19
153微核法19
16本章小结20
习题20
第二部分进程管理
第2章进程与线程24
21多道程序设计与进程概念24
211多道程序设计技术24
212程序的顺序执行与
并发执行25
213进程的概念29
214进程特征30
22进程的状态与转换31
221三状态模型及其转换31
222五状态模型及其转换32
223七状态模型及其转换33
23进程控制35
231操作系统内核35
232进程控制手段36
233主要进程控制原语36
24进程组织39
241进程控制块39
242进程的组织方式41
243进程组织示例42
25进程通信42
251进程通信概述43
252消息传递系统的实现44
26线程基础47
261线程引入47
262线程的定义与特征48
263线程的实现49
27本章小结51
习题51
第3章进程同步53
31进程同步的基本概念53
311进程之间的关系53
312临界资源与临界区54
313进程同步机制的准则55
32实现进程互斥的基本方法56
321软件方法56
322硬件方法60
33信号量机制61
331单信号量机制62
332多信号量机制66
34管程机制68
341管程的引入68
342管程的使用69
35典型进程同步机制问题75
351生产者—消费者问题75
352读者—写者问题80
353哲学家就餐问题84
36本章小结87
习题88
第4章进程调度与死锁92
41处理器调度的基本概念92
411处理器调度的类型92
412调度模型94
42进程调度准则95
43进程调度基础97
44经典进程调度算法99
441先来先服务调度算法99
442最短优先调度算法100
443最短剩余时间调度算法101
444时间片轮转调度算法101
445优先权调度算法102
446最高响应比优先调度算法103
447多级队列反馈调度算法104
448进程调度算法示例105
45进程死锁与处置107
451死锁的基本概念107
452死锁的分析模型109
453死锁的处置策略111
46本章小结117
习题118
第5章用户接口与作业管理120
51用户与操作系统的接口方式120
511作业级接口120
512程序级接口121
52批处理系统的作业管理122
521作业的基本概念122
522批处理系统的作业组织123
523批处理作业的状态转换与控制124
524批处理系统的作业调度126
53交互式系统的作业管理130
531命令式接口130
532图形用户界面式接口131
54本章小结132
习题132
第三部分内存管理
第6章存储管理基础136
61存储管理的概念136
611存储管理的目的136
612存储管理的基本过程137
613覆盖与交换技术142
62连续分配方式与管理144
621单一连续分配方式144
622分区分配方式145
63非连续分配方式与管理152
631分页管理方式152
632分段管理方式159
633段页式管理方式164
64本章小结167
习题168
第7章虚拟内存管理170
71虚拟存储基本概念170
711虚拟存储的引入170
712虚拟存储实现技术172
72请求分页管理方式173
721请求分页分配基本思想173
722请求分页分配管理175
723页面分配与调入177
724页面置换180
725抖动处理187
73请求分段管理方式190
731请求分段分配基本思想190
732请求分段分配管理191
74请求段页式管理方式192
741请求段页式分配基本思想192
742请求段页式分配管理193
75本章小结194
习题194
第四部分输入输出管理
第8章I/O管理198
81I/O管理概述198
811I/O系统与过程198
812I/O功能部件199
813I/O控制方式203
814I/O管理目标与功能206
82输入输出核心子系统207
821I/O调度207
822缓冲区管理208
823设备分配与回收210
824实现虚拟设备的SPOOLing技术214
825出错处理216
83本章小结216
习题216
第五部分文件管理
第9章文件管理基础220
91概述220
911文件与文件系统220
912文件的类型222
913文件的存储介质222
92文件的逻辑组织224
921堆文件224
922顺序文件224
923索引顺序文件225
924索引文件226
93文件目录226
931基本概念226
932文件目录结构227
933目录查询231
94文件共享232
95文件保护235
96本章小结236
习题236
第10章文件系统实现238
101文件系统层次结构238
1011文件系统管理对象238
1012系统管理软件集合238
1013用户接口239
102外存空间管理239
1021列表239
1022位图240
1023链表240
1024索引240
103文件系统实现需要的结构信息241
1031磁盘结构信息241
1032内存结构信息241
1033目录实现的数据结构242
104文件的存储组织与存取方式243
1041文件的存储组织243
1042文件的存取方式247
105文件系统的性能问题248
1051磁盘优化调度248
1052磁盘高速缓冲250
1053文件系统的可靠性250
106文件管理示例251
1061文件存储空间的管理252
1062文件的存储组织252
1063支持文件存取的用户文件描述符表和文件表252
1064目录管理254
107本章小结255
习题255
第六部分操作系统示例分析
第11章Linux示例分析258
111Linux操作系统中的进程和线程258
1111进程描述符258
1112Linux进程的内核栈261
1113Linux进程的状态262
1114Linux的0号进程init_task262
1115Linux系统中进程的组织262
1116Linux系统中进程的控制263
1117Linux中的进程通信机制265
1118Linux中的线程及其控制266
112Linux中的信号量266
1121Linux内核中的信号量266
1122Linux用户态的信号量集接口267
113Linux中的调度268
1131Linux中的调度策略269
1132Linux进程的时间片269
1133Linux进程调度的时机270
1134Linux中的调度算法271
114Linux中的物理内存管理273
1141Linux中物理页框的描述274
1142Linux中的动态可分配物理内存275
1143Linux中物理内存的zone划分275
1144Linux中动态可分配物理内存的使用276
1145伙伴算法277
115Linux进程的地址空间及其维护278
1151Linux进程的用户态地址空间和内核态地址空间278
1152Linux的进程地址空间描述符278
1153线性区及其组织279
1154线性区的属性标志280
1155线性区相关操作280
1156页表281
116Linux的I/O子系统281
1161Linux内核中的I/O低级操作281
1162Linux的设备文件和I/O高级操作282
1163设备驱动285
117Linux的文件系统286
1171VFS中的目录组织286
1172VFS提供的系统调用288
1173VFS的实现292
1174EXT2文件系统299
118本章小结302
习题302
第七部分操作系统的扩展内容
第12章操作系统的安全306
121操作系统安全的重要性306
122操作系统的安全等级306
1221TCSEC306
1222国际通用准则CC307
1223我国的安全评估标准307
123操作系统的安全服务308
1231用户管理的安全性308
1232访问控制安全服务308
124主流操作系统的安全措施309
1241Windows NT的安全性309
1242UNIX/Linux的安全性312
125本章小结313
习题313
第13章分布式操作系统基础314
131概述314
1311操作系统的概念314
1312分布式计算技术316
1313分布式操作系统概述318
132经典的分布式操作系统322
1321Mach322
1322Amoeba323
1323Chorus324
1324Spring324
133通信325
1331远程过程调用RPC325
1332Mach中的端口及其通信326
1333Spring中的Door326
1334通信中的代理327
1335代理的建立327
134命名系统328
1341Mach中端口的命名和端口名字空间328
1342统一资源定位符和统一资源命名329
1343域名系统DNS的层次组织329
1344目录服务X500属性名空间的组织330
135资源管理330
1351管理策略330
1352集中式算法331
1353分布式的时间戳方法331
1354令牌环网算法332
136处理器管理332
1361基于图论的分配332
1362发送者或接收者发起的分布式启发式算法333
137本章小结333
习题334
第14章多核操作系统335
141多核技术简介335
142多核操作系统的类型336
143多核操作系统关键技术337
1431多核中的同步与互斥338
1432多核中的调度339
144本章小结342
习题342
参考文献343