操作系统学位考复习.docx
《操作系统学位考复习.docx》由会员分享,可在线阅读,更多相关《操作系统学位考复习.docx(38页珍藏版)》请在冰豆网上搜索。
![操作系统学位考复习.docx](https://file1.bdocx.com/fileroot1/2023-6/8/92c4a1ee-ea44-4926-a74a-5185dde37e2a/92c4a1ee-ea44-4926-a74a-5185dde37e2a1.gif)
操作系统学位考复习
一、填空题
1.分时操作系统的特征:
多路性、交互性、独占性。
2.信号量的物理意义:
当信号量>0时,表示可用资源的数目。
当信号量(逻辑上)<0时,其绝对值表示因请求该资源而被阻塞的进程数目。
3.进程系统中,各进程之间逻辑上的相互制约关系称为进程同步。
4.在多道程序系统中,进程之间存在着两种不同的制约关系同步和互斥。
同步:
是指进程间具有一定的逻辑关系。
互斥:
进程间在使用共享资源方面的约束关系。
5.将作业地址空间中的逻辑地址转换为储存中的物理地址称为地址重定位(映射,地址变换)
6.分区管理中,采用首次适应分配算法时,应将空闲区按地址递增次序排队,登记在空闲区表中。
7.在请求页式管理中,常用的页面淘汰算法有:
①最佳置换算法:
选择淘汰永不再使用或在最长时间内不再被访问的页面;
②先进先出(FIFO)算法:
选择淘汰最先进入内存的页面,即在内存中逗留时间最长的页面;
③最近最久未使用算法:
选择淘汰在离当前时刻最近一段时间内使用最少的页面。
8.实时操作系统与分时操作系统的主要区别:
及时性、高可靠性
9.临界资源的概念:
一次仅允许一个进程访问的资源。
临界区:
指进程中访问临界资源的那段程序代码。
若一个进程已进入临界区,其他欲进入临界区的进程必须等待。
10.程序顺序执行时有三个特点:
顺序性、封闭性、可再线性。
11.分区分配中的存储保护通常采用界线寄存器和起址线长寄存器。
12.页表表目的主要内容包括:
页号和块号。
13.在请求页式存储管理中采用FIFO(先进先出)页面淘汰算法,当分配的页面数增加时,缺页中断的页数可能增加也可能减少。
14.采用多道程序设计技术能充分的发挥CPU与外设并行工作的能力。
15.进程在运行过程中有三种基本状态:
运行状态、就绪状态、等待状态。
16.将进程的PCB链接在一起,就形成了进程队列。
17.由n个进程共享同一个临界资源,若使用信号量机制实现对临界资源的互斥访问,则信号量值的变化范围是+1~-(n-1)
18.把逻辑地址转化为物理地址,称为地址映射(重定位)。
19.静态重定位是在程序装入内存时进行。
动态重定位是在程序执行时进行。
20.最短寻道时间优先算法是指选择与当前磁头所在磁道距离最近的请求作为下一次服务的对象。
21.操作系统的主要性能参数指标有吞吐量和利用率。
吞吐量是指单位时间内系统处理的作业量。
利用率是指在一个给定时间内,系统的一个指定成分被使用的时间比例。
22.进程主要有程序段、数据段、PCB三部分内容组成。
其中PCB是进程存在的唯一标志,而程序段部分可以为其他进程共享。
23.用PV操作管理临界区时,任何一个进程在进入临界区之前应调用P操作,退出临界区时应调用V操作。
24.在一个单处理机系统中,若有5个用户进程,且假设当前时刻为用户态,则处于就绪状态的用户进程,最多有4个,最少有0个。
25.重定位的方式有:
静态重定位、动态重定位。
26.在断页式存储管理系统中,每道程序都有一个断表和一组页表
27.从用户的观点出发所看到的文件的组织形式称为文件的逻辑结构。
从实现的观点出发文件在外存上的有效组织形式称为文件的物理结构。
28.操作系统有四个模块组成:
处理机管理功能,存储器管理功能,设备管理功能,文件管理功能。
29.进程是程序的一次执行。
二、选择题
1.从用户的观点看,操作系统是A。
A.用户与计算机之间的接口
B.控制和管理计算机资源的软件
C.合理地组织计算机工作流程的软件
D.由若干层次的程序按一定的结构组成的有机体
2.所谓B是指将一个以上的作业放入主存,并且同时处于运行状态,这些作业共享处理机的时间和外围设备等其他资源。
A.多重处理
B.多道程序设计
C.实进处理
D.共行执行
3.如果分时操作系统的时间片一定,那么B,则响应时间越长。
A.用户数越少
B.用户数越多
C.内存越少
D.内存越多
4.若把操作系统看作计算机系统资源的管理者,下列的D不属于操作系统所管理的资源。
A.程序
B.内存
C.CPU
D.中断
5.在分时操作系统环境下运行的作业通常称为C。
A.后台作业
B.长作业
C.终端型作业
D.批量型作业
6.作业的四种状态:
提交,后备,运行,完成。
作业调度程序从处于D状态的队列中选取适当的作业投入运行。
A.运行
B.提交
C.完成
D.后备
7.OS是对C进行管理的。
A.软件
B.硬件
C.计算机资源
D.应用程序
8.用户使用操作系统通常有三种手段,它们是终端命令、系统调用命令和C。
A.计算机高级指令
B.宏命令
C.作业控制语言
D.汇编语言
9.既考虑作业等待时间,又考虑作业执行时间的调度算法是A。
A.响应比高者优先
B.短作业优先
C.优先级调度
D.先来先服务
10.分时操作系统通常采用B策略为用户服务。
A.可靠性和灵活性
B.时间片轮转
C.时间片加权分配
D.短作业优先
11.在进程管理中,当C时,进程从阻塞状态变为就绪状态。
A.进程被进程调度程序选中
B.等待某一事件
C.等待的事件发生
D.时间片用完
12.P、V操作是A。
A.两条低级进程通信原语
B.两组不同的机器指令
C.两条系统调用命令
D.两条高级进程通信原语
1.存储管理
2.多道程序
3.时间片轮转
4.等待时间发生时
5.有一个等待。
?
?
?
?
6.就绪状态(时间片用空)
7.PCB
8.作业控制块
9.周转时间
10.处理机管理→进程调度
11.利用率
12.通道?
?
中是从中断机构发展起的
13.执行状态,就绪→运行被进程调度程序选中
14.短作业优先
15.OS是针对……
16.PV操作是两条低级通信原语
17.OS允许在一台主机的多个终端……
18.实时操作……作出响应
三、解析题
1.分时操作系统和实时操作系统进行比较。
(1)多路性实时信息处理系统与分时系统一样具有多路性。
系统按分时原则为多个终端用户服务;而对实时控制系统,其多路性则主要表现在经常对多路的现场信息进行采集以及对多个对象或多个执行机构进行控制。
(2)独立性实时信息处理系统与分时系统一样具有独立性。
每个终端用户在向实时系统提出服务请求时,是彼此独立地操作,互不干扰;而在实时控制系统中信息的采集和对对象的控制,也都是彼此互不干扰。
(3)及时性实时信息系统对实时性的要求与分时系统类似,都是以人所能接受的等待时间来确定;而实时控制系统的及时性,则是以控制对象所要求的开始截止时间或完成截止时间来确定的,一般为秒级、百毫秒级,甚至有的要低于100微秒。
(4)交互性实时信息处理系统虽也具有交互性,但这里人与系统的交互,仅限于访问系统中某些特定的专用服务程序。
它不象分时系统那样能向终端用户提供数据处理服务、资源共享等服务。
(5)可靠性分时系统虽然也要求系统可靠,相比之下,实时系统则要求系统高度可靠。
因为任何差错都可能带来巨大的经济损失、甚至无法预料的灾难性后果。
因此,在实时系统中,往往都采取了多级容错措施,来保证系统及数据的安全。
2.进程与程序的主要区别是什么?
答:
1.进程是一次执行的过程,是动态概念;程序是一组有序指令的集合,是静态概念
2.一个进程可执行一个或多个程序;反之,一个程序也可由一个或多个进程来完成
3.程序可永远保存,进程具有生命周期.
4.进程是一个独立的运行单位,是提供资源利用和资源分配的独立单位,进程具有独立性,但有时有些进程之间又具有互相制约的关系,而程序不具有这种特性.
或:
(试从动态性、并发性和独立性上比较进程和程序)?
答:
(1)动态性:
进程既然是进程实体的执行过程,因此,动态性是进程最基本的特性。
动态性还表现为:
“它由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤消而消亡”。
可见,进程有一定的生命期。
而程序只是一组有序指令的集合,并存放在某种介质上,本身并无运动的含义,因此,程序是个静态实体。
(2)并发性:
所谓进程的并发,指的是多个进程实体,同存于内存中,能在一段时间内同时运行。
并发性是进程的重要特征,同时也成为OS的重要特征。
引入进程的目的也正是为了使其程序能和其它进程的程序并发执行,而程序是无法并发执行的。
(3)独立性:
进程实体是一个能独立运行的基本单位,也是系统中独立获得资源和独立调度的基本单位。
凡未建立进程的程序,都不能作为作为一个独立的单位参加运行
3.文件管理系统为什么要设置打开文件、关闭文件命令?
①操作系统需要大量的用户文件,而访问一个文件需要查询目录,有时甚至需要多次查询目录。
由于文件目录与文件一起放置在辅存上,当存许文件时,必须到辅存上读取文件目录信息,从中获得文件存放的地址,然后再去存取文件。
这样一来,文件信息的存取将花费很很多时间。
如果将整个文件内容放入虽然可以提高读取速度,但这要占用大量主存空间,显然这也是不可取的。
②实际上在一段时间内,使用文件的数量总是有限的。
因此只要将目录当前要使用的那些文件目录表复制到内存中就可以了。
这样,既不占用太多的主存空间,又可显著提高查阅文件的速度。
因此,大多数操作系统中,设置了打开文件、关闭文件这两个操作。
③打开文件完成的功能,是将文件的有关目录信息复制到主存的活动目录表中,以建立用户和这个文件的联系。
④关闭文件完成的功能,用户宣布这个文件当前不再使用,系统将其在主存中相应目录信息删除。
因而,也就切断了用户和这个文件的联系。
4.什么是虚拟设备?
为什么要在操作系统中引入虚拟设备?
①虚拟设备是指通过虚拟技术,将一台独占设备变为若干台虚拟设备,供若干个用户进程同时使用,通常把这种通过虚拟技术处理后的设备称为虚拟设备。
②在操作系统中,引入虚拟设备是为了克服独占设备速度较慢,降低设备资源利用率的缺点,从而提高了设备利用率。
6.为什么说采用有序资源分配法不会产生死锁?
答:
系统将所有的资源按类型进行线性的排队,并且给于不同序号,所有的进程对资源的请求必须严格按照资源序号递增的次序,这样所形成的资源分配图不可能出现环路。
总有一个进程占有较高的序号资源,他继续请求的资源必然时空闲的,因此进程可继续推进,从而避免死锁发生。
答:
假设系统中有m类资源、n个进程,分别用R1、R2、…、Rm(1、2、…、m可看作资源编号)和P1、P2、…、Pn表示。
根据有序资源分配法可知,进程申请资源时必须按照资源编号的升序进行,即任何进程在占有了Ri类资源后,再申请的资源Rj的编号j一定大于i。
因此在任一时刻,系统中至少存在一个进程Pk,它占有了较高编号的资源Rh,且它继续请求的资源必然是空闲的,因而Pk可以一直向前推进直至完成,当Pk运行完成后即会释放它所占有的所有资源;在Pk完成之后,剩下的进程集合中同样会存在一个进程,它占有了较高编号的资源,且它继续请求的资源必然是空闲的,因而它可以向前推进直至完成;以此类推,所有进程均可运行完成,故不会发生死锁。
7.一个操作系统有20个进程,竞争使用65个同类资源,申请方式是逐个进行的,一旦某进程获得它所需要的全部资源,则立即归还所有资源,每个进程最多使用3个资源。
若仅考虑这类资源,该系统有无可能产生死锁,为什么?
【解】若仅考虑同一类资源的分配,则不会产生死锁。
因为死锁产生的原因有两点:
(1)竞争资源,当系统中供多个进程所共享的资源,不足以同时满足它们的需要时,引起它们对资源的竞争而产生死锁;
(2)进程推进顺序非法,进程在运行过程中,请求和释放资源的顺序不当,导致了进程死锁。
产生死锁的必要条件:
a互斥条件(进程对所分配到的资源进行排他性使用,即在一段时间内某资源只由一个进程占有。
如果此时还有其他进程要求该资源,要求者只能阻塞,直到占有该资源的进程用毕释放。
)b请求和保持条件(进程已经保持了至少一个资源,但又提出了新的资源要求,而该资源又已被其他进程占有,此时请求进程阻塞,但又对已经获得的其他资源保持不放。
)c不剥夺条件(进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完后由自己释放。
)d环路等待条件(在发生死锁时,必然存在一个进程——资源的环形链。
即进程集合{P0,P1,P2,……,Pn}中的P0正在等待一个P1占用的资源;P1正在等待一个P2占用的资源;……,Pn正在等待一个P0占用的资源。
)
在本题介绍的系统中,进程所需要的最大资源数为:
20*3=60,而系统中共有该类资源65个,其资源数目已足够系统内的各进程使用,因此绝不可能发生死锁。
8.试述分页系统和分段系统的主要区别。
书P160
(1)页是信息的物理单位,段是信息的逻辑单位。
(2)页的大小固定且由系统确定,段的长度却不固定。
(3)分页的作业地址空间是一维的。
分段的作业地址空间是二维的。
9、桌上有一空盘,允许存放一只水果。
爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。
规定当盘空时一次只能放一只水果供吃者取用,请用P、V原语实现爸爸、儿子、女儿三个并发进程的同步。
解:
设置3个信号量S、SO、SA,信号量S表示盘子是否为空,其初值为1;信号量SO表示盘中是否有桔子,其初值为0;信号量SA表示盘中是否有苹果,其初值为0。
同步描述:
intS=1;//表示盘子是否为空
intSO=0;//表示是否有橘子
intSA=0;//表示是否有苹果
main()
{
cobegin
father()
{
while
(1)
{
p(S);//盘子是否空
将水果放入盘中;
if(放入的是桔子)v(SO);
elsev(SA)
}
}
son()
{
while
(1)
{
p(SO);//盘子中有无桔子
从盘中取出桔子;
v(S);
吃桔子;
}
}
daughter()
{
while
(1)
{
p(SA);//盘子中有无苹果
从盘中取出苹果;
v(S);
吃苹果;
}
}
coend
}
10、哲学家甲请哲学家乙、丙、丁到某处讨论问题,约定全体到齐后开始讨论问题;在讨论的间隙4位哲学家进餐,每人进餐时都需使用刀、叉各一把,餐桌上的布置如图。
请用信号量及P、V操作说明这4位哲学家的同步、互斥过程。
解:
在本题中,应设置4个信号量fork1、fork2、knife1、knife2,其初值均为1,分别表示资源叉1、叉2、刀1、刀2是否可用。
同步描述如下:
intfork1=1;
intfork2=1;
intknife1=1;
intknife2=1;
main()
{
cobegin
Pa()
{
while
(1)
{
p(knife1);
p(fork1);
进餐;
v(knife1);
v(fork1);
讨论问题;
}
}
Pb()
{
while
(1)
{
p(knife2);
p(fork1);
进餐;
v(knife2);
v(fork1);
讨论问题;
}
}
Pc()
{
while
(1)
{
p(knife2);
p(fork2);
进餐;
v(knife2);
v(fork2);
讨论问题;
}
}
Pd()
{
while
(1)
{
p(knife1);
p(fork2);
进餐;
v(knife1);
v(fork2);
讨论问题;
}
}
coend
}
11、设公共汽车上,司机和售票员的活动分别为:
司机的活动:
启动车辆;正常行车;到站停车;
售票员活动:
关车门;售票;开车门;
在汽车不断地到站、停车、行驶过程中,这两个活动有什么同步关系?
用信号量和P、V操作实现他们的同步。
解:
在汽车行驶过程中,司机活动与售票员活动之间的同步关系为:
售票员关车门后,向司机发开车信号,司机接到开车信号后启动车辆,在汽车正常行驶过程中售票员售票,到站时司机停车,售票员在车停后开车门让乘客上下车。
因此司机启动车辆的动作必须与售票员关车门的动作取得同步;售票员开车门的动作也必须与司机停车取得同步。
设置2个信号量:
s1、s2,s1表示是否允许司机启动汽车,其初值为0;s2表示是否允许售票员开门,其初值为0。
用P、V原语描述如下:
ints1=0;//是否允许司机启动汽车
ints2=0;//是否允许售票员开门
main()
{
cobegin
driver()
{
while
(1)
{
p(s1);//刚开始肯定阻塞,等BUSMAN进程释放!
启动汽车;
正常行车;
到站停车;
v(s2);//通知售票员开门
}
}
busman()
{
while
(1)
{
关车门;
v(s1);//通知司机可以开车了
售票;
p(s2);//判断是否可以开门
开车门;
上下乘客;
}
}
coend
}
12、图给出了4个进程合作完成某一任务的前驱图,试说明这4个进程间的同步关系,并用P、V操作描述它。
解:
图说明任务启动后S1先执行。
当S1结束后,S2、S3可以开始执行。
S2、S3完成后,S4才能开始执行。
进程同步描述如下:
定义信号量:
a2=0;//表示S2能否开始
b2=0;//表示S2是否结束
a3=0;//表示S3能否开始
b3=0;//表示S3是否结束
main()
{
cobegin
S1()
{
S1
v(a2);
v(a3);
}
S2()
{
p(a2);
S2
v(b2);
}
S3()
{
p(a3);
S3
v(b3);
}
S4()
{
p(b2);
p(b3);
S4
}
Coend
}
13、.设有4道作业,它们的提交时间及执行时间如下:
作业号
提交时间
执行时间
1
8.0
2.0
2
8.3
0.5
3
8.5
0.1
4
9.0
0.4
试计算在单道环境下,采用先进先服务调度算法(FCFS)和最短作业优先调度算法(SJF)时的平均周转时间和平均带权周转时间并指出它们的调度顺序,(时间单位:
小时,以十进制进行计算)
完成时间=开始时间+运行时间,等待时间=开始时间-提交时间,周转时间=等待时间+运行时间=完成时间-提交时间,带权周转时间=周转时间/运行时间,响应比时间=(等待时间+运行时间)/运行时间
解:
若采用先来先服务调度算法
作业号
提交时间
执行时间
开始时间
完成时间
周转时间
带权周转时间
1
8.0
2.0
8.0
10.0
2.0
1.0
2
8.3
0.5
10.0
10.5
2.2
4.4
3
8.5
0.1
10.5
10.6
2.1
21.0
4
9.0
0.4
10.6
11.0
2.0
5.0
调度顺序为1,2,3,4
平均周转时间:
T=(2.0+2.2+2.1+2.2)/4=2.075
平均带权周转时间:
W=(1.0+4.4+21.0+5.0)/4=7.25
若采用短作业优先调度算法
作业号
提交时间
执行时间
开始时间
完成时间
周转时间
带权周转时间
1
8.0
2.0
8.0
10.0
2.0
1.0
2
8.3
0.5
10.5
11.0
2.7
5.4
3
8.5
0.1
10.0
10.1
1.6
16.0
4
9.0
0.4
10.1
10.5
1.5
3.75
调度顺序为1,3,4,2
平均周转时间:
T=(2.0+2.7+1.6+1.5)/4=1.95
平均带权周转时间:
W=(1.0+5.4+16.0+3.75)/4=6.5375
结论:
SJF的平均周转时间和平均带权周转时间都比FCFS低。
若采用响应比高者优先调度算法
作业号
提交时间
执行时间
开始时间
完成时间
周转时间
带权周转时间
1
8.0
2.0
8.0
10.0
2.0
1.0
2
8.3
0.5
10.1
10.6
2.3
4.6
3
8.5
0.1
10.0
10.1
1.6
16.0
4
9.0
0.4
10.6
11.0
2.0
5.0
调度顺序为1,3,2,4
平均周转时间:
T=(2.0+2.3+1.6+2.0)/4=1.975
平均带权周转时间:
W=(1.0+4.6+16+5.0)/4=6.65
14、今有三个批处理作业,第一个作业10:
10到达,需要执行2小时;第二个作业在10:
10到达,需要执行1小时;第三个作业10:
25到达,需要执行25分钟。
分别采取如下三种作业调度算法:
(老师给的最后的一组数字中需要执行时间为20分钟)
调度算法1:
作业号
到达时间
开始执行时间
执行结束时间
1
10:
00
10:
00
12:
00
2
10:
10
12:
00
13:
00
3
10:
25
13:
00
13:
25
调度算法2:
作业号
到达时间
开始执行时间
执行结束时间
1
10:
00
11:
50
13:
50
2
10:
10
10:
50
11:
50
3
10:
25
10:
25
10:
50
调度算法3:
作业号
到达时间
开始执行时间
执行结束时间
1
10:
00
10:
00
12:
00
2
10:
10
12:
25
13:
25
3
10:
25
12:
00
12:
25
(1)计算各调度算法下的作业平均周转时间。
(2)调度算法1、3分别是什么作业调度算法?
解:
(1)采用调度算法1时:
作业1的周转时间为2小时
作业2的周转时间为2.83小时
作业3的周转时间为3小时
平均周转时间为:
(2+2.83+3)/3=2.61小时
采用调度算法2时:
作业1的周转时间为3.83小时
作业2的周转时间为1.67小时
作业3的周转时间为0.42小时
平均周转时间为:
(3.83+1.67+0.42)/3=1.97小时
采用调度算法3时:
作业1的周转时间为2小时
作业2的周转时间为3.25小时
作业3的周转时间为2小时
平均周转时间为:
(2+3.25+2