操作系统复习答案.docx
《操作系统复习答案.docx》由会员分享,可在线阅读,更多相关《操作系统复习答案.docx(40页珍藏版)》请在冰豆网上搜索。
操作系统复习答案
操作系统复习
第一部分操作系统引论
(1)
⏹操作系统的主要功能及基本特征
操作系统的主要功能
一、处理机管理功能1.进程控制2.进程同步3.进程通信4.调度
二、存储器管理功能1.内存分配2.地址映射3.内存保护4.内存扩充
三、设备管理功能缓冲管理、设备分配和设备处理,以及虚拟设备等功能
四、文件管理功能1.文件存储空间的管理2.目录管理3.文件的读/写管理和保护文件安全性管理提供用户接口
五、OS为用户提供良好接口
基本特征:
1.并发
并行性与并发性这两个概念是既相似又区别的两个概念。
并行性是指两个或者多个事件在同一时刻发生,这是一个具有微观意义的概念,即在物理上这些事件是同时发生的;而并发性是指两个或者多个事件在同一时间的间隔内发生,它是一个较为宏观的概念。
2.共享(sharing)
所谓共享是指,系统中的资源可供内存中多个并发执行的进程共同使用。
由于资源的属性不同,故多个进程对资源的共享方式也不同,可以分为:
互斥共享方式和同时访问方式
3.虚拟(virtual)
是指通过技术把一个物理实体变成若干个逻辑上的对应物。
在操作系统中虚拟的实现主要是通过分时的使用方法。
显然,如果n是某一个物理设备所对应的虚拟逻辑设备数,则虚拟设备的速度必然是物理设备速度的1/n。
4.异步(asynchronism)
进程以人们不可预知的速度向前推进,即进程异步性
⏹基本的操作系统及各自的特征
单道批处理系统(1、自动性2、顺序性3、单道性)
多道批处理系统:
(1)资源利用率高。
(2)吞吐量大。
(3)周转时间长。
(4)无交互能力(网:
1、多道性2、无序性3、调度性)
分时系统(1、多路性2、独立性3、及时性4、交互性)
实时系统(1、多路性2、独立性3、及时性4、交互性5、可靠性。
多级容错保证)
⏹操作系统的基本职能
操作系统的主要功能:
1处理机管理功能2存储器管理功能3设备管理功能4文件管理功能
操作系统具有如下几方面功能。
1.存贮管理。
为每个程序分配足够的存贮空间。
2.CPU管理。
为每一道程序分配一个优先数,优先数大的程序总是优先占有CPU。
采用一定调度方法,使各个终端按一定的时间片轮转方式轮流占用CPU。
3.设备管理。
控制外部设备的操作,以及在多个作业间分配设备。
从分配的角度看,外部设备可分为共享设备(可以同时为多个用户服务,例如磁盘机)和独占设备(在一段时间内只能为一个用户服务,如打印机)。
对于独占设备,系统可以按照一定策略把它轮流分配给请求使用的用户,也可以采用虚拟设备的方法,例如将行式打印机作为虚拟设备,用户的打印输出申请由操作系统先转换成写盘操作,待将打印信息暂时存盘,到适当时候由操作系统控制,成批向打印机输出,这种方法也叫假脱机打印。
它提供了设备效率,也避免了在用计高峰时间因输出操作而过多占用CPU时间。
4.文件管理。
向用户提供有关文件的建立、删除、读取、或写入信息方面的服务。
⏹为了使系统中所有的用户都能得到及时的响应,该操作系统应该是(分时系统)
第一部分操作系统引论
(2)
⏹设计批处理多道系统时,首先要考虑的是(系统效率和吞吐量)
⏹操作系统是一种(B)。
A.应用软件B.系统软件C.通用软件D.工具软件
⏹引入多道程序的目的
引入多道程序的目的在于充分利用CPU,减少CPU等待时间在计算机内存中同时存放若干道已开始运行且尚未结束的程序,它们交替运行,共享系统中的各种硬,软件资源,从而使出立即得到充分利用
(书)提高CPU的利用率;可提高内存和I/O设备利用率;增加系统吞吐量
⏹并发性
并发性是指两个或多个事件在同一时间间隔内发生。
在多道程序环境下,并发性是指在一段时间内,宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行。
倘若在计算机系统中有多个处理机,则这些可以并发执行的程序便可被分配到多个处理机上,实现并行执行,即利用每个处理机来处理一个可并发执行的程序,这样,多个程序便可同时执行。
第二部分进程管理
(1)
⏹进程的定义、结构、特征
较典型的进程定义有:
(1)进程是程序的一次执行。
(2)进程是一个程序及其数据在处理机上顺序执行时所发生的活动。
(3)进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
在引入了进程实体的概念后,我们可以把传统OS中的进程定义为:
“进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位”。
结构:
进程控制块(PCB)+数据段+程序段
特征:
1)结构特征:
进程控制块(PCB)+数据+程序段
2)动态性:
进程一次执行过程;产生、灭亡
3)并发性:
并发执行
4)独立性:
独立运行、独立分配资源、独立调度单位
5)异步性:
不可预知速度运行
⏹进程和程序的区别
进程与程序的区别
(1)程序是指令的有序集合,其本身没有任何运行的含义,是一个静态的概念。
而进程是程序在处理机上的一次执行过程,它是一个动态的概念。
(2)程序可以作为一种软件资料长期存在,而进程是有一定生命期的。
程序是永久的,进程是暂时的。
(3)进程更能真实地描述并发,而程序不能
(4)进程包括程序和数据+PCB两部分
(5)进程具有创建其他进程的功能,而程序没有
(6)同一程序同时运行于若干个数据集合上,它将属于若干个不同的进程。
也就是说同一程序可以对应多个进程
⏹前趋图P35
前趋图是一个有向无循环图,记为DAG,用于描述进城之间执行的前后关系
前趋图中的每个结点可以表示一个程序段或一个进程乃至一条语句,结点间的有向边表示两个结点之间存在偏序或前趋关系。
⏹进程的三种基本状态及转换图
(1)就绪(Ready)状态
(2)执行状态
(3)阻塞状态
⏹具有挂起状态的进程转换图
⏹临界资源?
临界区?
访问临界区的原则
答:
临界资源:
一次仅允许一个进程使用的共享资源
临界区:
在每个进程中访问临界资源的那段程序
访问临界区应遵循下述四条准则:
•
(1)空闲让进。
当无进程处于临界区时,应允许一个请求进入临界区的进程立即进入自己的临界区。
•
(2)忙则等待。
当已有进程进入临界区时,其它试图进入临界区的进程必须等待,以保证对临界资源的互斥访问。
•(3)有限等待。
对要求访问临界资源的进程,应保证在有限时间内能进入自己的临界区,以免陷入“死等”状态。
•(4)让权等待。
当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入“忙等”状态。
⏹进程间同步和互斥的含义
同步:
同步是进程间共同完成一项任务时直接发生相互作用的关系,同步进程间具有合作关系,在执行时间上必须按一定的顺序协调进行
互斥:
互斥是并发执行的多个进程由于竞争同一资源而产生的相互排斥的关系,互斥进程彼此在逻辑上是完全无关的,它们的运行不具有时间次序的特征
⏹在操作系统中,P操作和V操作的内容
P操作(Wait操作):
申请一个单位资源
V操作(Signal操作):
释放一个单位资源
⏹程序的并发执行和顺序执行特征
⏹并发执行特征:
(1)间断性:
执行-暂停-执行
(2)失去封闭性:
资源共享
(3)不可再现性:
结果不同
间断性;失去封闭性;不可再现性
顺序执行特征:
顺序性;封闭性;可再现性
第二部分进程管理
(2)
⏹对于整形信号量,在执行一次V操作时,信号量的值应(+1)
⏹当前进程因时间片用完而让出处理机时,该进程的状态转换(从执行状态到就绪状态)
⏹进程控制块是描述进程状态和特性的数据结构,一个进程(D)。
A、可以有多个进程控制块B、可以和其他进程共用一个进程控制块
C、可以没有进程控制块D、只能有惟一的进程控制块
⏹进程的高级通信机制不包括(D)
A、共享存储器系统B、消息传递系统
C、管道通信D、RAID
第二部分进程管理(3)
⏹多个进程的实体能存在于同一内存中,在一段时间内都得到运行。
这种性质称作进程的(B)。
A、动态性B、并发性C、调度性D、异步性
⏹某进程由于需要从磁盘上读入数据而处于阻塞状态。
当系统完成了所需的读盘操作后,此时该进程的状态将(从阻塞到就绪)。
⏹任何两个并发进程之间可能存在(同步或互斥关系)
⏹操作系统中,进程分类
第二部分进程管理(4)
⏹桌上有一空篮,最多允许放一只彩球。
爸爸可向盘中放一个红色彩球或放一个绿色彩球,儿子专等拿取盘中的红球玩耍,女儿专等拿取绿球玩耍。
用P、V操作实现爸爸、儿子、女儿三个并发进程的同步。
类似:
桌上有一空盘,允许存放一只水果。
爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。
规定当盘空时一次只能放一只水果供吃者取用,请用P、V原语实现爸爸、儿子、女儿三个并发进程的同步。
分析在本题中,爸爸、儿子、女儿共用一个盘子,盘中一次只能放一个水果。
当盘子为空时,爸爸可将一个水果放入果盘中。
若放入果盘中的是桔子,则允许儿子吃,女儿必须等待;若放入果盘中的是苹果,则允许女儿吃,儿子必须等待。
本题实际上是生产者-消费者问题的一种变形。
这里,生产者放入缓冲区的产品有两类,消费者也有两类,每类消费者只消费其中固定的一类产品。
解:
在本题中,应设置三个信号量S、So、Sa,信号量S表示盘子是否为空,其初值为l;信号量So表示盘中是否有桔子,其初值为0;信号量Sa表示盘中是否有苹果,其初值为0。
同步描述如下:
intS=1;
intSa=0;
intSo=0;
main()
{
cobegin
father(); /*父亲进程*/
son(); /*儿子进程*/
daughter(); /*女儿进程*/
coend
}
father()
{
while
(1)
{
P(S);
将水果放入盘中;
if(放入的是桔子)V(So);
else V(Sa);
}
}
son()
{
while
(1)
{
P(So);
从盘中取出桔子;
V(S);
吃桔子;
}
}
daughter()
{
while
(1)
{
P(Sa);
从盘中取出苹果
V(S);
吃苹果;
}
}
第二部分进程管理(5)
⏹四个进程A、B、C、D都要读一个共享文件F,系统允许多个进程同时读文件F,但限制是:
进程A和进程C不能同时读文件F,进程B和进程D也不能同时读文件F。
请回答下面的问题:
(1)应定义的信号量及初值:
(2)试采用适当的P、V操作来完成各进程对文件的读操作,以保证它们能正确并发工作:
A() B() C() D()
{ { { {
[1]; [3]; [5]; [7];
readF; readF; readF; readF;
[2]; [4]; [6]; [8];
} } } }
思考题解答:
(1)定义二个信号量S1、S2,初值均为1,即:
S1=1,S2=1。
其中进程A和C使用信号量S1,进程B和D使用信号量S2。
(2)从[1]到[8]分别为:
P(S1)V(S1)P(S2)V(S2)P(S1)V(S1)P(S2)V(S2)
第二部分进程管理(6)
⏹用P、V操作解决下图之同步问题:
一组get进程负责往缓冲池S中输入数据,一组put进程负责从缓冲池S中取出数据用于处理(设缓冲池中有缓冲区N个)。
第二部分进程管理(7)
⏹如图所示,四个进程和四个信箱,进程间借助相邻信箱传递消息,即Pi每次从Mi中取一条消息,经加工后送入Mi+1,其中Mi(i=0~3)分别可存放3,3,2,2个消息。
初始状态下,M0装了3条消息,其余为空。
试以P、V操作为工具,写出Pi(i=0~3)的同步工作算法。
答:
同步信号量:
SM[i](i=0~3),信箱Mi中的消息数目,初值分别为3,0,0,0
TM[i](i=0~3),信箱Mi中还可容纳的消息数目,初值分别为0,3,2,2
互斥信号量:
Mutex[i](i=0~3),
临界资源信箱Mi,初值分别为1,1,1,1
P[i](i=0~3):
P(SM[i]);
P(Mutex[i]);
从信箱M[i]中取消息;
V(Mutex[i]);
V(TM[i]);
加工;
P(TM[(i+1)mod4]);
P(Mutex[(i+1)mod4]);
放入信箱M[(i+1)mod4]中;
V(Mutex[(i+1)mod4]);
V(SM[(i+1)mod4]);
第二部分进程管理(8)
⏹动物园的饲养员喂黑熊,饲养员苹果到盆中,黑熊从盆中抓走苹果吃掉,盆中只能放一个苹果。
分别用饲养员进程、黑熊进程模拟饲养员喂黑熊的过程,请用P、V操作(即wait和signal)利用信号量机制实现这两个进程同步
(提示:
进程饲养员、黑熊互斥使用盆,饲养员要用空盆,黑熊要吃盆中的苹果)
解
设置三个信号量:
互斥信号量S=1—盆、S1=1—空间、S2=0—苹果
饲养员黑熊
P(S1)P(S2)
P(S)P(S)
〈放〉〈取〉
V(S)V(S)
V(S2)V(S1)
第二部分进程管理(9)
设有一台计算机,有两条I/O通道,分别接一台卡片输入机和一台打印机。
卡片机把一叠卡片逐一输入到缓冲区B1中,加工处理后再搬到缓冲区B2中,并在打印机上印出,问:
(1)系统要设几个进程来完成这个任务?
各自的工作是什么?
(2)这些进程间有什么样的相互制约关系?
(3)用P、V操作写出这些进程的同步算法。
答:
①系统可设三个进程来完成这个任务:
R进程负责从卡片输入机上读入卡片信息,输入到缓冲区B1中;C进程负责从缓冲区B1中取出信息,进行加工处理,之后将结果送到缓冲区B2中;P进程负责从缓冲区B2中取出信息,并在打印机上印出。
②R进程受C进程影响,B1放满信息后R进程要等待——等C进程将其中信息全部取走,才能继续读入信息;C进程受R进程和P进程的约束:
B1中信息放满后C进程才可从中取出它们,且B2被取空后C进程才可将加工结果送入其中;P进程受C进程的约束:
B2中信息放满后P进程才可从中取出它们,进行打印。
第二部分进程管理(10)
有两个优先级相同的进程P1和P2,各自执行的操作如右,信号量S1和S2初值均为0。
试问P1、P2并发执行后,x、y、z的值各为多少?
P1:
P2:
begin begin
y:
=1; x:
=1;
y:
=y+3//y=4; x:
=x+5;//x=6
V(S1); P(S1);
z:
=y+1//z=5; x:
=x+y;//x=10
P(S2); V(S2);
y:
=z+y z:
=z+x;
end. end.
10,9,15 x=10,y=19,z=15 ;10,9,5
第二部分进程管理(11)
有一个阅览室,读者进入时必须先在一张登记表上进行登记,该表为每一座位列一表
目,包括座号和读者姓名,读者离开时,要删掉登记的信息,阅览室共有100个座试
问:
(1)为描写读者动作,应编写几个程序,应设置几个进程?
进程与程序间关系如何?
(2)试用P、V操作写出这些进程间的同步算法。
答:
(1)应编写1个程序;设置2个进程;
进程与程序间的对应关系是:
多对1。
(2)begin
信号量S1:
=100(有100个座位)
信号量S2:
=0(阅读者)
信号量S:
=1
cobegin
P1:
repeat
P(S1);
P(S);
登记信息;
V(S);
V(S2)
就座,阅读;
untilfalse
coend
end
第二部分进程管理(12)
动物园的饲养员喂黑熊,饲养员苹果到盆中,黑熊从盆中抓走苹果吃掉,盆中只能放一个苹果。
分别用饲养员进程、黑熊进程模拟饲养员喂黑熊的过程,请用P、V操作(即wait和signal)利用信号量机制实现这两个进程同步
解:
设置三个信号量:
互斥信号量S=1—盆、S1=1—空间、S2=0—苹果
饲养员黑熊
P(S1)P(S2)
P(S)P(S)
〈放〉〈取〉
V(S)V(S)
V(S2)V(S1)
第二部分进程管理(13)
设公共汽车上有一位司机和一位售票员,它们的活动如下,请分析司机与售票员之间的同步关系,如何用PV操作实现。
司机
售票员:
启动车辆
售票
正常行车
开车门
到站停车
关车门
分析:
第一步:
确定进程间的关系。
司机到站停车后,售票员方可工作。
同样,售票员关车门后,司机才能工作。
所以司机与售票员之间是一种同步关系。
第二步:
确定信号量及其值。
由于司机与售票员之间要互通消息,司机进程设置一个私有信号量run,用于判断司机能否进行工作,初值为0。
售票员进程设置一个私有信号量stop,用于判断是否停车,售票员是否能够开车门,初值为0。
实现:
beginstop,run:
semaphore
stop:
=0;run:
=0;
cobegin
driver:
begin
L1:
P(run);
启动车辆;
正常行车;
到站停车;
V(stop);
goto L1;
end;
conductor:
begin
L2:
上乘客;
关车门;
V(run);
售票;
P(stop);
开车门;
下乘客;
gotoL2;
end;
coend;
end;
第二部分进程管理(14)
设自行车生产线上有一只箱子,其中有N个位置(N>=3)每个位置可放一个车架或一个车轮;又设有三个工人,其活动分别为:
工人1生产车架,工人2生产车轮;工人3组装自行车,用PV操作实现三个工人的合作。
信号量:
s箱子空位置=n;s1车架=0;s2车轮=0;mutex=1
信号量:
s箱子空位置=n;s1车架=0;s2车轮=0;mutex=1
cj车架最多位置=n-2;cl车轮最多位置=n-1
•工人1工人2
•RepeatRepeat
•加工一个车架加工一个车轮
P(cj)P(cl)
P(s)P(s)
P(mutex)P(mutex)
车架放入箱中车轮放入箱中
V(mutex)V(mutex)
V(s1)V(s2)
•工人3
•Repeat
P(s1);P(mutex)
•取一个车架;
V(mutex)
P(s2);P(s2);P(mutex)
•取2个车轮;
V(mutex)
V(s);V(s);V(s)
V(cj);V(cl);V(cl)
•组装一台自行车
第二部分进程管理(15)
用P.V操作解决下图之同步问题:
get进程负责往单缓冲区S中输入数据,copy进程负责将单缓中区S中的数据复制到单缓冲区T,put进程负责从单缓中区T中取出数据用于处理。
信号量ms:
1,s12:
0,mt:
1,s23:
0
Get进程copy进程put进程
RepeatRepeatRepeat
生产数据P(s12)P(s23)
P(ms)复制S数据从T中取数据
放入s中V(ms)V(mt)
V(s12)P(mt)Untilfalse
Untilfalse数据放入T中
V(s23)
Untilfalse
第三部分处理机调度
(1)
⏹处理机调度
答:
⏹进程的调度方式(抢占式调度和非抢占式调度)
⏹调度算法
答:
先来先服务调度算法FCFS
短作业(进程)优先调度算法SJ(P)F
高优先权优先调度算法
基于时间片的轮转调度算法
⏹死锁的原因,四个必要条件
答:
原因:
竞争资源引起进程死锁;进程推进顺序不当引起死锁
条件:
1.互斥条件:
指进程对所分配到的资源进行排他性使用,即在一段时间内某资源只由一个进程占用。
如果此时还有其他进程请求该资源,则请求者只能等待,直至占有该资源的进程用毕释放。
2.请求和保持条件:
指进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源又被其他进程占有,此时请求进程阻塞,但又对自己已获得的其他资源保持不放。
3.不剥夺条件:
指进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完时由自己释放。
4.环路等待条件:
指在发生死锁时,必然存在一个“进程——资源”的环形链,即进程集合{P0,P1,P2,…,Pn}中的P0正在等待一个P1占用的资源;P1正在等待一个P2占用的资源,……,Pn正在等待一个已被P0占用的资源。
⏹处理死锁的方法
答:
一、预防死锁——消除产生死锁的必要条件
二、避免死锁——分配资源时防止进入不安全状态
三、检测死锁——不预防死锁,出现死锁就解除
四、解除死锁——与检测死锁配合使用
⏹死锁的预防措施、优缺点
答:
1、摒弃“请求和保持”条件
静态资源分配法
优点:
算法简单、易于实现且很安全
缺点:
资源浪费严重,进程延迟运行。
2、摒弃“不剥夺”条件
系统规定,进程是逐个地提出对资源的要求的。
当一个已经保持了某些资源的进程,提出新的要求不被满足时必须释放它已经保持的所有资源,待以后需要