当前位置:文档之家› 简答题汇总(整理)

简答题汇总(整理)

《操作系统》简答题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);题目程序段:beginN: integer;N:=3;cobeginPROCESS AbeginL1:N:=N+5;goto L1end;PROCESS BbeginL2:print(N);N:=0;goto L2end;coend;end;N:=0;V(S);goto L2end;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操作.过程如下beginS,SE,SW:SEmaphore;//S为两组不同进程的临界信号,SE,SW为各自临界信号 CountE,CountW:Interger;//分别为两种进程进入ab段的车辆数CountE:= CountW:= 0;//初始时ab段无车辆S:=SE:=SW:=1; //初始任何一边均可驶入CoBeginProcess EASTi (i=1,2,3...) //向东行驶进程可以有多个beginP(SE);//检查有无正在向东驶入或驶出的车辆(因为要访问本组进程的共享变量 CountE)if CountE=0 then P(S);//检查向东行驶车辆数是否为0//如果为0时,要检查是否有向西行驶的车辆.//P(S)的作用就是给ab段上的信号S-1,//如果原来有西行车辆,则操作后S小于0,本进程等待,//如果原来没有,则S=0,禁止西行车辆进入ab段通行.//如果CountE不为0,说明已经有本方向车辆通行,//就不必对ab段使用信号进行处理,直接进入ab段.CountE:=CountE+1;//向东行驶车辆数增加1.V(SE); //允许同样向东行驶的车辆进程通行pass(ab);//车辆驶过P(SE); //又要访问本组进程临界区了CountE:=CountE-1;//车子驶出ab段.if CountE=0 then V(S);// 如果ab段无向东行驶车辆则允许ab段由向西行驶进程使用.V(SE);//本组临界区访问结束,允许其他东行车辆进入或离开ab段end;Process WESTj(j=1,2,3...)//向西行驶进程beginP(SW); //本进程与向东行驶的过程类同,只是共享变量和信号变量不同.if CountW=0 then P(S);CountW:=CountW+1;//向西行驶车辆数增加.V(SW); //允许其他西行车辆进入pass(ba); //车辆驶过P(SW);CountW:=CountW-1;//车子驶出ab段.if CountW=0 then V(S);V(SW);end;coend;end;12.从操作系统提供的服务出发,操作系统可分哪几类?批处理操作系统、分时操作系统、实时操作系统、网络操作系统、分布式操作系统。

13.选择进程调度算法的准则是什么?(见课本:分面向用户和面向系统两个方面)14.进程调度中“可抢占”和“非抢占”两种方式,哪一种系统的开销更大?为什么?可抢占式会引起系统的开销更大。

可抢占式调度是严格保证任何时刻,让具有最高优先数(权)的进程占有处理机运行,因此增加了处理机调度的时机,引起为退出处理机的进程保留现场,为占有处理机的进程恢复现场等时间(和空间)开销增大。

15.试比较进程调度与作业调度的不同点① 作业调度是宏观调度,它决定了哪一个作业能进入主存。

进程调度是微观调度,它决定各作业中的哪一个进程占有中央处理器。

②作业调度是选符合条件的收容态作业装入主存。

进程调度是从就绪态进程中选一个占用处理器。

16.什么叫做覆盖?什么叫做交换?两种技术的主要作用是什么?覆盖就是若干个作业或某个作业的若干个程序段共享使用主存的某一个区域。

交换的概念(见课本)。

两种技术的主要作用都是从逻辑上对内存进行扩充,在程序执行期间能有效的节省内存空间。

简述在页式管理的主要思想。

1)虚拟空间划分称为若干大小相等的页。

2)内存物理空间划分称为与页大小相等的物理块。

3)进程可以实现在内存中不连续存放。

17.什么叫做可重入代码?可重入代码,又称纯代码,是一种允许多个进程同时访问的代码,但是不允许任何进程对其进行修改的代码。

但事实上,大多数代码在执行时都可能有些改变。

为此在每个进程中,必须配以局部数据区,将在执行中可能改变的部分,拷贝到该数据区,这样在程序执行时,只对属于该进程私有的数据区中的内容进行修改,而不去改变共享的代码,这时的共享代码就是可重入代码。

相关主题