计算机操作系统复习重点
什么是操作系统?操作系统的作用有哪些
操作系统是一组控制和管理计算机硬件和软件资源,合理地组织计算机工作流程,以及方便用户使用的程序集合。
作用:
- 作为用户与计算机硬件系统之间的接口
- 作为计算机系统资源的管理者
- 用作扩充机器
操作系统通常具有哪4个基本特征
- 并发
- 共享
- 虚拟
- 异步性
操作系统应实现哪些基本目标
- 使计算机系统更易于使用(方便性)
- 以一种效率的方式使用资源(有效性)
- 采用模块化结构,易于增、删、改(可扩充性)
- 要求统一开放的环境,能通过网络集成化并正确、有效地协同工作,实现应用程序的移植(开放性)
操作系统的基本功能有哪些
处理器管理:主要控制和管理CPU的工作,控制和管理处理机。主要功能是进程控制、进程同步、进程通信和进程调度等
存储管理:主要进行内存的分配和管理。主要功能是内存分配、内存保护、地址映射、内存扩充等
设备管理:主要管理基本的输入输出设备。主要功能是缓冲管理、设备分配、设备处理、虚拟设备等
文件管理:负责对计算机文件的组织、存储、操作和保护等。
- 用户接口管理:主要负责管理操作系统提供给用户的接口,使用户能够方便地与计算机系统交互。主要功能为命令接口,程序接口,图形接口等。
处理机管理功能
主要任务:
- 对处理机进行分配
- 对处理机运行进行有效的控制和管理
处理机管理的功能:
- 进程控制
- 进程同步
- 进程通信
- 调度
存储器管理功能
主要任务:
- 为多道程序的运行提供良好的环境
- 方便用户使用存储器
- 提高存储器的利用率
- 从逻辑上扩充内存
功能:
- 内存分配
- 内存保护
- 地址映射
- 内存扩充
设备管理功能
主要任务:
- 完成用户提出的I/O请求
- 为用户分配I/O设备
- 提高I/O设备的利用率及速度
- 方便用户使用I/O设备
功能:
- 缓冲管理
- 设备分配
- 设备处理
- 虚拟设备
文件管理功能
主要任务:
- 对用户文件和系统文件进行管理
- 方便用户使用文件
- 保证文件的安全性
功能:
- 文件存储空间的管理
- 目录管理
- 文件的读、写管理
- 文件的共享与保护
用户接口管理的功能
主要任务:
- 方便用户使用操作系统
功能:
- 命令接口
- 程序接口(系统调用)
- 图形接口
什么是通用操作系统?
如果一个操作系统兼有批处理、分时和实时系统三者或二者的功能,则称该操作系统为通用操作系统。
根据程序段绘制语句的前驱图
程序的顺序执行:
简要描述程序和进程之间的区别
- 程序是指令的有序集合,其本身没有任何运行的含义,它是一个静态的概念。而进程是程序在处理机上的一次执行过程,它是一个动态概念。
- 程序的存在是永久的。而进程则是有生命期的,它因创建而产生,因调度而执行,因得不到资源而暂停,因撤消而消亡。
- 程序仅是指令的有序集合。而进程则由程序段、相关数据段和进程控制块(PCB)组成。
- 进程与程序之间不是一一对应。
程序 | 进程 | |
---|---|---|
概念 | 静态 | 动态 |
所在存储器 | 外存 | 内存 |
存在时间 | 永久 | 有生命期 |
组成 | 有序指令 | 程序段,数据段,PCB |
对应关系 | 一个程序可对应多个进程 一个进程可对应多个程序 |
请简要描述进程的3种基本状态
就绪: 进程已获得了除处理机以外的所有资源,等待分配处理机执行的等待状态。
运行/执行: 当一个进程获得必要的资源并正在处理机上执行的状态。
等待/阻塞: 正在执行的进程由于发生某事件而暂时无法执行下去,此时进程所处的状态。
进程三种基本状态的转换图
进程创建的流程图
同步机制应当遵循哪些规则
- 有空让进(空闲让进):当无进程处于临界区时,表明临界资源处于空闲状态,应允许一个请求进入临界区的进程立即进入自己的临界区,以有效地利用临界资源。
- 互斥(忙则等待):当已有进程进入临界区时,表明临界资源正在被访问,因而其他试图进入临界区的进程必须等待,以保证对临界资源的互斥访问
- 有限等待:对要求访问临界资源的进程,应保证在有限时间内能进入自己的临界区,以免陷入“死等”状态.
- 让权等待:当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入“忙等”。
关于信号量的典型例题
读者-写者问题
writer进程要求写或修改。允许多个reader进程同时读共享数据,但绝不允许一个writer进程与其它的reader进程或writer进程同时访问,即writer进程必须与其它进程互斥访问共享对象。请用PV操作实现相应的reader和writer进程
1 | semaphore rmutex = 1; /* 读互斥信号量 */ |
现有四个进程:R1,R2,W1和W2,它们共享可以存放一个数的缓冲区B。
进程R1每次把从键盘上读入的一个数存到缓冲区B中,供进程W1打印输出;
进程R2每次把从磁盘上读入的一个数存到缓冲区B中,供进程W2打印输出。
怎样用P、V操作协调四个并发进程的工作?
设信号量e,f1,f2
其初值分别为e=1,f1=0,f2=0 // e表示一个可用资源,f1表示R1生产的,f2表示R2生产的
R1:
1 | L: |
R2:
1 | L: |
W1:
1 | L: |
W2:
1 | L: |
系统中有三个进程GET、PRO、PUT,如图所示,共有两个缓冲区BUF1和BUF2,
假设BUF1中最多可以放11个信息,现已放入了两个信息;BUF2最多可放5个信息
GET进程负责不断地将输入信息送入BUF1中,PRO进程负责从BUF2中读取结果并输出。
使用P、V操作写出正确实现GET、PRO、PUT的同步与互斥的算法
1 | semaphore empty1=9 // 空buf1的数目 |
产生死锁的4个必要条件是什么?
互斥条件(资源独占条件)
指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其它进程请求该资源,则请求者只能等待,直至占有该资源的进程用毕释放
请求和保持条件(部分分配条件)
指进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源又已经被其它进程占有,此时请求进程阻塞,但又对自己已获得的其他资源保持不放
不剥夺条件
指进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完时由自己释放
循环等待条件(环路条件)
指发生死锁时,必然存在一个进程——资源的环形链,即进程集合${P_0, P_1, P_2, \cdots, P_n}$中的$P_0$正在等待一个$P_1$占用的资源;$P_1$正在等待$P_2$占用的资源,……,$P_n$正在等待已被$P_0$占用的资源。
安全状态,银行家算法
安全状态实例
假定系统中有三个进程P1,P2和P3,共有12台磁带机,三个进程对磁带机的需求和占有情况如下表所示:
进 程 | 最大需求 | 已分配 | 可用 |
---|---|---|---|
P1 | 10 | 5 | 3 |
P2 | 4 | 2 | |
P3 | 9 | 2 |
T0时刻,存在一个安全序列(P2,P1,P3)或(P2,P3,P1),所以系统是安全的。
银行家算法
数据结构
具有代表性的避免死锁算法,是Dijkstra给出的银行家算法,为实现银行家算法,系统中必须设置若干数据结构。假定系统中有$n$个进程$(P_1,P_2,\cdots,P_n)$,$m$类资源$(R_1,R_2,\cdots,R_m)$,银行家算法中使用的数据结构如下:
- 可利用资源向量:
available[j] = k
,资源$R_j$类有k个可用 - 最大需求矩阵:
Max[i, j] = k
,进程$P_i$最大请求k个$R_j$类资源 - 分配矩阵:
Allocation[i, j] = k
,进程$P_i$分配到k个$R_j$类资源 - 需求矩阵:
Need[i, j] = k
,进程$P_i$还需要k个$R_j$类资源
矩阵关系:
Need[i, j] = Max[i, j] - Allocation[i, j]
算法流程
设$Request_i$是进程$P_i$的请求向量,设$Request_i[j]=k$,表示进进程$P_i$请求分配$R_j$类资源$k$个。当进程$P_i$发出资源请求后,系统按如下步骤进行检查:
如$Request_i[j]≤Need[i,j]$,转2;否则出错,因为进程申请资源量超过它申明的最大量
如$Request_i[j] ≤Available[j]$,转3;否则表示资源不够,需等待。
系统试分配资源给进程$P_i$,并作如下修改:
$Available[j]= Available[j]- Request_i[j]$
$Allocation[i,j]= Allocation[i,j]+ Request_i[j]$
$Need[i,j]= Need[i,j]- Request_i[j]$
系统执行安全性算法,检查此次资源分配后,系统是否处于安全状态。若安全,则正式进行分配,否则恢复原状态让进程Pi等待。
先判断申请资源数量是否满足条件
再判断申请到资源后系统是否是安全状态
试题
设某系统中有4种资源,在某时刻系统中共有5个进程,进程(P0,P1,P2,P3,P4)的最大资源需求数向量和此时已分配的资源数向量分别为:
进程 | 最大资源需求 | 当前已分配的资源 |
---|---|---|
P0 | (0,0,1,2) | (0,0,1,2) |
P1 | (2,7,5,0) | (2,0,0,0) |
P2 | (6,6,5,6) | (0,0,3,4) |
P3 | (4,3,5,6) | (2,3,5,4) |
P4 | (0,6,5,2) | (0,3,3,2) |
系统中当前可用资源向量为(2,1,0,0),问:
系统当前是否处于安全状态?
答:有安全序列:$(P_0, P_3, P_4,P_1, P_1)$,所以处于安全状态
当进程P2申请(0,1,0,0)时,系统能立即满足吗?
请解释什么是静止优先权,什么是动态优先权
- 静态优先权:优先权在创建进程时确定,且在进程的整个运行期间保持不变。一般用一个整数表示,小表示优先级高
- 动态优先权:优先权在创建进程时确定,但在进程的运行期间会发生变化
什么是抢占式优先权算法?
系统把处理机分配给就绪队列中优先权最高的进程,使之执行。但在其执行期间,只要出现了另一个优先权更高的进程,进程调度程序就立即停止当前进程的执行,重新将处理机资源分配给新到的优先权最高的进程。
在最低松弛度优先算法(LLF)中,松弛度的计算公式是什么?
==松弛度 = 必须完成时间 - 其本身的运行时间 - 当前时间==
调度相关例题
在一个单通道批处理系统中,已知一组作业的到达时间和运行时间。计算使用先到先服务和短作业优先算法时的平均周转时间
周转时间:
周转时间 = 作业完成时刻 - 作业到达时刻
平均周转时间:
平均周转时间 = 作业周转总时间/作业个数
先到先服务
基本思想:按照进程进入就绪队列的先后次序来分配处理机资源。一般采用非剥夺的调度方式
短作业优先
主要任务是从就绪队列中选出一估计运行时间最短的进程,将处理机分配给它。
非抢占式
抢占式
存储管理应具有哪4个基本功能?
- 实现内存的分配和回收
- 地址变换(相对地址<——>绝对地址)
- “扩充”内存容量
- 进行存储保护
一个用户源程序要变为在内存中可执行的程序,通常要进行哪几步处理?
- 编译:由编译程序将用户源程序编译成若干个目标模块
- 链接:由链接程序将目标模块和相应的库函数链接成装入模块
- 装入:由装入程序将装入模块装入内存
内存分配例题
按照固定分区分配方式的分区说明表,请绘出当前的内存分配情况
固定分区分配方式
是最早使用的一种可运行多道程序的存储管理方法。
存储管理办法
内存空间的划分:将内存空间划分为若干个固定大小的分区,除OS占一区外,其余的一个分区装入一道程序。分区的大小可以相等,也可以不等,但事先必须确定,在运行时不能改变。即分区大小及边界在运行时不能改变。
系统需建立一张分区说明表或使用表,以记录分区号、分区大小、分区的起始地址及状态(已分配或未分配)
内存分配
- 当某个用户程序要装入内存时
- 由内存分配程序检索分区说明表,从表中找出一个满足要求的尚未分配的分区
- 找到的同时将分区分配给该程序并修改说明表中相应分区的状态;
- 若找不到大小足够的分区,则拒绝为该程序分配内存
- 由内存分配程序检索分区说明表,从表中找出一个满足要求的尚未分配的分区
- 当程序执行完毕
- 释放占用的分区
- 管理程序将修改说明表中相应分区的状态为未分配
- 实现内存资源的回收。
例题
在某系统中,采用固定分区分配管理方式,内存分区(单位字节)情况如图所示,现有大小为1K、9K、33K、121K的多个作业要求进入内存,试画出它们进入内存后的空间分配情况,并说明主存浪费多大?
讨论覆盖与交换技术的异同
覆盖与交换技术是在多道程序下扩充内存的两种方法,
覆盖技术要求程序员给出程序覆盖结构,交换技术不要求程序员给出覆盖结构,
覆盖技术主要在一个作业或进程中进行,交换主要在作业或进程之间进行。
什么是分页虚拟存储系统中的抖动现象?
刚被淘汰出内存的页面,过后不久又要访问它,需要再次将其调入,而该页调入内存后不久又再次被淘汰出内存,然后又要访问它,如此反复,使得系统把大部分时间用在了页面的调进转换上,而几乎不能完成任何有效工作,这种现象称为抖动(又称颠簸)
分页存储和段式存储逻辑地址物理地址变换典型例题
最终结果要写成十六进制
分页存储
地址结构
地址结构例题
设有一页式存储管理系统,向用户提供的逻辑地址空间最大为16页,每页2048B,内存总共有8个存储块,试问逻辑地址至少应为多少位?内存空间有多大?
页表
地址变换例题
若在一分页存储管理系统中,某作业的页表如表所示,已知页面大小为1024B,试将逻辑地址1011,2148,5012转化为相应的物理地址?画出其地址转换图。
页号 | 块号 |
---|---|
0 | 2 |
1 | 3 |
2 | 1 |
3 | 6 |
考试例题
设有一页式存储管理系统,向用户提供的逻辑地址空间最大为32页,每页2048B,内存总共有16个存储块,页表的记录情况如下表所示,试将逻辑地址2548转换成物理地址。
页号 | 块号 |
---|---|
0 | 2 |
1 | 5 |
3 | 7 |
4 | 9 |
29 | 12 |
30 | 15 |
某虚拟存储器的用户编程空间共32个页面,每页为1KB,内存为16KB。假定某时刻一用户页表中已调入内存的页面的页号和物理块号(十进制)的对照表如下:
页号 | 物理块号 |
---|---|
0 | 3 |
1 | 7 |
2 | 11 |
3 | 8 |
则逻辑地址000 1010 0101 1100(二进制)所对应的物理地址是什么?
段式存储
段表
记录了段与内存位置的对应关系
段表常保存在内存中(或一组寄存器中)
段表的基址及长度由段表寄存器给出
访问一个字节的数据/指令需访问内存2次(段表一次,内存一次),所以也出现内存访问速度降低的问题
- 逻辑地址:
例:采用段式存储管理的系统中,若地址用24位表示,其中8位表示段号,则允许段的最大长度是( B )
A.$2^{24}$ B. $2^{16}$ C. $2^8$ D. $2^{32}$
地址变换
例题
某段表的内容如下:
段号 段首址 段长度
0 120K 40K
1 760K 30K
2 480K 20K
3 370K 20K
一逻辑地址为(2154),它对应的物理地址为多少?
在一个段式存储管理系统中,其段表为:
段号 内存起始地址 段长
0 210 500
1 2350 20
2 100 90
3 1350 590
4 1938 95
试求表中逻辑地址对应的物理地址是什么?
0 | 430 |
---|---|
2 | 120 |
考试例题
假设有下面的段表:
段 | 基址 | 长度 |
---|---|---|
0 | 219 | 600 |
1 | 2300 | 14 |
2 | 90 | 100 |
3 | 1327 | 580 |
4 | 1952 | 96 |
下面逻辑地址的物理地址分别是多少?
a、[1,12]
b、[2,500]
带快表页式系统存取时间计算
有效访问内存的时间
其中,$P{TLB}$为快表的命中率,$T{TLB}$为快表的访问时间,$T_M$为内存的访问时间
题目
有一页式系统,其页表存放在主存中。
(1)如果对主存的一次存取需要100ns,试问实现一次页面访问的存取时间是多少?
(2)如果系统加有快表,对快表的一次存取需要20ns,若平均命中率为85%,试问此时的存取时间为多少?
解答:
(1)页表放主存中,则实现一次页面访问需2次访问主存,一次是访问页表,确定所存取页面的物理块,从而得到其物理地址,一次根据物理地址存取页面数据。(就是没有使用快表的情况)
所以实现一次页面访问的存取时间为:$100ns*2=200ns$
(2)系统加有快表,根据公式,则实现一次页面访问的存取时间为:
$0.85(20ns+100ns)+(1-0.85)(20ns+2*100ns)=135ns$
页面置换算法典型例题
画表格
对于如下的页面访问序列:1,2,3,4,1,2,5,1,2,3,4,5。当内存块数量为3时试问:使用FIFO、LRU置换算法产生的缺页中断是多少?写出一次产生缺页中断后应淘汰的页。(画表格)
FIFO(先进先出置换算法)
LRU(最近最久未使用算法)
什么是设备控制器?
处于CPU与I/O设备之间的接口,接收CPU发来的命令,并控制I/O设备工作,是一个可编址设备
在设备管理中主要使用哪四种输入/输出控制方式?
程序直接控制方式
中断控制方式
直接存储器访问(DMA)方式
通道控制方式
1. **程序直接控制方式**:在早期的计算机中,由于无中断机构,**处理机对I/O设备的控制采用程序直接控制方式**,或称为忙-等待方式。这种方式虽然简单易于实现,但是其缺点也是显而易见的,由于CPU和I/O设备**只能串行工作**,**导致**CPU的利用率相当低
2. **中断控制方式**:中断控制方式的思想是,**允许I/O设备主动打断CPU的运行并请求服务**,从而“解放”CPU,使得CPU向I/O控制器发送读命令后可以继续做其他有用的工作,CPU与I/O可以并行操作
3. **DMA方式**:DMA(直接存储器存取)方式的基本思想是在I/O设备和内存**之间**开辟直接的数据交换通路,彻底“解放” CPU。DMA方式的特点是:**基本单位是数据块**。所传送的数据,是从设备直接送入内存的,或者相反(数据从内存直接送入设备)。仅在传送一个或多个数据块的开始和结束时,才需CPU干预,**整块数据的传送是在DMA控制器的控制下完成的**
4. **通道控制方式**:**I/O通道是指专门负责输入/输出的处理机**。I/O通道方式是DMA方式的发展,它可以进一步减少CPU的干预,即把对**一个**数据块的读(或写)为单位的干预,减少为对**一组**数据块的读(或写)**及有关的控制和管理**为单位的干预
在设备分配中需要使用哪四种基本数据结构?
- 设备控制表DCT
- 控制器控制表COCT
- 通道控制表CHCT
- 系统设备表SDT
设备驱动程序有哪些基本功能?
将接收到的抽象要求转换为具体要求
检查用户I/O请求的合法性,I/O设备状态,传参数,设设备的工作方式
按处理机的I/O请求去启动指定的设备进行I/O操作
及时响应由控制器或通知发来的中断请求,并进行相应处理
按I/O请求构成相应通道程序
什么是虚拟设备?
虚拟设备:指通过虚拟技术将一台独占设备变换为若干台逻辑设备,供若干个用户进程同时使用,通常把这种经过虚拟技术处理后的设备称为虚拟设备
缓冲数据处理时间计算例题
双缓冲一块数据的处理时间
系统处理一块数据的时间可以粗略地认为是$Max(C, T)$。
如果$C
题目
在某系统中,从磁盘将一块数据输入到缓冲区需要花费的时间$T=100ms$,CPU对一块数据进行处理的时间为$C=5ms$,将缓冲区的数据传送到用户区所花时间为$M=10ms$,那么在双缓冲情况下,系统处理大量数据时,一块数据的处理时间为多少?
答:因为$C<T$,所以处理时间为:$MAX(C, T) = T = 100ms$
磁盘寻道算法例题
SSTF(最短寻道时间优先)
FCFS(先来先服务)
SCAN(扫描算法)
没说方向就是先往右再往左。
题目
设某磁盘有200个柱面,编号为0,1,2,…,199。磁头停在100号磁道,若9个磁盘按到达时间的先后排成的等待服务队列为:55,58,39,18,90,160,150,38,184,采用最短寻道时间优先SSTF磁盘调度算法,FCFS和SCAN磁盘寻道调度算法。
试画出寻道图,求磁道响应请求道次序。求总磁头移动量,磁头的平均寻道长度。
最短寻道时间优先SSTF:
FCFS:
SCAN:
索引逻辑结构文件的优缺点
- 优点
- 通过索引表可方便地实现直接存取,具有较快的检索速度
- 易于进行文件的增删
- 缺点
- 索引表的使用增加了存储费用
- 索引表的查找策略对文件系统的效率影响很大
有哪三种常见的外存分配方法?
- 连续分配(顺序分配)
- 为每一个文件分配一片连续的磁盘块/簇
- 只需要起始块/簇号和长度,适用于预分配方法
- 可以随机存取
- 文件不能增长
- 从逻辑地址映射到物理地址较简单
- 浪费空间:动态存储分配问题
- 可以通过紧缩(compact)将外存空闲空间合并成连续的区域。
- 链接分配
- 每个文件是一个磁盘块的链接列表:块可以分散在磁盘各处
- 按所需分配磁盘块,链接在一起
- 在每个块中有指向下一个块的指针
- 只需要起始地址
- 可以通过合并(consolidation)将一个文件的各个簇连续存放,以提高I/O访问性能。
索引分配
- 为每一个文件分配一个索引块(表),再把分配给该文件的所有块号,都记录在该索引块中。故索引块就是一个含有许多块号地址的数组
- 该索引块的地址由该文件的目录项指出
- 支持随机/直接存取
- 不会产生外部碎片
- 适用于文件较大时
连续分配:为每个文件分配一片连续的磁盘块,只需起始块号和长度,适用于预分配方法,可以随机存取,但文件不能增长。
- 链接分配:每个文件是一个磁盘块的链接列表,按需分配磁盘块并链接在一起,在每个块中有指向下一个块的指针,只需起始地址。
- 索引分配:为每个文件分配一个索引块,记录所有分配给该文件的块号,故索引块就是一个含有许多块号地址的数组,支持随机存取,适用于大文件。
文件目录管理有哪些基本要求?
- 实现“按名存取”
- 提高对目录的检索速度
- 文件共享
- 允许文件重名
请解释什么是目录文件?
为了实现对文件目录的管理,通常将文件目录以文件的形式保存在外存,这个文件就叫做目录文件。
FAT容量计算
软盘(或硬盘)容量/ 盘块大小 = 盘块个数。
比盘块个数大的最小的2的n次方,表项有n/8个字节
表项个数*表项所占字节数 = FAT所占空间
题目
假定磁盘块大小为2KB,对于20G的硬盘,计算其文件分配表FAT占用的空间 30MB
假定盘块的大小为4KB,硬盘的大小为12GB,计算:
- 硬盘应共有多少个盘块 3MB
- FAT的每个表项有多少个字节 2.75B
对于FAT12文件系统来说,每个表项有1.5个字节
对于FAT16文件系统来说,每个表项有2个字节
对于FAT32文件系统来说,每个表项有4个字节
通过题目中计算:
因此每个表项有$22/8=2.75$个字节
- FAT需占用多少存储空间 8.25MB
对于FAT12文件系统来说,1.5*3MB=4.5MB
对于FAT16文件系统来说,2*3MB=6MB
对于FAT32文件系统来说,4*3MB=12MB
通过题目中计算: