教材《计算机操作系统》第四版
1.1 操作系统的目标和作用
目标与应用环境有关
1.1.1 操作系统的目标
-
方便性
-
有效性
- 提高系统资源利用率
- 提高系统的吞吐量
-
可扩充性
与OS的结构相关
微内核结构
-
开放性
遵循开放系统互连OSI国际标准
1.1.2 操作系统的作用
-
OS作为用户与计算机硬件系统之间的接口(软件接口)
用户使用计算机的三种方式:
- 命令方式
- 系统调用方式
- 图标—窗口方式
-
OS作为计算机系统资源的管理者
四类计算机资源
- 处理机——处理机管理——分配和控制处理机
- 存储器——存储器管理——内存的分配与回收
- I/O设备——I/O设备管理——I/O设备的分配(回收)与操纵
- 文件(数据+程序)——文件管理——对文件的存取、共享和保护
-
OS实现了对计算机资源的抽象
扩充机器或虚拟机:向用户提供了一个对硬件操作的抽象模型
I/O设备管理软件是对计算机硬件操作的第一个层次的抽象;在该层次上再覆盖一层用于文件管理的软件,即第二个层次的抽象。
多层抽象
1.1.3 推动OS发展的主要动力
- 不断提高计算机资源利用率
- 方便用户
- 器件的不断更新换代
- 计算机体系结构的不断发展
- 不断提出新的应用需求
1.2 操作系统的发展过程
1.2.1 未配置操作系统的计算机系统
-
人工操作方式
-
脱机输入/输出(Off-Line I/O方式)——由外围机完成装带卸带等工作
减少了CPU空闲时间,提高了I/O速度。
1.2.2 单批道处理系统
- 处理过程:由监督程序负责调度,当第一个作业完成后控制权交给监督程序,监督程序把磁带上第二个作业调入内存。系统对作业的处理是成批进行,单在内存中始终只保持一道作业。
- 缺点:资源得不到充分利用
1.2.3 多道批处理系统
-
基本概念
用户所提交的作业先存放在外存上,并排成一个队列,成为”后备队列“。由作业调度程序按一定的算法,从后备队列在选择若干个作业调入内存,使它们共享CPU和系统的各种资源。
-
优缺点
- 资源利用率高
- 系统吞吐量大
- 平均周转时间长
- 无交互能力
-
需要处理的问题
- 处理机争用问题
- 内存分配和保护问题
- I/O设备分配问题
- 文件的组织和管理问题
- 作业管理问题
- 用户与系统的接口问题
操作系统是一组能有效地组织和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合
1.2.4 分时系统
-
分时系统的引入
人机交互、共享主机
分时系统是指,在一台主机上连接了多个配有显示器和键盘的终端并由此所组成的系统,该系统允许多个用户同时通过自己的终端,以交互方式使用计算机,共享主机的资源。
-
关键问题
人—机交互(允许有多个用户同时通过自己的键盘键入命令,系统也能全部及时接收并处理)
- 及时接收
- 多路卡:实现分时多路复用。即主机以很快的速度周期性地扫描各个终端,在每个终端处停留很短时间用于接收终端发来的数据
- 缓冲区:使从终端上输入的数据被依次逐条地进行处理,缓冲区用来暂存用户键入的命令
- 及时处理
- 作业直接进入内存。
- 采用轮转运行方式。引用时间片的概念(一段很短的时间)。系统规定每个作业每次只能运行一个时间片,然后就暂停该作业的运行,并立即调度下一个作业运行。在不长的时间内使所有的作业都执行一个时间片的时间,便可使每个用户都能及时与自己的作业进行交互,从而使用户的请求得到及时响应。
- 及时接收
-
特征
- 多路性
- 独立性
- 及时性
- 交互性
1.2.5 实时系统
系统能及时(或即时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行
1. 实时系统的类型
- 工业(武器)控制系统
- 信息查询系统
- 多媒体系统
- 嵌入式系统
2. 实时任务的类型
- 周期性实时任务
- 非周期性实时任务
- 开始截止时间
- 完成截止时间
- 硬实时任务
- 软实时任务
3. 实时系统与分时系统特征的比较
1.2.6 微机操作系统的发展
1. 单用户单任务操作系统
CP/M, MS-DOS
2. 单用户多任务
Windows
3. 多用户多任务
Unix
1.3 操作系统的基本特性
1.3.1 并发
1. 并行与并发
并行性:两个或多个事件在同一时刻发生。
并发性:两个或多个事件在同一时间间隔内发生。
2. 引入进程:使多个程序能并发执行
进程:系统中能够独立运行并作为资源分配的基本单位,由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体。
3. 引入线程:进一步提高系统的并发性,系统效率更高
1.3.2 共享
OS环境下的资源共享或资源复用是指,系统中的资源可供内存中多个并发执行的进程(线程)共同使用。在宏观下,限定了时间(进程在内存期间),也限制了地点(内存)。由于资源属性的不同,进程对资源共享的方式也不同,目前主要有以下两种资源共享方式。
1. 互斥共享方式
仅当A进程访问完并释放该资源后, 才允许另一进程对该资源进行访问的方式。
临界资源或独占资源:把在一段时间内只允许一个进程访问的资源
2. 同时访问方式
允许在一段时间内由多个进程“同时”对它们进行访问
1.3.3 虚拟
“虚拟”,是指通过某种技术把一个物理实体变为若干个逻辑上的对应物。
1. 时分复用技术
利用某设备为一用户服务的空闲时间,又转去为其他用户服务,使设备得到最充分的利用。
- 虚拟处理机
- 虚拟设备
2. 空分复用技术
利用存储器的空闲空间分区域存放和运行其他的多道程序。
- 虚拟磁盘技术
- 虚拟存储器技术
1.3.4 异步
进程是以人们不可预知的速度向前推进,此即进程的异步性。尽管如此,但只要运行环境相同,作业经多次运行,都会获得完全相同的结果。
1.4 操作系统的主要功能
1.4.1 处理机管理功能
1. 进程控制
进程控制的主要功能是为作业创建进程、撤消已结束的进程,以及控制进程在运行过程中的状态转换。在现代OS中,进程控制还应具有为一个进程创建若干个线程的功能和撤消(终止)已完成任务的线程的功能。
2. 进程同步
进程同步的主要任务是为多个进程(含线程)的运行进行协调。有两种协调方式
① 进程互斥方式, 这是指诸进程(线程)在对临界资源进行访问时, 应采用互斥方式;
最简单的用于实现进程互斥的机制,是为每一个临界资源配置一把锁W,当锁打开时,进程(线程)可以对该临界资源进行访问;而当锁关上时,则禁止进程(线程)访问该临界资源。
② 进程同步方式,指在相互合作去完成共同任务的诸进程(线程)间,由同步机构对它们的执行次序加以协调。
3. 进程通信
实现在相互合作的进程之间的信息交换。当相互合作的进程(线程)处于同一计算机系统时,通常在它们之前是采用直接通信方式,即由源进程利用发送命令直接将消息(message)挂到目标进程的消息队列上,以后由目标进程利用接收命令从其消息队列中取出消息。
4. 调度
- 作业调度
从后备队列中按照一定的算法,选择出若干个作业,为它们分配其必需的资源(首先是分配内存)。 在将它们调入内存后,便分别为它们建立进程,使它们都成为可能获得处理机的就绪进程,并按照一定的算法将它们插入就绪队列 - 进程调度
从进程的就绪队列中选出一新进程,把处理机分配给它,并为它设置运行现场, 使进程投入执行。
在多线程OS中,通常是把线程作为独立运行和分配处理机的基本单位,为此,须把就绪线程排成一个队列,每次调度时,是从就绪线程队列中选出一个线程,把处理机分配给它
1.4.2 存储器管理功能
为多道程序的运行提供良好的环境,提高存储器的利用率
1. 内存分配
- 静态分配方式
每个作业的内存空间是在作业装入时确定的;在作业装入后的整个运行期间, 不允许该作业再申请新的内存空间,也不允许作业在内存中“移动”; - 动态分配方式
每个作业所要求的基本内存空间, 也是在装入时确定的,但允许作业在运行过程中,继续申请新的附加内存空间,以适应程序和数据的动态增涨,也允许作业在内存中“移动”
2. 内存保护
- 确保每道用户程序都只在自己的内存空间内运行,彼此互不干扰
设置两个界限寄存器,分别用于存放正在执行程序的上界和下界 - 绝不允许用户程序访问操作系统的程序和数据,也不允许用户程序转移到非共享的其它用户程序中执行。
3. 地址映射
将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址
4. 内存扩充
从逻辑上去扩充内存容量
(1) 请求调入功能。
(2) 置换功能。
1.4.3 设备管理功能
设备管理用于管理计算机系统中所有的外围设备, 而设备管理的主要任务是
- 完成用户进程提出的I/O请求,为用户进程分配其所需的I/O设备;
- 提高CPU和I/O设备的利用率,提高I/O速度,方便用户使用I/O设备。
1. 缓冲管理
缓和CPU和I/O设备速度不匹配的矛盾,提高CPU的利用率,进而提高系统吞吐量
2. 设备分配
根据用户进程的I/O请求、系统的现有资源情况以及按照某种设备分配策略,为之分配其所需的设备。如果在I/O设备和CPU之间,还存在着设备控制器和I/O通道时,还须为分配出去的设备分配相应的控制器和通道。
3. 设备处理
设备处理程序又称为设备驱动程序。其基本任务是用于实现CPU和设备控制器之间的通信,即由CPU向设备控制器发出I/O命令,要求它完成指定的I/O操作;反之由CPU接收从控制器发来的中断请求,并给予迅速的响应和相应的处理
1.4.4 文件管理功能
1. 文件存储空间的管理
为每个文件分配必要的外存空间,提高外存的利用率,并能有助于提高文件系统的运行速度
2. 目录管理
为每个文件建立其目录项,并对众多的目录项加以有效的组织,以实现方便的按名存取
3. 文件的读/写管理和保护
(1) 文件的读/写管理。该功能是根据用户的请求,从外存中读取数据;或将数据写入外存。
(2) 文件保护
1.4.5 操作系统与用户之间的接口
1. 用户接口
(1) 联机用户接口 (2) 脱机用户接口 (3) 图形用户接口
2. 程序接口
该接口是为用户程序在执行中访问系统资源而设置的,是用户程序取得操作系统服务的唯一途径
1.4.6 现代操作系统的新功能
(1)系统安全(2)网络的功能和服务(3)支持多媒体
1.5 操作系统的结构设计
1.5.1 传统的操作系统结构
1. 无结构操作系统
2. 模块化OS结构
基于“分解”和“模块化”原则来控制大型软件的复杂度
设计方法:模块-接口法
3. 分层式OS结构
有序分层
每一层都仅使用其底层所提供的功能和服务
1.5.2 客户/服务器模式
- 客户机
- 服务器
- 网络系统
1.5.3 面向对象的程序设计
1.5.4 微内核OS结构
-
足够小的内核
微内核技术,是指精心设计的、能实现现代OS核心功能的小型内核。不仅运行在核心态,而且开机后常驻内存, 它不会因内存紧张而被换出内存。并非是一个完整的OS, 而只是为构建通用OS提供一个重要基础。
-
基于客户/服务器模式
-
应用“机制与策略分离”原理
机制:实现某一功能的具体执行机构(低层)
策略:在机制的基础上借助某种参数和算法来实现该功能的优化,或达到不同的功能目标(高层)
微内核OS将机制放在微内核。
-
采用面向对象技术
微内核所提供的功能,通常都是一些最基本的功能,如进程管理、存储器管理、进程间通信、 低级I/O功能。