简答题汇总(整理)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《操作系统》简答题
1.什么叫做多道程序设计?
多道程序设计是指在内存中同时装入几道作业,主机以交替的方式同时处理多道程序,允许这些作业在系统中交替地运行,当某道作业发出新的资源请求或等待输入/输出时,就放弃CPU,让另一道作业运行,使得处理机被充分利用。
2.作业在系统中有哪几种状态?
一个作业进入系统到运行结束,一般要经历进入、后备、运行和完成四个阶段,相应地,作业亦有进入、后备、运行和完成四种状态。
① 进入状态:作业的信息从输入设备上预输入到输入井,此时称为作业处于进入状态。
② 后备状态:当作业的全部信息都已输入,且由操作系统将其存放在输入井中,此时称作业处于后备状态。系统将所有处于后备状态的作业组成后备作业队列,等待作业调度程序的调度。
③ 运行状态:一个后备作业被作业调度程序选中,分配了必要的资源,调入内存运行,称作业处于运行状态。
④完成状态:当作业正常运行完毕或因发生错误非正常终止时,作业进入这完成状态。
3.什么叫做进程控制?进程控制主要的功能是什么?
进程控制就是通过调用系统原语实现对进程的各种管理和控制。
进程控制主要的任务就是创建进程、撤消进程和实现进程状态之间的切换。
4.叙述银行家算法的基本思想。(见课本)
5.在操作系统中引入线程的必要性。(或问:操作系统中为什么要引入线程?)
(1)进程是指一个具有独立功能的程序段对某个数据集在处理机上的执行过程,进程具有作为资源拥有和调度分派基本单位的两个属性。正是由于进程具有这两个基本属性,才构成了进程并发执行的基础。
(2)然而,为使程序能并发执行,系统还必须进行以下的一系列操作:
1)创建进程;2)撤消进程;3)进程切换。
由于进程是资源拥有的基本单位,因而在创建、撤消和切换中,系统必须为之付出较大的时空开销。正因为如此,在系统中设置的进程数目不宜过多,进程切换的频率也不宜过高,但这也就限制了并发程度的进一步提高。
(3)为了使多个程序更好地并发执行,同时减少时空开销,将进程的两个属性分开,由操作系统分开进行处理,也就是让进程作为资源拥有的基本单位,不频繁对之进行切换;让线程作为调度分派的基本单位,不同时作为独立分配资源的单位,使之轻装上阵运行。可以进一步提高程序并发执行的程度。
6.什么是进程同步?什么是进程互斥?(以前习题中有过答案,按那个也可以)
在异步环境下,相互合作的进程按照各自独立的速度向前推进,直到结束。但是在某些确定点上必须协调工作,当某个进程到达这些点后,等待另一个进程发来信息或完成某些操作,否则就不得不停下来等待其操作的完成,这种进程间的协同关系叫做进程的同步。
在操作系统中存在着诸多进程,系统中的资源数量往往少于进程的个数,由于进程在运行过程中争用系统资源,对于临界资源,只能一个进程使用完了,另一个进程才能使用,这种现象称为进程的互斥。
7.在生产者和消费者问题中,将V操作位置互换有无影响?互换P操作位置呢?说明原因。(理解一下即可)
因为V操作相当于释放资源,所以互换V操作的位置没有影响。
但是两个P 操作互换可能会产生死锁。
比如当生产者和消费者共享的缓冲区队列全空时。
不互换P 操作位置时,如果消费者进程试图取数会因为无法发现数据而被阻塞,但是生产者进程还是可以继续产生数据,往缓冲区队列里送的。如果将两个P 操作互换位置,同样情况下,消费者进程取不到数据被阻塞,生产者进程也不能送入数据被阻塞,从而发生死锁现象。
8.解释进程的顺序性和并发性。
答:目前使用的计算机基本上是冯.诺依曼式结构,其基本特点是处理器顺序执行指令。进程在顺序的处理器上的执行是严格按顺序进行的,这就是进程的顺序性。当一个进程独占处理器顺序执行时,具有两个特性:一、封闭性 二、可再现性。
在多道程序设计系统中,多个作业可以同时执行,一个作业又由多个进程协助完成,当一个进程的工作没有全部完成之前,另一个进程就可以开始工作,它们的执行在时间上是重迭的。我们把它们称为是“可同时执行的”。若系统中存在一组可同时执行的进程,则就该进程就具有并发性,可同时执行的进程称为“并发进程”。
9.并发进程执行时一定会产生与时间有关的错误吗?为什么?
答:并发进程由于其执行的随机性,执行速度不能由自己控制,往往会出现一个进程对另一进程的影响不可预测的情况,从而产生与时间有关的错误。但是并发进程并不一定都会产生与时间有关的错误:
首先,无关的并发进程不会产生与时间有关的错误;
其次,有交往的并发进程如果不交叉访问共享变量,也不会产生与时间有关的错误。
产生这类错误根本原因在于对共享变量不受限制的使用。
10.两个并发进程的程序如下: (信号量机制实现进程同步 和互斥)
答案程序段: begin N: integer; N:=3; S:SEmaphore; S:=1 cobegin PROCESS A begin L1:P(S); N:=N+5; V(S); goto L1 end; PROCESS B begin L2:P(S); print(N);
题目程序段:
begin
N: integer;
N:=3;
cobegin
PROCESS A
begin
L1:N:=N+5;
goto L1
end;
PROCESS B
begin
L2:print(N);
N:=0;
goto L2
end;
coend;
end;
N:=0;
V(S);
goto L2
end;
coend;
end;
PROCESS A先执行了三个循环后,PROCESS A和PROCESS B又并发执行了一个循环,写出可能出现的打印值。正确的打印值应该是多少?请用PV操作进行管理,使它们并发执行时不出现与时间有关的错误。
解:可能出现的打印值为18或23。因为N的初始值为3,当进程A执行三个循环后,N的值为18,此时Process A和ProcessB并发执行,如果正巧是B先进入CPU执行的话,打印值就是18,打印时A进程为N增加的值就没有被记录下来。正确的打印值应该是23。PV操作的管理程序如答案程序段。
11.a,b两点之间是一段东西向的单行车道,现要设计一个管理自动系统,管理规则如下:当ab之间有车辆在行驶时同方向的车可以同时驶入ab段,但另一方向的车必须在ab段外等待;当ab之间无车辆在行驶时,到达a点(或b点)的车辆可以进入ab段,但不能从a 点和b点同时驶入;当某方向在ab段驶出了ab段且暂无车辆进入ab段时,应让另一方向等待的车辆进入ab段行驶。请用PV操作为工具,对ab段实现正确管理以保证行驶安全。(信号量机制实现进程同步和互斥)
解:在这里有两组进程,一组是向东行驶进程,一组是向西行驶进程,他们的相关临界区是ab 道路.同时还要注意,各自进程还有相关临界区,那就是同方向进程的车辆总数(进入时加1,出ab段时要减1). 在各组进程访问自己的共享变量(本进程车辆数)时要进行PV操作,同时,当访问两组进程的共享变量(ab段)时也要进行PV操作.
过程如下
begin
S,SE,SW:SEmaphore;//S为两组不同进程的临界信号,SE,SW为各自临界信号 CountE,CountW:Interger;//分别为两种进程进入ab段的车辆数
CountE:= CountW:= 0;//初始时ab段无车辆
S:=SE:=SW:=1; //初始任何一边均可驶入
CoBegin
Process EASTi (i=1,2,3...) //向东行驶进程可以有多个
begin
P(SE);//检查有无正在向东驶入或驶出的车辆(因为要访问本组进程的共享变量 CountE)
if CountE=0 then P(S);
//检查向东行驶车辆数是否为0
//如果为0时,要检查是否有向西行驶的车辆.
//P(S)的作用就是给ab段上的信号S-1,
//如果原来有西行车辆,则操作后S小于0,本进程等待,