搜索
您的当前位置:首页正文

操作系统习题解答

来源:小奈知识网


1.什么是与时间有关的错误?试举一例说明。

答:与时间有关的错误就是程序并发执行时若共享了公共变量,其执行结果将与并发程序执行的相对速度有关,即给定相同的初始条件,也可能会得到不同的结果。例如: While(誊抄未完成) {

cobegin copy; put; get; coend }

在这一并发语句中,各程序段的执行不是不相交的,他们含有相交的变量,输出过程引用了被复制过程所改变的变量,而复制过程由引用了被输入过程所改变的变量。从而产生与时间有关的错误。

2、什么是进程?进程与程序的主要区别是什么?

答:进程是指一个具有独立功能的程序关于某个数据集合的一次运行活动。进程与程序的主要区别是:(1)程序是指令的有序集合,其本身没有任何运行的含义,它是一个静态概念。而进程是程序在处理机上的一次执行过程,它是一个动态概念。程序可以作为一种软件资料长期保存,而进程则是有一定生命期的,它能够动态的产生和消亡。(2)进程是一个能独立运行的单位,能与其他进程并行地活动。(3)进程是竞争计算机系统有限资源的基本单位,也是进行处理机调度的基本单位。

3、什么是线程?线程与进程有什么区别?

答:线程是进程的一个实体,是CPU调度和分派的基本单位。线程和进程的区别:(1)线程一个可执行程序,它定义了初始代码和数据;(2)线程一个私用地址空间,它是进程可以使用的一组虚拟主存地址;(3)进程执行时所需要的系统资源,是由操作系统分配给进程的;(4)若系统支持线程运行,那么每个进程至少有一个执行线程。 4、(1)哪些程序必须有先后次序,其原因是什么?(2)哪些程序可以并发执行,其原因又是什么?

答:(1)I1先于I2和C1,C1先于P1和C2,P1先于P2;I2先于I3和C2,C2先于C3和P2;I3先于I4和C3。因为处理机的顺序性,有的程序段的执行只能按顺序执行。 (2)并发的程序有:I2和C1,I3、C2和P1,I4、C3和P2等。因为程序段的执行在时间上可以是重叠的。

5、进程有哪3种基本状态?在一个系统中为什么必须区分出这3种状态?

答:进程的三种基本的状态分别是运行状态,就绪状态和等待状态。因为在一个系统中,一个程序并不是自始至终连续不停地运行的,它与并发执行中的其他进程的执行相互制约的。它有时处于运行状态,有时又由于某种原因而停止运行处于等待状态,当使它暂停的原因消失后,它又进入准备运行状态。所以在一个进程的活动期间至少得分三个状态。 6、 教材P115第4-7题。 答:(1)发生变迁2是时间片到,变迁3是服务请求(请求I/O等),变迁4是服务完成/事件来到

(2)3→1,当某个进程发生变迁3时,就必然引起另一个进程的变迁1。因为当发生变迁3时,正在执行的进程从执行状态变为就绪状态,进程调度程序必然从就绪队列中选取一个进程投入运行,即发生变迁1。

2→1,当某个进程发生变迁2时,就必然引起另一个进程的变迁1。因为当发生

变迁2时,正在执行的进程从执行状态变为就绪状态,进程调度程序必然从就绪队列中选取一个进程投入运行,即发生变迁1。

3→2,某个进程的变迁3绝不可能引起另一个进程发生变迁2。这是因为当前执行

进程从执行状态变为等待状态,不可能同时又从执行状态变为就绪状态。

4→1,当处理机空闲且就绪队列为空时,某一进程的变迁4会引起该进程的变迁1。

因为此时处理机空闲,一旦某个进程发生变迁4,这就意味着有一个进程从等待状态变为就绪状态,因而调度程序就会将就绪队列中的此进程投入运行。 7、什么是PCB?它有什么作用?

答:PCB是进程控制块。其作用是:为了描述一个进程和其他进程以及系统资源的关系,为了刻画一个进程在各个不同时期所处的状态,人们采用了一个与进程相联系的数据块就是进程控制块。

8、试述临界资源与临界区的区别与联系。

答:区别:临界资源是指一次仅允许一个进程使用的资源。 访问临界资源的那段程序能够从概念上分离出来,称为临界区或临界段。

联系:共享临界资源的各进程都有访问临界资源的临界区,所以相对于同一临界资源会有若各个临界区,相对于同一公共变量的若干个临界区,则必须是一个进程执行完毕,出

了临界区,另一个进程才能进入它的临界区。

9、n个并发进程公用1个公共变量Q,写出用信号灯实现n个进程互斥时的程序描述,给出信号灯值的取值范围,并说明每个取值的物理意义。

答:定义信号量:mutex=1所有进程都执行p (mutex) 使用共享变量 v (mutex) 的操作。信号量的取值从1-n到1。 10.教材P116第4-10题(图a)

main(){ int S2=0;int S3=0;int S4=0;cobegin P1();P2();P3();P4(); coend } P1{…v(S2);v(S3);v(S4);} P2{ P(S2);…} P3{ P(P3)…} P4{ P(P4)…} 11.试用PV操作,实现教材P89图4.17所示的看病进程与化验进程的同步关系。

Mian() { int s1=0;int s2=0;cobegin labora();diagnosis(); coend} labora(){ while{ p(s1);化验工作;v(s2);}diagnosis() {while{ 看病;v(s1);p(s2);diagnosis;}}

12.在生产者-消费者问题中,设置了三个信号灯,一个用于互斥的信号灯mutex,其初值为1;另外两个信号灯是:full(初值为0,用以指示缓冲区内是否有物品)和empty(初值为n,表示可利用的缓冲区数目)。试用PV操作写出此时生产者—消费者问题的描述. Mian()

{int

full=0;int

empty=n;int

mutex=1;

cobegin

p1();p2();…;pm();c1();c2();…;ck(); coend} producer() {while{…生产一个产品;p(empty);p(mutex);送一个产品到有界缓冲区;v(metex);v(full);}} consumer(){ while{p(full);p(mutex);从有界缓冲区中取产品;v(mutex);v(empty)…消

费一个产品;}}

13.用PV操作实现下述问题的解。有一个笼子,可以放一只动物。农民总是放猪到笼子中,

而猎人总是放老虎到笼子中;一家餐馆专等笼子中的猪,而一家动物园专等笼子中的老虎。 Main() { int mutex=0;cobegin p1();p2(); coend} p1(){…p(mutex);cs1;v(mutex);…} p2(){…p(mutex)cs2;v(mutex)…}

14.(1)有错,把int s=-1改为int s3=0;(2)有错(3)有错 15. 什么是原语?请分别举例进程控制与进程通信中用到的原语。

答:原语通常由若干条指令组成,用来实现某个特定的操作,是一种特殊的系统调用,可以完成一个特定的功能,一般为外层软件所调用,执行时不可中断。举例:进程控制中:创建原语,唤醒原语等;进程通信中:SEND和RECEIVE原语。 16. 试述资源信息块和资源描述器的区别与联系。

答:资源描述器:描述各类资源的最小分配单位的数据结构称为RD;

资源信息块:为了对每类资源实施有效的分配所必须设置的相应的资源信息块。 17. 什么是死锁?试述死锁产生的必要条件和解决死锁问题的方法。

答:死锁:在两个或多个并发进程中,如果每个进程持有某种资源而又都等待着别的进程释放它或它们现在保持着的资源,否则就不能向前推进。此时,称这一组进程产生了死锁。 产生的必要条件:①互斥条件;②不剥夺条件(非抢占);③占有并等待(部分分配);④环路条件(循环等待)。 解决方法:①采用资源静态分配方法预防死锁;②采用资源动态分配、有控分配方法来避免死锁;③当死锁发生时检测出死锁,并设法修复;④忽略死锁,认为死锁不会发生。 18. 试比较静态分配和动态分配的优缺点 答:静态分配 优点:能够预防死锁。 缺点:①一个用户在作业运行之前可能提不出他的作业将要使用的全部设备;②用户作业必须等待,直到所有资源满足时才能投入运行。实际上某些资源可能要到运行后期才会用到;③一个作业运行期间,对某些设备的使用时间很少,甚至不会用到。 动态分配

优点:能够避免死锁,提高了资源的利用率。 缺点:①进程实际需要资源的顺序不一定与资源编号相一致;②仍然会造成资源的浪费。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top