《计算机操作系统》深入浅出地对操作系统的基本原理进行了描述,并以UNIX和Windows操作系统为例,分析了操作系统的实现思想。操作系统是现代计算机系统中必不可少的重要系统软件,也是计算机专业的必修课程。
《计算机操作系统》共分为11章。主要内容包括操作系统的基本概念和作用、不同操作系统的特点,进程和线程的基本概念、处理器调度、进程的同步与通信、死锁,传统存储器管理和虚拟存储器管理,设备管理,文件管理和磁盘管理,用户接口,操作系统结构等。
《计算机操作系统》的内容符合计算机专业“计算机操作系统”教学大纲要求,并涵盖2009年硕士研究生全国统一入学考试大纲的内容。
《计算机操作系统》可作为计算机及相关专业的教材,也可供初学者学习参考。
目录
- 第1章导论1
- 1.1操作系统与计算机1
- 1.1.1计算机的组织结构1
- 1.1.2操作系统与计算机2
- 1.1.3操作系统的概念和使用操作系统的目的2
- 1.2操作系统的功能和特征3
- 1.2.1操作系统的功能3
- 1.2.2操作系统的特征6
- 1.3操作系统的发展7
- 1.3.1早期的系统7
- 1.3.2批处理系统8
- 1.3.3多道程序系统10
- 1.3.4分时操作系统11
- 1.3.5实时操作系统13
- 1.3.6个人计算机操作系统15
- 1.3.7网络操作系统16
- 1.3.8分布式操作系统17
- 1.3.9嵌入式操作系统19
- 1.4IBM计算机与操作系统20
- 1.4.1早期的IBM计算机20
- 1.4.2具有批处理系统的计算机22
- 1.4.3IBM360家族23
- 1.4.4IBMAS40025
- 1.4.5IBM大型主机27
- 1.5本章小结28
- 练习129
- 第2章进程的描述与控制30
- 2.1进程描述30
- 2.1.1进程概念和特征30
- 2.1.2进程的基本状态及转换32
- 2.1.3具有挂起功能的进程状态和转换33
- 2.1.4进程的描述35
- 2.2进程控制38
- 2.2.1进程创建38
- 2.2.2进程的结束39
- 2.2.3进程阻塞和唤醒40
- 2.2.4进程的挂起和激活40
- 2.2.5执行的模式41
- 2.2.6操作系统的运行41
- 2.3前趋图42
- 2.4UNIX操作系统的进程描述和控制43
- 2.4.1UNIX操作系统的进程状态43
- 2.4.2UNIX操作系统进程的描述和控制44
- 2.4.3UNIX操作系统的多级进程关系45
- 2.5线程的描述与控制46
- 2.5.1线程及其特征46
- 2.5.2线程的状态与控制48
- 2.5.3线程库48
- 2.5.4线程的实现49
- 2.5.5线程模型51
- 2.6Solaris操作系统线程52
- 2.6.1Solaris系统中的进程与线程52
- 2.6.2Solaris系统中的线程状态54
- 2.7本章小结55
- 练习255
- 第3章处理器调度57
- 3.1处理器调度的层次57
- 3.1.1高级调度57
- 3.1.2中级调度60
- 3.1.3低级调度60
- 3.2评价调度算法的准则63
- 3.3调度算法65
- 3.3.1作业调度算法65
- 3.3.2进程调度算法71
- 3.4线程调度75
- 3.5实时调度76
- 3.5.1实时调度需要满足的条件76
- 3.5.2实时调度算法78
- 3.6多处理器调度79
- 3.6.1多处理器中同步的粒度80
- 3.6.2多处理器调度的设计要点80
- 3.6.3线程调度策略82
- 3.7Windows2000/XP系统的处理器调度85
- 3.7.1Windows2000/XP中的线程调度85
- 3.7.2Windows2000/XP中线程调度的数据结构86
- 3.7.3Windows2000/XP线程调度的相关问题86
- 3.7.4对称多处理器系统上的线程调度87
- 3.8本章小结89
- 练习390
- 第4章进程同步与进程通信93
- 4.1进程并发93
- 4.1.1程序的顺序执行93
- 4.1.2进程的并发性94
- 4.1.3进程间的竞争和协作96
- 4.1.4进程同步97
- 4.2临界区管理99
- 4.2.1临界资源和临界区99
- 4.2.2进程同步准则99
- 4.2.3早期的临界区管理方法100
- 4.3信号量机制108
- 4.3.1整型信号量108
- 4.3.2记录型信号量113
- 4.3.3AND型信号量集114
- 4.3.4信号量集116
- 4.3.5一些信号量实现问题116
- 4.4用信号量解决经典进程同步问题118
- 4.4.1生产者和消费者问题118
- 4.4.2读者和写者问题121
- 4.4.3哲学家就餐问题124
- 4.5管程124
- 4.5.1管程的定义125
- 4.5.2Hoare和Hanse观点127
- 4.5.3管程的应用133
- 4.6进程通信136
- 4.6.1共享存储区通信机制136
- 4.6.2消息传递通信机制137
- 4.6.3管道通信机制140
- 4.7线程的同步和通信143
- 4.7.1线程之间的同步143
- 4.7.2线程之间的通信145
- 4.7.3Windows2000/XP中的同步和通信145
- 4.8本章小结147
- 练习4147
- 第5章死锁150
- 5.1死锁的产生150
- 5.1.1死锁产生的原因150
- 5.1.2死锁产生的条件151
- 5.1.3处理死锁的基本方法152
- 5.1.4资源分配图152
- 5.2死锁预防153
- 5.3死锁避免156
- 5.3.1系统的安全状态156
- 5.3.2银行家算法158
- 5.4死锁的检测和解除161
- 5.4.1检测死锁161
- 5.4.2死锁解除163
- 5.5线程死锁165
- 5.6本章小结165
- 练习5166
- 第6章存储器管理167
- 6.1存储器管理概述167
- 6.1.1存储器的层次167
- 6.1.2程序准备执行168
- 6.1.3覆盖技术171
- 6.1.4紧凑技术172
- 6.1.5对换技术172
- 6.2连续存储空间管理173
- 6.2.1单一连续分配173
- 6.2.2固定分区分配方式173
- 6.2.3可变分区分配175
- 6.3分页式存储管理178
- 6.3.1分页存储管理的基本原理179
- 6.3.2页表180
- 6.3.3地址变换机构181
- 6.3.4快表181
- 6.3.5多级页表182
- 6.3.6反置页表(InvertedPageTable)185
- 6.3.7分页存储管理中的页面共享和保护185
- 6.4分段式存储管理186
- 6.4.1分段存储管理186
- 6.4.2分段存储管理中的段表和地址变换机构187
- 6.4.3分段式存储管理与分页存储管理的区别188
- 6.4.4具有分页的分段188
- 6.4.5段的共享和保护189
- 6.5本章小结190
- 练习6191
- 第7章虚拟存储器管理192
- 7.1虚拟存储器的基本概念192
- 7.1.1虚拟存储器的概念192
- 7.1.2虚拟存储器的特征194
- 7.2请求分页虚拟存储管理194
- 7.2.1请求分页的硬件支持194
- 7.2.2分页虚拟存储器管理实施中的策略问题197
- 7.3页面置换算法199
- 7.3.1先进先出(FIFO)页面置换算法200
- 7.3.2最佳(optimal)页面置换算法201
- 7.3.3最近最久未使用(LRU)页面置换算法202
- 7.3.4时钟(clock)置换算法203
- 7.4页面调度性能204
- 7.4.1页面调度对系统性能的影响分析204
- 7.4.2工作集模型207
- 7.5请求分段存储管理方式207
- 7.5.1请求分段的实现208
- 7.5.2段页式虚拟存储器管理的实现208
- 7.5.3具有分页的分段实例:MULTICS操作系统209
- 7.6Windows2000/XP系统存储器管理实例209
- 7.6.1基于分页管理的Windows2000/XP210
- 7.6.2Windows2000/XP系统的虚拟存储管理实现211
- 7.6.3Windows2000/XP的内存空间分配212
- 7.6.4Windows2000/XP内存页面级保护机制214
- 7.7本章小结214
- 练习7214
- 第8章输入/输出设备管理216
- 8.1输入/输出系统216
- 8.1.1输入/输出系统217
- 8.1.2输入/输出设备219
- 8.1.3设备管理的功能220
- 8.2设备控制器220
- 8.2.1设备控制器及其主要功能220
- 8.2.2设备控制器的组成221
- 8.3输入/输出控制方式222
- 8.3.1轮流测试(polling)222
- 8.3.2中断方式(interrupts)223
- 8.3.3直接存储器访问(DMA)方式224
- 8.3.4通道(channel)方式225
- 8.4缓冲管理229
- 8.4.1缓冲的引入229
- 8.4.2单缓冲区229
- 8.4.3双缓冲区230
- 8.4.4循环缓冲区231
- 8.4.5缓冲池(bufferpool)233
- 8.5输入/输出软件235
- 8.5.1中断处理程序235
- 8.5.2设备驱动程序236
- 8.5.3与设备无关的操作系统软件237
- 8.5.4用户级输入/输出软件238
- 8.6设备分配和回收240
- 8.6.1对设备的控制和描述信息240
- 8.6.2设备分配原则241
- 8.6.3设备分配与回收过程243
- 8.7本章小结244
- 练习8245
- 第9章文件管理246
- 9.1文件和文件属性246
- 9.1.1文件的概念246
- 9.1.2文件的分类247
- 9.1.3文件属性248
- 9.2文件结构和文件实现249
- 9.2.1文件的逻辑结构249
- 9.2.2文件的物理结构252
- 9.2.3文件的实现256
- 9.2.4文件的操作257
- 9.3文件系统257
- 9.3.1文件系统及其功能257
- 9.3.2文件系统模型258
- 9.3.3文件系统的实例259
- 9.4目录管理260
- 9.4.1文件控制块260
- 9.4.2文件索引节点261
- 9.4.3单级目录结构262
- 9.4.4两级目录结构263
- 9.4.5树形目录结构263
- 9.4.6非循环图目录结构264
- 9.4.7一般图目录结构265
- 9.4.8目录实现266
- 9.5磁盘存储器管理267
- 9.5.1磁盘存储器的物理结构268
- 9.5.2对磁盘的访问268
- 9.5.3磁盘格式化269
- 9.5.4磁盘的访问时间269
- 9.5.5磁盘调度算法270
- 9.5.6磁盘的分配和回收274
- 9.5.7磁盘可靠性278
- 9.5.8独立磁盘冗余阵列(RAID)280
- 9.6文件系统性能和可靠性281
- 9.6.1磁盘高速缓存281
- 9.6.2缓冲区的提前读与延迟写282
- 9.6.3减少磁臂运动282
- 9.6.4文件系统可靠性283
- 9.7文件的共享和保护283
- 9.7.1基于i节点的文件共享方法283
- 9.7.2基于符号链方法的文件共享284
- 9.7.3文件的存取权限及验证284
- 9.8文件系统实例285
- 9.8.1CD-ROM文件系统286
- 9.8.2MS-DOS文件系统287
- 9.8.3MicrosoftWindows98文件系统288
- 9.8.4UNIX文件系统289
- 9.9本章小结293
- 练习9293
- 第10章用户接口295
- 10.1命令接口295
- 10.1.1命令接口及命令分类295
- 10.1.2命令方式296
- 10.1.3常用的UNIX命令296
- 10.2图形接口297
- 10.3程序接口298
- 10.3.1系统调用函数299
- 10.3.2UNIX系统中的系统调用299
- 10.4本章小结309
- 练习10309
- 第11章操作系统的性能指标和系统结构310
- 11.1操作系统的性能指标310
- 11.2操作系统结构311
- 11.2.1简单结构形式311
- 11.2.2模块化结构形式311
- 11.2.3基于层结构形式312
- 11.2.4基于微内核结构形式314
- 11.2.5虚拟机结构形式315
- 11.3UNIX和Windows的系统结构317
- 11.3.1UNIX的系统结构317
- 11.3.2Windows的系统结构318
- 练习11322
- 参考文献