一、选择题
3. 在进程状态转换时,下列( D )转换是不可能发生的。
A.就绪态→运行态 B.运行态→就绪态
C.运行态→阻塞态 D.阻塞态→运行态
4. 下列各项工作步骤中,( B )不是创建进程所必需的步骤。
A.建立一个PCB B.作业调度程序为进程分配CPU
C.为进程分配内存等资源 D. 将PCB链入进程就绪队列
7. 下列有可能导致一进程从运行变为就绪的事件是( D )。
A.一次I/O操作结束
B.运行进程需作I/O操作
C.运行进程结束
D.出现了比现运行进程优先权更高的进程
8. 一个进程释放一种资源将有可能导致一个或几个进程( D )。
A.由就绪变运行 B.由运行变就绪
C.由阻塞变运行 D.由阻塞变就绪
11. 为使进程由活动就绪变为静止就绪,应利用( A )原语?
A.SUSPEND B. ACTIVE C. BLOCK D. WAKEUP
13. 若系统中只有用户级线程,则处理机调度单位是( B )。
A.线程 B.进程 C.程序 D.作业
解析:如果系统只有用户态线程,则线程对操作系统是不可见的,操作系统只能调度进程;
如果系统中有内核态线程,则操作系统可以按线程进行调度
14. 一个进程是( C )。
A.由协处理机执行的一个程序 B. 一个独立的程序+数据集
C.PCB结构与程序和数据的组合 D.一个独立的程序
15. 下列几种关于进程的叙述,( A )最不符合操作系统对进程的理解?
A.进程是在多程序并行环境?中的完整的程序。
B.进程可以由程序、数据和进程控制块描述。
C.线程是一种特殊的进程。
D.进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
进程是操作系统资源分配和独立的基本单位。它包括PCB、程序和数据,以及执行栈区,仅仅说进程是在多程序环境下的完整的程序是不合适的。
17. 下面关于线程的叙述中,正确的是( C )。
A.不论是系统支持线程还是用户级线程,其切换都需要内核的支持。
B.线程是资源的分配单位,进程是调度和分配的单位。
C.不管系统中是否有线程,进程都是拥有资源的独立单位。
D.在引入线程的系统中,进程仍是资源分配和调度分派的基本单位。
引入线程后,进程仍然是资源分配的单位。线程是处理器调度和分派的单位,线程本身不具有资源,它可以共享所属进程的全部资源。
18. 在下面的叙述中,正确的是( )D。
A.引入线程后,处理机只在线程间切换。
B.引入线程后,处理机仍在进程间切换。
C.线程的切换,不会引起进程的切换。
D.线程的切换,可能引起进程的切换。 不同进程中的线程切换能引起进程切换
在同一进程中,线程的切换不会引起进程的切换。当从一个进程中的线程切换到另一个进程中的线程时,才会引起进程的切换。
19. 进程的控制信息和描述信息存放在( B )。
A.JCB B.PCB C.AFT D.SFT
20. 进程依靠( D )从阻塞状态过渡到就绪状态。
A.程序员的命令 B.系统服务
C.等待下一个时间片到来 D.“合作”进程的唤醒
Block原语是由被阻塞进程自我调用实现的,而Wakeup原语则是由一个与被唤醒进程相合作或被其他相关的进程调用实现的。
22. 只作用于一个进程一次的原语是______A______.
A.创建 B.唤醒 C.阻塞 D.挂起
24. 从执行状态挂起的进程解除挂起时进入( A )状态。
A.就绪 B.执行 C.阻塞 D.挂起
所有的状态:创建,活动就绪,活动阻塞,执行,静止就绪(执行的状态或者活动就绪状态被挂起),静止阻塞(活动阻塞的时候被挂起),终止;
静止就绪-即在这个状态被解除挂起的时候,恢复到活动就绪状态;
静止阻塞-在这个状态解除挂起的时候,恢复到活动阻塞;当有资源释放的时候,变成静止就绪状态;
25. 一个进程执行过程中不可能对应( C )。
A.一个PCB B.一个JCB C.多个PCB D.一个程序
1. 用P、V操作管理临界区时,信号量的初值一般应定义为( C )。
A.–1 B.0 C.1 D.任意值
2. 有m个进程共享同一临界资源,若使用信号量机制实现对一临界资源的互斥访问,则信号量的变化范围是( A )。
A.1至 –(m-1) B.1至m-1 C.1至–m D.1至m
3. 在下面的叙述中,正确的是( C)。
A.临界资源是非共享资源 B.临界资源是任意共享资源
C.临界资源是互斥共享资源 D.临界资源是同时共享资源
4. 对进程间互斥地使用临界资源,进程可以( D )
A.互斥地进入临界区 B.互斥地进入各自的临界区
C.互斥地进入同一临界区 D.互斥地进入各自的同类资源的临界区
5. 设两个进程共用一个临界资源的互斥信号量mutex,当mutex=1时表示( A )。
A.一个进程进入了临界区,另一个进程等待
B.没有一个进程进入临界区
C.两个进程都进入了临界区
D.两个进程都在等待
6. 设两个进程共用一个临界资源的互斥信号量mutex,当mutex=-1时表示( )。
A.一个进程进入了临界区,另一个进程等待
B.没有一个进程进入临界区
C.两个进程都进入了临界区
D.两个进程都在等待
互斥信号量,初始值为1,取值范围为(-1, 0,1)。
当信号量为1时,表示两个进程皆未进入需要互斥的临界区;
当信号量为0时,表示有一个进程进入临界区运行,另一个必须等待;
当信号量为-1时,表示有一个进程正在临界区运行,另一个进程因等待而阻塞在信号量队列中,需要当前已在临界区运行的进程退出时唤醒。
7.当一进程因在记录型信号量S上执行wait(S)操作而被阻塞后,S的值为( B )。
A.>0 B.<0 阻塞 C.≥0 D.≤0 盲等
8.当一进程因在记录型信号量S上执行signal(S)操作而导致唤醒另一进程后,S的值为( D )。
A.>0 B.<0 C.≥0 D.≤0
9.如果信号量的当前值为-4,则表示系统中在该信号量上有( A )个进程等待。
A.4 B.3 C.5 D.0
10.若有4个进程共享同一程序段,而且每次最多允许3个进程进入该程序段,则信号量的变化范围是( B )。
A. 3,2,1,0 B. 3,2,1,0,-1
C. 4,3,2,1,0 D. 2,1,0,-1,-2
11.若信号S的初值为2,当前值为-1,则表示有( B )个等待进程?
A.0 B.1 C.2 D.3
12.如果有三个进程共享同一互斥段,而且每次最多允许两个进程进入该互斥段,则信号量的初值应设置为( C )。
A. 3 B. 1 C. 2 D. 0
13.并发进程之间( D )
A.彼此无关 B.必须同步
C.必须互斥 D.可能需要同步或互斥
在多道程序环境下,系统中的诸多进程之间可能存在两种关系,即资源共享关系和相互协作关系。多个进程间彼此无关,它们并不知道其他进程的存在,只是共享着系统资源。对于存在相互合作关系的进程,对某些资源需要互斥使用,进程同步的主要任务就在于保证进程在执行次序上的协调
15. ( B )操作不是wait操作可完成的。
A.为进程分配处理机 B.使信号量的值变小
C.可用于进程的同步 D.使进程进入阻塞状态
- 判断正误,错误的简要说明理由
- 线程的切换会引起进程的切换。
错,不同进程的切换才可以
- 多个线程可以对应同一段程序。
对,一个进程包含多个线程
- 线程所对应的程序肯定比进程所对应的程序短。
错,进程只有一个线程的话就不是了,且不可用程序的长短来区别进程和线程
- 进程从CPU退下时,将“现场”保存在系统栈内。
错,保存在任务栈中,系统栈要给下一个要运行的进程用
- 并发是并行的不同表述,其原理相同。
错,并发是同时执行不过微观上是串行的,并行是同时执行,但是是不同的处理器执行
并发与并行是两个不同的概念:
并发是指多个请求向服务器同时请求,服务器的响应过程是依次响应,或者轮转响应的;
并行是多个请求向多个服务器,各自服务各自的请求;
- 进程是基于多道程序技术而提出的,其基本的特征是动态性;进程的执行是在多个状态间多次转换的过程,但只有处于就绪和执行状态的进程位于内存。
错,在具有三级调度的OS中,就绪状态分为内存就绪状态、外存就绪状态;阻塞状态也分为内存阻塞状态和外存阻塞状态。笼统的说法可以说进程就是在内存中,如我们的任务管理器就可以看见在运行的进程,运行状态的进程一定在内存中。
- 操作系统对进程的管理和控制主要是通过控制原语实现的。
对,基本原语进程创建,进程阻塞,唤醒进程和进程终止四个原语
- 一般情况下,分时系统中处于就绪状态的进程最多。
对,分时操作系统就是多个进程需要轮转式地分享CPU,但是一次只有一个进程在使用,所以微观上看实际是很多进程在等待就绪状态。可能阻塞,但是由于分时系统的时间片很短,所以阻塞不大多,所以一般就绪状态较多。
- 系统中进程的数目越多,CPU的利用率越高.
错,在一定程度上进程多CPU效率高,但是太多可能全阻塞死机
- 多道程序的执行失去了封闭性和再现性,因此多道程序系统不需要封闭性和再现性。
错,程序并发执行的时候可能失去封闭性和可再现性(即 一个多道程序可能具有封闭性和可再现性,但是任何程序系统就是需要封闭性和可再性的。
- 一个多道程序可能具备封闭性和再现性。
对
- 单道程序不具备封闭性和再现性。
错
13.一个临界资源可以对应多个临界区。
对
14.引入管程是为了让系统自动处理临界资源的互斥使用问题。
对,PV操作就是
15.生产者-消费者问题是一个既有同步又有互斥的问题。
对
16.用管程实现进程同步时,管程中的过程是不可中断的。
对
17.进程A、B共享变量x,需要互斥执行;进程B、C共享变量y,B、C也需要互斥执行,因此,进程A、C必须互斥执行。
错,互斥无传递性
18. 单道程序系统中程序的执行也需要同步和互斥。
错,顺序执行不需要
三、解答题
1.某车站售票厅,任何时刻最多可容纳20名购票者进入,当售票厅中少于20购票者时,则厅外的购票者可立即进入,否则需在外面等待。若把一个购票者看作一个进程,请回答下列问题:
-
- 用wait、signal操作管理这些并发进程时,应怎样定义信号量?写出信号量的初值以及信号量各种取值的含义。
S=20
wait(S)
{
S--; // 放行一个购票者进入售票厅
if (S<0 ) block(S); //停止购票者进入
}
signal(S)
{
S++;
if (S≤0 ) wakeup(S);
}
-
- 根据所定义的信号量,把应执行的wait、signal操作填入下述程序中,以保证进程能够正确地并发执行。
COBEGIN PROCESS Pi (i=1,2,…..)
Begin
|
;
进入售票厅 ;
购票;
|
;
退出;
End;
COEND
(3)若欲购票者最多为n个人,写出信号量可能的变化范围(最大值和最小值)。
信号值最大为20 最小为0(当n>20)或者20-n(n<20).
2.设有两个优先级相同的进程P1和P2如下。信号量S1和S2的初值均为0,试问P1、P2并发执行结束后,x=?,y=?,z=?
〈进程P1〉 〈进程P2〉
y:=1; x:=1;
y:=y+2; x:=x+1;
signal(S1); wait(S1);
z:=y+1; x:=x+y;
wait (S2); signal (S2);
y:=z+y; z:=x+z;
由于进程优先级相同所以,P1 OR P2都有可能一直发生
假设P1先进入CPU所以,y=3 ---- y=3 z=4----x=2 x=2+3=5--- y=7 z=9
所以x=5 y=7 z=9
假设P2先进入CPU所以,x=2----y=3 z=4-----x=5 z=9----y=12
所有 x=5 y=12 z=9