操作系统第二章练习

发布时间 : 星期一 文章操作系统第二章练习更新完毕开始阅读

第二章练习 一、 选择题

1.由于并发进程之间( )不能由进程本身来控制,当它们在共享某资源时,可能会产生与时间有关的错误。

A. 占用存储器的位置 C. 执行的相对速度

B. 分配外部设备 D. 外部设备的启动

2、某进程在运行过程中需要等待从磁盘上读入数据,此时该进程的状态将( )。A. 从就绪变为运行; B.从运行变为就绪; C. 从运行变为阻塞; D.从阻塞变为就绪;

3、进程控制块是描述进程状态和特性的数据结构,一个进程( )。

A、可以有多个进程控制块; B、可以和其他进程共用一个进程控制块; C、可以没有进程控制块; D、只能有惟一的进程控制块。 4、在操作系统中引用“进程”概念的主要目的是()

A、改善用户编程环境 B、描述程序动态执行过程的性质 C、使程序与计算机过程一一对应 D、提高程序的运行速度

5、( )如果有N个进程共享同一互斥段,而且每次最多允许M个(M

A. N

B. M

C. 1

D. 0

6、进程状态从就绪状态到运行状态的转化工作是由()完成的 A、作业调度 B、中继调度 C、进程调度 D、设备调度

7、在多进程的系统中,为了保证公共变量的完整性,各进程应互斥进入临界区,所谓临界区是指( ):

A、一个缓冲区 B、 一段数据区 C、同步机制 D、一段程序

8、实现进程同步时,每个消息与一个信号量对应,进程( )可把不同的消息发送出去

A. 在不同信号量上调用P操作 B. 在同一信号量上调用P操作 C. 在不同信号量上调用V操作 D. 在同一信号量上调用V操作

9.若信号量S的初值为2,当前值为-2,则表示当前系统中存在着( )个进程。

A. 1

B. 2

C. 3

D. 4

10 对进程的管理和控制使用______

A、指令 B、原语 C、信号量 D、信箱通信 11.( )在下面关于线程的叙述中,正确的是:

A. 不管系统中是否还有线程,进程都是拥有资源的独立单位 B. 不论是系统支持线程还是用户级线程,其切换都需要内核的支持 C. 线程是资源的分配单位,进程是调度和分派的单位

D. 在引入线程的系统中,进程仍是资源分配和调度分派的基本单位 12.管理若干进程共享某一资源的相关临界区应满足一些要求,其中( )不必考虑。

A. 一个进程可以抢占已分配给另一进程的资源 B. 任何进程不应该无限地逗留在它的临界区中 C. 一次最多让一个进程在临界区执行

D. 不能强迫一个进程无限地等待进入它的临界区 15. 进程依靠( )从阻塞状态过渡到就绪状态。

A、程序员的命令 B、系统服务

C、等待下一个时间片到来 D、“合作”进程的唤醒

二、 填空题

1、程序的____________执行是现代操作系统的基本特征之一,为了更好地描述这一特征而引入了____________这一概念。

2、进程至少有三种基本状态:____________、____________和____________。 3、进程被创建后,最初处于_________状态,然后经_________选中后进入执行状态。

4、进程的同步和互斥反映了进程间____________和____________的关系。 5、用于进程控制的原语主要有________、________、_________和________。 6、操作系统中信号量的值与____________的使用情况有关,它的值仅能由____________来改变。

7、每执行一次P操作,信号量的数值S减1。若S>=0,则该进程____________;若S<0,则该进程____________。

8、每执行一次V操作,信号量的数值S加1。若____________,则该进程继续执行;否则,从对应的______队列中移出一个进程并将_______状态赋予该进程。

9、利用信号量实现进程的____________,应为临界区设置一个信号量mutex,其初值为1,表示该资源尚未使用,临界区应置于________和_______原语之间。 10、如果系统中有n个进程,则在就绪队列中进程的个数最多为____________。

三、PV操作题

1 、某车站售票厅,任何时刻最多可容纳 20 名购票者进入,当售票厅中少于 20 名购票者时,则厅外的购票者可立即进入,否则需在外面等待。若把一个购票者看作一个进程,请回答下列问题:

(1) 用 PV 操作管理这些并发进程时,应怎样定义信号量,写出信号量的初值以及信号量各种取值的含义。

(2) 根据所定义的信号量,利用PV操作写出能正确并发执行的进程。 (3) 若欲购票者最多为 n 个人,写出信号量可能的变化范围 ( 最大值和最小值 ) 。

2、把学生和监考老师都看作进程,学生有N人, 教师1人。考场门口每次只能进出一个人,进考场原则是先来先进。当N个学生都进入考场后, 教师才能发卷子。学生交卷后可以离开考场, 教师要等收上来全部卷子并封装卷子后才能离开考场。

(1) 问共需设置几个进程?

(2) 试用P、V操作解决上述问题中的同步和互斥关系。

思考题:

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

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

(2) 只有一组两个学生到齐,并且此时机房有空闲机器时,该组学生才

能进入机房;

(3) 上机实习由一名教师检查,当学生上完机后,教师检查完一组学生

的实习后,这组学生才能同时离开。

试用P,V操作模拟上机实习的过程。(提示:除了有学生和教师进程外,还应该有门卫进程)

练习

1、解答:

(1) 定义一信号量 S ,初始值为 20 。 意义:

S>0 S 的值表示可继续进入售票厅的人数 S=0 表示售票厅中已有 20 名顾客 ( 购票者 ) S<0 |S| 的值为等待进入售票厅的人数 (2)COBEGIN

PROCESS Pi(i=1 , 2 , ……) begin ; P(S) ;

进入售票厅; 购票; 退出; V(S) ; end ; COEND

(3) S 的最大值为 20 S 的最小值为 20-n

2、解答:

解:semaphore S_Door; // 能否进出门,初值1

semaphore S_StudentReady; // 学生是否到齐,初值为0 semaphore S_ExamBegin; // 开始考试,初值为0 semaphore S_ExamOver; // 考试结束,初值为0 int nStudentNum = 0; // 学生数目 semaphore S_Mutex1 //互斥信号量,初值为1 int nPaperNum = 0; // 已交的卷子数目 semaphore S_Mutex2 //互斥信号量,初值为1 void student( ) {

P(S_Door); 进门;

V(S_Door); P(S_Mutex1); nStudentNum ++; // 增加学生的个数 if(nStudentNum == N) V(S_StudentReady); V(S_Mutex1); P(S_ExamBegin); // 等老师宣布考试开始 考试中… 交卷;

P(S_Mutex2);

nPaperNum ++; // 增加试卷的份数 if(nPaperNum == N) V(S_ExamOver);

V(S_Mutex2); P(S_Door); 出门; V(S_Door); }

void teacher( ) {

P(S_Door); 进门;

V(S_Door);

P(S_StudentReady);//等待最后一个学生来唤醒 发卷子;

for(i = 1; i <= N; i++) V(S_ExamBegin); P(S_ExamOver); // 等待考试结束 封装试卷; P(S_Door); 出门;

V(S_Door); }

思考题解答:

student:=0; computer:=2m enter:=0 finish:=0 student: begin

P(computer) ----- 得到一台计算机

V(student) ----- 有学生到达,通知门卫 P(enter) ----- 等待进入 Practice;

V(finish); ----- 实习结束,通知教师 P(test); ----- 等待教师检查 V(computer); ----- 释放计算机资源

End;

Teacher: begin

P(finish); -----等待学生实习结束

P(finish); -----等待另一学生实习结束 Check;

V(test); -----检查完成 V(test); ----检查完成 End; Guard: begin

P(student); -----等待学生到达 P(student); -----等待另一学生到达 V(enter); ---- 允许学生进入

V(enter); ----允许另一学生进入 End;

test:=0;

联系合同范文客服:xxxxx#qq.com(#替换为@)