进程管理习题及答案 下载本文

一、判断题

1. ( )操作系统的所有程序都必须常驻内存。

2. ( )多道程序设计可以缩短系统中作业的执行时间。 3. ( )实时系统中的作业周转时间有严格的限制。 4. ( )进程获得处理机而运行是通过申请而得到的。 5. ( )同一个程序不能被创建成多个进程。

6. ( )子进程可以继承它的父进程所拥有的所有资源。

7. ( )对于临界区,最重要的是断定哪个进程先执行临界区里的那段程序。

8. ( )若进程A和进程B在临界区上互斥, 那么当A位于临界区内时不能打断它的

运行。

9. ( )进程间的互斥是一种特殊的同步关系。

10. ( )临界区是指进程中用于实现进程互斥的那段代码。

11. ( )资源的同时共享是指多个用户作业可以在同一时刻使用同一资源。 12. ( )并发性是指若干事件在同一时间间隔内发生。

13. ( )进程在运行中,可以自行修改自己的进程控制块PCB。 14. ( )进程申请CPU得不到满足时,其状态变为等待态。

15. ( )当一个进程从等待态变成就绪态,则一定有一个进程从就绪态变成运行态。 16. ( )进程状态的转换是由操作系统完成的,对用户是透明的。

17. ( )优先数是进程调度的重要依据,优先数大的进程首先被调度运行。 18. ( )不可抢占式动态优先数法一定会引起进程长时间得不到运行。

19. ( )进程调度的主要功能是从所有处于等待状态的进程中挑选一个\最合适\的进

程,创建好进程运行所需要的环境,然后把处理机分配给它。 20. ( )无限循环和无限延迟是一个概念。

21. ( )导致系统出现死锁的一种原因是某个用户作业发生了死循环。 22. ( )一旦出现死锁,所有进程都不能运行。 23. ( )所有进程都挂起时系统陷入死锁。

24. ( )参与死锁的进程至少有两个已经占有资源。

25. ( )有M个进程的操作系统出现死锁时,死锁进程的个数为1

27. ( )系统调用是用户程序请求操作系统服务的唯一方式。 28. ( )原语和系统调用的主要区别在于两者的实现方法不同。 29. ( )有了线程之后,程序只能以线程的身份运行。 30. ( ) 线程的切换会引起进程的切换。 31. ( ) 多个线程可以对应同一段程序。 32. ( ) 系统内可以有无父进程的进程。

33. ( ) 线程所对应的程序肯定比进程所对应的程序短。 34. ( ) 进程从CPU退下时,将“现场”保存在系统栈内。 35. ( ) 在多道程序系统,进程需要等待某种事件的发生时,进程一定进入阻塞状态。 36. ( ) 进程上下文是进程执行活动全过程的静态描述。 37. ( )并发是并行的不同表述,其原理相同。

38. ( ) 进程是基于多道程序技术而提出的,其基本的特征是动态性;进程的执行是在多个状态间多次转换的过程,但只有处于就绪和执行状态的进程位于内存。 39. ( ) 操作系统对进程的管理和控制主要是通过控制原语实现的。 40. ( ) 原语的执行是屏蔽中断的。

41. ( )一般情况下,分时系统中处于就绪状态的进程最多。 42. ( )系统中进程的数目越多,CPU的利用率越高.

43. ( )多道程序的执行失去了封闭性和再现性,因此多道程序系统不需要封闭性和再现性。

44. ( ) 一个多道程序可能具备封闭性和再现性。 45. ( )单道程序不具备封闭性和再现性。 46.( )同步信号量的初值一般为1。

47.( )引入管程是为了让系统自动处理临界资源的互斥使用问题。 48.( )生产者-消费者问题是一个既有同步又有互斥的问题。 49.( )用管程实现进程同步时,管程中的过程是不可中断的。

50.( )进程A、B共享变量x,需要互斥执行;进程B、C共享变量y,B、C也需要互斥执行,因此,进程A、C必须互斥执行。 二、填空题

1、设系统中仅有一个资源类,其中共有3个资源实例,使用此类资源的进程共有3个,每个进程至少请求一个资源,它们所需资源最大量的总和为X,则发生死锁的必要条件是:_________。

2、一台计算机有10台磁带机被m个进程竞争,每个进程最多需要三台磁带机,那么m为__________时,系统没有死锁的危险。

三、简答题

1、多道程序技术的特点

2、程序、进程、线程的区别

3、生产者-消费者问题的同步算法中,为什么颠倒生产者进程中的两个P操作的次序,将导致进程死锁? 4、临界资源和临界区

四、解答题

1、 多个进程对信号量S进行了5次 P操作,2次V操作后,现在信号量的值是 -3,与信号量S相关的处于阻塞状态的进程有几个?信号量的初值是多少?

2、 进程P1和P2通过两个缓冲区给进程P11、P12、P21、P22传递信息,进程P11、P12

取进程P1的信息,进程P21、P22取进程P2的信息。假定这两个缓冲区一样大小,所要传递的信息也与缓冲区一样大,同一时刻只能由一个进程往缓冲区中送信息或取信息。试用PV操作来实现这6个进程之间的同步与互斥关系,只要求写出进程P1与P11的同步算法。

3、学生和监考老师都看作进程,学生有N人,教师1人。考场门口每次只能进出一个人,进考场原则是先来先进。当N个学生都进入考场后,教师才能发卷子。学生交卷后可以离开考场。教师要等收上来全部卷子后才能离开考场。 ① 问共需设置几个进程?

② 设置合适的信号量及初值,试用P、V操作解决上述问题中的同步和互斥关系。 4、设系统中有三种类型的资源(A、B、C)和五个进程(P0,P1,P2,P3,P4),某时刻的状态如下:

请根据银行家算法判定,当前是否是安全状态,如果是,请写出一个安全序列?

5、某高校计算机系开设网络课并安排上机实习,假设机房共有2m台机器,有2n名学生选该课,规定:

(1)每两个学生组成一组,各占一台机器,协同完成上机实习;

(2)只有凑够两个学生,并且此时机房有空闲机器,门卫才允许该组学生进入机房; (3)上机实习由一名教师检查,检查完毕,一组学生才可以离开机房。 试用P、V操作模拟上机实习过程。

一、判断题

正确的答案有:

3、9、16、24、25、29、31、32、40、41、47、48、49。

二、填空题

1、x>5(或x>=6) 2、M<=4 三、简答题

1、 答:多道:计算机内存中同时存放几道相对独立的程序。

宏观上并行:同时进入系统的几道程序都处于运行过程中,但都未运行完毕。微观上串行:各道程序轮流的使用CPU,交替执行。

2、答:线程是在进程内用于调度和占有处理机的基本单位,它由线程控制表、存储线程上下文的用户栈以及核心栈组成。进程是程序的一次动态执行过程,它也是系统资源分配的基本单位,它能和其他进程并发执行。

线程与进程的主要区别:进程是资源管理的基本单位,线程只是处理机调度的基本单位。进程进行处理机切换和调度时间较长,而线程进行处理机切换和调度时间较短,不发生资源的变化。线程和进程一样,都有自己的状态,也有相应的同步机制,不过由于线程没有单独的数据和程序空间,因此线程没有挂起状态。进程的调度、同步机制大多数由操作系统内核完成,而线程的控制既可以由操作系统内核进行,也可以由用户控制进行。 3、假如生产者先执行P(s)操作,获得了对缓冲区的使用权,而此时缓冲区是满的,即在执行P(empty)时发生阻塞,无法向缓冲区存数。因它占有了缓冲区的使用权,其他生产者和消费者进程无法访问缓冲区,因此产生了死锁。

4、若干进程访问一个不可共享的资源,这些资源称为临界资源。使用临界资源的那一段程序称为临界区。

四、解答题

1、答

(1)因为S的当前值是-3,因此因为S处于阻塞状态的进程有3个;

(2)因为每进行一次P(S)操作,S的值都减1,每执行1次V操作S的值加1,故信号量的初值为-3+5-2=0;

2、设4个信号量:mux=1 (实现六个进程的互斥访问缓冲区)

empty=2; (P1,P2进程可用的缓冲区数目) full1=0; (进程P1送往缓冲区的信息); full2=0; (进程P2送往缓冲区的信息); P1: P(empty); P (mux);

WriteMessage( ); V(mux); V(full1); P2: P(empty); P (mux);

WriteMessage( ); V(mux); V(full2); P11与P12: P(full1); P(mux);

ReadMessage( ); V(mux); V(empty); P21与P22: P(full2); P(mux);

ReadMessage( ); V(mux); V(empty); 3、

1) 共需设置N个学生进程,1个教师进程 2) 信号量:mutex=1;in=out=0;wait=0; Student[i]

{ P(mutex) 进入考场 V(mutex) V(in); P(wait) 答卷子 V(out); } Teacher

{ for i=1 to N P(in); 发卷子 for i=1 to N V(wait);

等待学生们交卷;

for i=1 to N P(out);

收齐卷子,离开考场 }

4、安全状态 P1-> P3-> P4-> P0-> P2 (答案不唯一)

5、P、V操作实现

程序如下:

student:=0; computer:=2m; enter:=0; finish:=0; test(i):=0; parbegin

Student i: Begin

V(student); /*表示有学生到达,通知gateguard进程 */ P(enter); /*学生是否可进入*/ 上机实习;

V(finish); /*实习结束,通知教师,有需要检查的学生*/ P(test(i)); /*等待教师检查完毕*/ V(computer); /*释放计算机资源} End; .

Teacher:Begin repeat

P(finish); /*是否有需要检查的学生,等待实习完成*/ P(finish); /*是否有需要检查的学生,等待实习完成*/ 选出可检查的第i组学生;

检查第i组学生实习结果;

V(test(i)); /*检查完成*/ V(test(i)); /*检查完成*/ until false End;

Gategard:Begin repeat.

P(student); /*等待学生到达*/

P(student); /*等待另一学生到达*/ P(computer); /*是否有可用的计算机*/ P(computer); /*是否有可用的计算机*/ 分配计算机;

V(enter); /*设置学生1可进入标志*/ V(enter); /*设置学生2可进入标志*/ untile false End; Parend;