计算机操作系统复习题
A.一个进程进入了临界区,另一个进程等待 B.没有一个进程进入临界区 C.两个进程都进入了临界区 D.两个进程都在等待 24.下面关于线程的叙述中,正确的是( C )。
A.不论是系统支持线程还是用户级线程,其切换都需要内核的支持。 B.线程是资源的分配单位,进程是调度和分配的单位。 C.不管系统中是否有线程,进程都是拥有资源的独立单位。
D.在引入线程的系统中,进程仍是资源分配和调度分派的基本单位。 25.若系统中只有用户级线程,则处理机调度单位是( B )。 A.线程 B.进程 C.程序 D.作业 26.在下面的叙述中,不正确的是( C )。
A.一个进程可创建一个或多个线程B.一个线程可创建一个或多个线程 C.一个线程可创建一个或多个进程D.一个进程可创建一个或多个进程
27. 如果信号量S的初值是3,当前值为﹣2,那么表示有( B )等待进程。 A.1个 B.2个 C.3个 D.5个 28.下列有可能导致一进程从运行变为就绪的事件是( D )。 A.一次I/O操作结束 B.运行进程需作I/O操作
C.运行进程结束 D.出现了比现运行进程优先权更高的进程 29.关于线程以下的说法正确的是(B)。
A.线程是资源分配的独立单位 B.线程是处理器的独立调度单位
C.同一进程中多线程不能独立执行D.同一进程中每个线程有独立的主存空间 30.(B )是操作系统中最重要.最基本的概念之一,它是系统分配资源的基本单位,是一个具有独立功能的程序段对某个数据集的一次执行活动。
A. 程序 B. 进程 C.作业 D. 线程
31.有m个进程共享同一临界资源,若使用信号量机制实现对一临界资源的互斥访问,则信号量的变化范围是( A )。
A. 1至 –(m-1) B. 1至m-1 C. 1至–m D. 1至m 32.一个进程释放一种资源将有可能导致一个或几个进程( D )。
A.由就绪变运行 B.由运行变就绪 C.由阻塞变运行 D.由阻塞变就绪 33.进程的最基本状态有(B )个。
A. 2 B. 3 C. 5 D. 9
34.临界区是指并发进程中访问共享变量的( D )段。
A. 管理信息 B. 信息存储 C. 数据 D. 程序 35.当( A )时,进程从就绪状态转变为执行状态。 A.进程被调度程序选中 B.时间片到
C.等待某一事件 D.等待的事件发生 36.按照P,V 操作的定义正确的说法是( C)。
A.调用P 操作后进程肯定能继续运行 B.调用P 操作后进程肯定阻塞 C.调用P 操作后进程可能继续运行或阻塞 D.调用V 操作后可能会阻塞 37.一个正在运行的进程,当所分配的时间片用完后,将其挂在( C )。 A.等待队列 B.运行队列 C.就绪队列 D.阻塞队列
38.若有n个进程都要读某个共享文件,但系统限制最多允许m个进程(n>m>1) 同时读文件,用P,V操作管理时不可能出现的信号量之值为(D)。 A.1 B.m-n C.m D.n
39.如果信号量S的值是0,此时进程A执行P(S)操作,那么,进程A会(B )。
鞍山师范学院数学与计算科学学院 2013年4月
计算机操作系统复习题
A.继续运行 B.进入阻塞状,让出CPU C.进入就绪状,让出CPU D.继续运行,并唤醒S队列头上的等待进程
40.设两个进程共用一个临界资源的互斥信号量mutex,当mutex=1时表示( B )。 A.一个进程进入了临界区,另一个进程等待 B.没有一个进程进入临界区 C.两个进程都进入了临界区 D.两个进程都在等待
二.判断题
1.内核支持的线程对操作系统是可见的,系统调度以进程为单位。( × ) 2.并发进程之间必须有关。( ×)
3.用户级别线程对操作系统是不可见的,系统调度仍以进程为单位。( √ ) 4.一个进程的状态发生变化总会引起其它一些进程的状态发生变化。( × ) 5.进程间的互斥是一种特殊的同步关系。( √ ) 6.进程存在的唯一标志是进程控制块(PCB)。( √ ) 7.系统内可以有无父进程的进程。( √ ) 8.单道程序不具备封闭性和再现性。(× )
9.系统中进程的数目越多,CPU的利用率越高.(× ) 10.进程存在的唯一标志是它是否处于运行状态。(× )
11.多道程序系统在单处理机的环境下,程序的执行是并发不是并行的,程序的执行与I/O操作也只能并发不能并行。(× )
12.批处理系统不允许用户随时干涉自己程序的运行。(√ ) 13.线程的切换会引起进程的切换。(× )
14.多道程序执行失去了封闭性和再现性,因此多道程序系统不需要封闭性和再现性(× ) 15.生产者-消费者问题是一个既有同步又有互斥的问题。 ( √ ) 16.一个多道程序可能具备封闭性和再现性。(√ ) 17. 多个线程可以对应同一段程序。( √ )
三.填空题
1. 程序并发执行时,进程之间可能存在着(直接相互制约关系)和(间接相互制约关系)两种制约关系。
2. 若有5个进程共享同一临界区,每次最多允许3个进入临界区,则信号量的变化范围是( 3,2,1,0,-1,-2 )。
3. 进程存在的标志是(进程控制块(PCB))。 4.一段不可间断执行的程序称为( 原语 )。
5.进程创建工作主要完成的是创建PCB,并把它挂到( 就绪 )队列中。
6.( 进程 )是系统分配资源的基本单位,是一个具有独立功能的程序对某个数据集的一次执行活动。
四.简答题
1.什么是进程?请画出具有基本进程状态的状态转移图,并指出转移原因。 答案: 进程是具有一定独立功能的程序关于一个数据集合的一次执行活动。
调度选中
就绪 运行
抢占
I/O请求
I/O完成
等待
鞍山师范学院数学与计算科学学院 2013年4月
计算机操作系统复习题
进程的三个基本状态之间是可以相互转换的。
具体地说,当一个就绪进程获得处理机时,其状态由就绪变为运行 ; 当一个运行进程被剥夺处理机时,如用完系统分给它的时间片,或出现高优先级别的其它进程,其状态由运行变为就绪;当一个运行进程因某事件受阻时,如所申请资源被占用,启动 I/O 传输未完成,其状态由运行变为等待 ; 当所等待事件发生时,如得到申请资源, I/O 传输完成,其状态由等待变为就绪。
2.同步机制应遵循的准则是什么?答:空闲让进,忙则等待,有限等待,让权等待。 3.分析作业.进程.线程三者之间的关系?
答案:联系:一个作业包含多个进程,一个进程包含多个线程;
区别:作业是向计算机提交任务的任务实体;进程是执行实体,是资源分配和调度的基本单位;线程是处理机调度的基本单位。
4. 为何引入多道程序设计? 在多道程序系统中,内存中作业的道数是否越多越好? 请说明原因。
答:引入多道程序设计技术是为了提高计算机系统资源的利用率。在多道程序系统中,内存中作业的道数并非越多越好。一个计算机系统中的内存.外设等资源是有限的,只能容纳适当数量的作业,当作业道数增加时,将导致对资源的竞争激烈,系统开销增大,从而导致作业的执行缓慢,系统效率下降。
5. 什么是进程? 进程具有那些主要特性? 比较进程与程序之间相同点与不同点. 答:进程是具有一定独立功能的程序关于一个数据集合的一次执行活动。 特性:并发性.动态性.独立性.交往性.异步性和结构性。
区别:程序是静态的,而进程是动态的;进程是有生存期的,而程序没有;一个程序可对应多个进程,而一个进程只能对应一个程序。
五.操作题
1. 三个进程P1.P2.P3互斥使用一个包含N个单元的缓冲区。P1每次使用
proceduce()生成一个正整数并用put()送入缓冲区某一空单元中;P2每次用getodd()从该缓冲区中取出一个奇数并用countodd()统计奇数个数;P3每次用geteven()从该缓冲区中取出一个偶数并用counteven()统计偶数个数。请用信号量机制实现三个进程的同步和互斥活动。 参考答案:
semaphore empty=N,S1=S2 =0,mutex=1;
P1:begin P2:begin P3:begin x=produce( ); P(S1); P(S2);
P(empty); P(mutex); P(mutex); P(mutex); getodd( ); geteven( ); put( ); V(mutex); V(mutex); If (x%2==0) countodd( ); counteven( ); V(S2); V(empty); V(empty); Else V(S1); end. end. V(mutex);
end.
2. 有一个阅览室,共有100个座位,读者进入时必须先在一张登记表上登记,该表为每一座位列一表目,包括座号和读者姓名等,读者离开时要消除掉登记的信息, 试用P.V操作描述读者进入阅览室的动作以及离开阅览室的动作,并给出信号量的含义。 参考答案:
鞍山师范学院数学与计算科学学院 2013年4月
计算机操作系统复习题
算法的信号量有三个:seats——表示阅览室是否有座位(初值为100,代表阅览室的空座位数);readers——表示阅览室里的读者数,初值为0;用于互斥的mutex,初值为1。 读者进入阅览室的动作描述getin: while(TRUE){
P (seats); /*没有座位则离开*/ P(mutex) /*进入临界区*/ 填写登记表; 进入阅览室读书;
V(mutex) /*离开临界区*/ V(readers) }
读者离开阅览室的动作描述getout: while(TRUE){ P(readers); /*阅览室是否有人读书*/ P(mutex); /*进入临界区*/ 消掉登记;
离开阅览室; V(mutex); /*离开临界区*/ V(seats); /*释放一个座位资源*/ }
3.现有3个并发进程R.M.P,它们共享一个可循环使用的缓冲区B,缓冲区B共有8个单元。R进程负责从输入设备读信息,每读入一个字符后,放入缓冲区B的一个单元中;进程M负责处理读入的字符,若发现读入的字符中有空格,则把它改写成“;”;进程P负责把处理后的字符取出并打印输出。当缓冲区中的字符被进程P取出后,则又可用来存放下一次读入的字符。用P.V操作写出它们能正确并发执行的程序(不考虑互斥使用缓冲区)。 数据结构说明如下:in=0;//放入R指针 out1=0;//加工进程M指针 out2=0;//输出进程P指针 char_arr[8];//环形缓冲区
请根据需要自行设计其它变量和信号量,以完成上述并发程序。 参考答案:
semaphore empty=n,full=0,outchar=0; int in=0,out1=0,out2=0;
4 char_arr[8]; char ch1,ch2 ; 5 R( )
3 { while(1){ 6 读字符c; P(empty);
7 char_arr[in]=c; 2 in=(in+1) % 8; 0 1 V(full);}
M( )
{ while(1){
out2 P(full);
out1 ch1=char_arr[out1]; in out
鞍山师范学院数学与计算科学学院 2013年4月
计算机操作系统复习题
If (ch1==’ ‘) char_arr[out1]=’;’; out1=i=(out1+1) % 8; V(outchar);} P( )
{ while(1){ P(outchar);
ch2=char_arr[out2]; 输出字符ch2; out2=(out2+1) % 8; V(empty);}
4.设有四个进程A,B,C,D,进程A.B负责把数据块输入到缓冲区S中,进程C负责将缓冲区S的内容复制到缓冲区m;进程D将缓冲区S中的内容取出并加工放入缓冲区n。缓冲区S是临界资源, 其中S中可放一块数据。缓冲区m,n容量无限大。要求,进程C复制后,进程D才可以取数。请用P.V操作来协调这四个进程的执行。 缓冲区m A C 复制 输入 缓冲区s D 取数加工 缓冲区n B 参考答案:semaphore Sem=1,SC=0,SD =0; A( ) 和B( ){ C( ){ while(1){ while(1){ P(Sem); P(SC);
把数据块输入到缓冲区S; 把数据块从缓冲区S复制到m中; V(SC); V(SD) } }
} } D( ) {
while(1){ P(SD);
将缓冲区S中的数据取出并加工; V(Sem); } }
5.设有四个进程A,B,C,D,进程A负责把数据块输入到缓冲区s;进程B和C负责将缓冲区s的内容复制到缓冲区t;进程D将内容打印出来,所有进程一次只能操作一块数据。缓冲区s,t是临界资源,其中t中可放两块数据,而s只能存放一块数据。请用P.V操作来协调这四个进程的执行。 C D A
缓冲区s 复制 缓冲区t 输入 打印 B 参考答案:
算法如下:semaphore Sem=1,Sfull=0,Tem=2,Tfull=0,mutex=1;
鞍山师范学院数学与计算科学学院 2013年4月