
计算机操作系统是在研究计算机系统的工作方式和使用方式基础上,提出对计算机系统进行管理、控制的原理和方法,让计算机能够更好地为人们的学习、工作和生活服务。本书以单处理器计算机系统的并发执行工作方式为管理、控制对象。介绍计算机操作系统基本原理和方法。主要包括操作系统引论、操作系统提供用户的接口、处理器管理及调度、存储器管理、文件系统、设备管理和并发程序设计实验指导等共 8章。
第三版
本书对2015年出版的《计算机操作系统原理分析(第二版)》进行修改和补充,
新增第8章并发程序设计实验指导,删除或修改原版的部分段落,调整部分章节的编排,另外还补充了部分习题。
计算机操作系统是在认识计算机系统硬件组成及其体系结构的基础上,研究计算机系统的工作方式和用户使用方式,重点研究对计算机系统工作方式进行管理、控制的原理和方法,其目标是使得计算机系统能够更加方便、有效、安全地为人们服务。
在计算机系统的工作方式中,有初期的缺少人机交互的批处理系统,现在的多用户多任务的分时系统; 有单计算机系统,现在普遍使用的多计算机的网络系统,也有研究、发展中的多计算机的分布式系统和云服务平台; 有以计算为主的计算机系统,也有实施过程控制的实时系统,以及现在的各种电子设备的嵌入式系统。
另外,自从硬件上具有处理器与设备并行工作的能力之后,在微观方面,系统的工作流程从单任务的顺序执行方式,
发展到现在多任务的并发执行方式。
这些都与操作系统的研究密切相关。
本书作为大学本科计算机操作系统的入门教材,以单处理器计算机系统、并发执行工作方式为主,介绍计算机系统管理、控制的基本原理和方法。
在参考了国内外新近出版的操作系统教材和相关技术资料的基础上,结合学生的实际学习特点,本书系统地介绍了操作系统的基本原理和设计方法,并对原理和方法的思想进行了分析和总结。力求内容完整、规范,逻辑结构清晰、重点突出。
本书共8章。第1章介绍操作系统的概念、多道程序设计与操作系统、计算机操作系统的形成和发展、基本类型及其特征、操作系统的研究内容和操作系统软件的基本功能; 第2章介绍操作系统的内核、计算机系统的固件BIOS、UEFI,以及操作系统的命令接口和程序接口; 第3章和第4章介绍处理器的管理和调度,主要包括系统工作流程分析、进程的概念、进程管理的五大功能: 控制、同步、通信、调度和死锁; 第5章介绍存储器管理,存储管理的基本方法等,分别从它们的设计思想、实现关键、特点等几个方面分析和总结; 第6章是介绍文件系统,主要包括文件系统概念及其基本功能,重点围绕实现按名存取的功能,从文件的组织、文件目录管理、文件存储空间管理和文件共享保护等方面进行分析; 第7章介绍设备管理,主要有I/O软件的层次结构分析、I/O控制方式、缓冲管理、设备分配和磁盘驱动调度,设备管理的目的是实现设备独立性。第8章为并发程序设计实验指导,介绍并发程序设计实验工具BACI、Java锁(Lock)机制及应用和Linux信号量机制及应用。
书中带有“*”号的小节,作为可选部分,供学有余力或对相关内容有兴趣的读者学习。
本书可作为高等院校计算机类各专业,通信、电子等相关专业的本科生教材,同时可供广大科技工作者和研究人员作为了解计算机专业基础知识的参考书。
本书旨在系统、规范地介绍计算机操作系统的基本原理和方法,通过分析和总结,最大限度地帮助读者理解、掌握操作系统的核心内容。
由于编者的学识水平、知识结构有限,书中难免存在疏漏和不妥之处,恳请广大同行和读者不吝批评指正。
编者
2019年8月
第1章引论
1.1操作系统概述
1.1.1计算机系统的组成
1.1.2操作系统的定义
1.1.3计算机系统的层次结构
1.2操作系统的形成
1.2.1操作系统形成与发展的主要因素
1.2.2多道程序设计与操作系统
1.2.3操作系统的发展
1.3操作系统的基本类型
1.3.1批处理系统及其特征
1.3.2分时系统及其特征
1.3.3实时系统及其特征
1.4计算机操作系统的研究内容
1.5本章小结
习题
第2章操作系统的接口
2.1操作系统的内核
2.1.1处理器指令及工作模式
2.1.2操作系统内核及其基本特点
2.2操作系统的启动
2.2.1固件及其作用
2.2.2基本输入/输出系统
2.2.3可扩展固件接口
2.2.4操作系统的启动过程
2.3操作系统的用户接口
2.3.1命令接口
2.3.2程序接口及系统调用
2.3.3UNIX系统概述
2.4本章小结
习题
第3章处理器管理
3.1系统的工作流程
3.1.1程序及其特点
3.1.2顺序执行的工作方式及特征
3.1.3并发执行的工作方式及特征
3.2进程的概念
3.2.1进程的定义
3.2.2进程的主要特征
3.3进程的动态性
3.3.1进程的基本状态
3.3.2基本状态的转换关系
3.4进程管理的主要功能
3.4.1进程控制块及其组成
3.4.2PCB队列
3.4.3进程管理的主要功能
3.5进程控制
3.5.1原语
3.5.2进程控制原语
3.6进程同步
3.6.1并发进程的关系
3.6.2间接制约与互斥关系
3.6.3直接制约与同步关系
3.6.4进程同步机制
3.6.5加锁机制与互斥关系
3.6.6信号量机制与互斥关系
3.6.7信号量机制与同步关系
3.6.8生产者/消费者问题
3.6.9读者与写者问题
*3.6.10标志位机制
*3.6.11管程机制
3.7进程通信
3.7.1进程通信的概念
3.7.2进程通信方式
3.7.3消息缓冲通信的设计和实现
*3.7.4UNIX消息队列通信
3.7.5信箱通信的设计实现
3.8线程
3.8.1线程的引入
3.8.2线程的类型
3.8.3线程的常用细化方法
3.9本章小结
习题
第4章处理器调度
4.1操作系统中的调度
4.1.1调度的定义
4.1.2操作系统中的调度
4.1.3调度的性能指标
4.2作业调度
4.2.1作业状态
4.2.2作业调度的功能
4.2.3作业调度算法
4.2.4作业调度算法的例子
4.3进程调度
4.3.1进程调度的含义和功能
4.3.2进程调度方式
4.3.3进程调度算法
4.3.4实时系统的进程调度算法
4.4死锁问题
4.4.1死锁的含义
4.4.2死锁的4个必要条件
4.4.3死锁预防
4.4.4死锁避免
4.4.5死锁检测与恢复
4.5本章小结
习题
第5章存储器管理
5.1存储管理概述
5.1.1计算机系统的存储器类型
5.1.2虚拟地址和物理地址
5.1.3重定位
5.1.4存储管理的主要功能
5.1.5存储管理方法
5.2单一连续区存储管理
5.3固定分区存储管理
5.3.1基本思想
5.3.2实现关键
5.3.3主要特点
5.4可变分区存储管理
5.4.1基本思想
5.4.2实现关键
5.4.3主要特点
5.4.4分区管理总结
5.4.5对换和覆盖
5.5分页存储管理
5.5.1基本思想
5.5.2静态分页的实现关键
5.5.3静态分页的特点及效率的改进
5.5.4虚拟存储器思想
5.5.5请求分页的实现关键
5.5.6分页存储管理的主要特点
5.6分段存储管理
5.6.1基本思想
*5.6.2硬件基础
5.6.3实现关键
5.6.4分段与分页的区别
5.6.5主要特点
5.7段页式存储管理
5.7.1基本思想
5.7.2实现关键
5.8本章小结
习题
第6章文件系统
6.1文件系统概述
6.1.1文件系统的引入
6.1.2文件及其分类
6.1.3文件系统及其主要功能
6.2文件的逻辑结构
6.3文件的物理结构
6.3.1文件存取方式
6.3.2文件存储介质
6.3.3物理结构分类
6.4文件的管理
6.4.1文件控制块
6.4.2文件及其结构
6.5文件的存储空间管理
6.5.1磁盘存储管理方法
6.5.2空闲块成组链接法
6.6文件的使用
6.6.1文件系统的命令接口
6.6.2文件的系统调用
6.7文件的共享
6.7.1文件共享方法
6.7.2基本文件法
6.7.3文件共享语义
6.8文件的安全性
6.8.1文件保护及主要方法
6.8.2文件保密及主要方法
*6.8.3BLP安全模型
*6.8.4Biba安全模型
6.9本章小结
习题
第7章设备管理
7.1设备管理概述
7.1.1设备的分类
7.1.2设备的独立性
7.1.3设备管理的主要功能
7.2I/O控制方式
7.2.1程序查询方式
*7.2.2中断方式
7.2.3DMA方式
7.2.4通道方式
7.3设备分配
7.3.1设备管理的数据结构
7.3.2设备分配原则
7.3.3设备分配的方式和过程
7.3.4设备分配的安全性
7.4缓冲技术
7.4.1缓冲及其引入目的
7.4.2缓冲类型
7.4.3缓冲池管理
7.5磁盘驱动调度
7.5.1磁盘I/O操作的时间组成
7.5.2磁盘驱动调度
7.5.3移臂调度算法
7.6本章小结
习题
第8章并发程序设计实验指导
8.1实验工具BACI及其应用
8.1.1BACC基础
8.1.2BACC的安装
8.1.3BACC的使用
8.2Java锁机制及应用
8.2.1Java对象锁机制及线程互斥
8.2.2Wait和Notification
8.2.3Java显式锁及应用设计
8.2.4Java线程的同步控制
8.3Linux信号量机制及应用
8.3.1Linux信号量机制基础
8.3.2Linux的信号量机制应用示例
8.4本章小结
习题
参考文献
以实现处理器并发执行工作方式为目标,详细介绍计算机操作系统管理、控制的原理和方法,并从程序设计角度进行分析。教材内容叙述规范、结构严谨、逻辑清晰,例子、习题典型。
丁善镜,男,1992年3月硕士毕业于大连理工大学计算机系。现为福州大学数学与计算机学院副教授,1995年以来一直从事“计算机操作系统”大学本科教学,2012年编著《计算机操作系统原理分析》清华大学出版社出版,2015年修订出版第二版。在操作系统教学上有较丰富的经验,先后完成多项计算机应用系统开发。