一、判断题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<k<=M。
26.( )所有进程都进入等待状态时,系统陷入死锁。
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 NP(in);发卷子for i=1 to NV(wait);等待学生们交卷;for i=1 to NP(out);收齐卷子,离开考场}4、安全状态P1-> P3-> P4-> P0-> P2 (答案不唯一)5、P、V操作实现程序如下:student:=0;computer:=2m;enter:=0;finish:=0;test(i):=0;parbeginStudent i: BeginV(student); /*表示有学生到达,通知gateguard进程*/P(enter); /*学生是否可进入*/上机实习;V(finish); /*实习结束,通知教师,有需要检查的学生*/P(test(i)); /*等待教师检查完毕*/V(computer); /*释放计算机资源}End;.Teacher:BeginrepeatP(finish); /*是否有需要检查的学生,等待实习完成*/P(finish); /*是否有需要检查的学生,等待实习完成*/选出可检查的第i组学生;检查第i组学生实习结果;V(test(i)); /*检查完成*/V(test(i)); /*检查完成*/until falseEnd;Gategard:Beginrepeat.P(student); /*等待学生到达*/P(student); /*等待另一学生到达*/P(computer); /*是否有可用的计算机*/P(computer); /*是否有可用的计算机*/分配计算机;V(enter); /*设置学生1可进入标志*/V(enter); /*设置学生2可进入标志*/ untile falseEnd;Parend;。