苏州大学操作系统原理期中考试试卷共6页
学院专业成绩
年级学号姓名日期
考试形式:闭卷时间: 120分钟
一、填空题(10分,每空1分)
1、在有m个进程的系统中出现死锁时,死锁进程的个数k应该满足的条件是
1<k<=m 。
2、操作系统的结构有多种,其中采用微内核结构的有Windows XP Mach QNX 等;采用模块化结构有Solaris Linux Mac等。
3、操作系统的最基本的设计目标是使应用程序能够顺利运行,在此基础上,还需要考虑高效(面向系统)和易用(面向用户)。
4、互斥资源是多个进程不能同时使用的资源;共享资源则是多个进程可以同时使用的资源。
5、周转时间等于运行时间加等待时间。
一般情况下响应时间不大于等待时间。
二、选择题(20分,每题2分)
1、以下不属于操作系统部件的是 B 。
(A)进程管理(B)数据库管理
(C)保护系统(D)命令解释器系统
2、当记录型信号量S的初值为C时,表示只允许一个进程访问临界资源,此时的信号量转化为互斥信号量。
(A)-1 (B)0 (C)1 (D)2
3、信箱通信是一种 B 通信方式。
(A)直接通信(B)间接通信(C)信号量(D)低级通信
4、在操作系统中,可运行的最小单位是 C 。
(A)作业(B)进程(C)线程(D)超线程
5、一个阻塞进程被唤醒意味着 D 。
(A)该进程重新占有了CPU
(B)它的优先权变为最大
(C)其PCB移至等待队列队首
(D)进程变为就绪状态
6、对于给定的一组进程, C 算法可以获得最小的平均等待时间。
(A)先到先服务调度(B)优先权调度
(C)最短作业优先调度(D)轮转法调度
7、分布式系统又被称为D。
(A)紧耦合系统(B)松耦合系统
(C)对等系统(D)网络操作系统
8、进程在就绪队列中等待调度的时间片总和称为 B 。
(A)运行时间(B)等待时间(C)响应时间(D)周转时间
9、银行家算法是一种 B 算法。
(A)死锁解除(B)死锁避免
(C)死锁预防(D)死锁检测
10、分时系统中,当用户数目为100时,为保证响应不超过1秒;此时的时间片最大应为A。
(A)10ms (B)20ms (C)50ms (D)100ms
三、(10分)CPU调度可发生在哪些情况下?哪些情况是可抢占式调度?哪些是非抢占式调度?
(1)正在执行的进程执行完毕。
(2)执行中进程自己调用阻塞原语。
(3)执行中进程调用了P原语操作,从而因资源不足而被阻塞;或调用了V 原语操作激活了等待资源的进程队列。
(4)执行中进程提出I/O请求后被阻塞。
(5)在分时系统中时间片已经用完。
(6)在执行完系统调用,在系统程序返回用户进程时,可认为系统进程执行完毕,从而可调度选择一新的用户进程执行。
(7)就绪队列中的某进程的优先级变的高于当前执行进程的优先级,从而也将引发进程调度。
可抢占式调度:(7)
非抢占式调度:(1)、(2)、(3)、(4)、(5)、(6)
四、(10分)什么是用户态线程和核心态线程?它们之间的映射关系有哪些?
用户态线程:用户态线程的管理过程全部由用户程序完成,操作系统内核只对进程进行管理。
核心态线程:核心态线程由操作系统内核进行管理。
操作系统内核给应用程序提供相应的系统调用和应用程序接口API ,以使用户程序可以创建、执行、撤销进程。
用户态线程与和心态线程之间的映射关系有1对1、多对1、多对多。
五、(10分)请从资源共享、进程创建和进程结束三个方面谈谈父进程和子进程的关系。
资源共享方面:父进程创建子进程时,子进程可能从操作系统那里直接获得资源,也可以从父进程那里获得。
父进程可能必须在子进程之间共享资源。
进程创建方面:子进程被父进程创建时,除了得到各种物理和逻辑资源外,初始化数据(或输入)由父进程传递给子进程。
进程结束方面:子进程使用了超过它所分配的资源,或者分配给子进程的任务已不再需要,父进程将终止子进程。
父进程退出,如果父进程终止,那么操作系统(处特殊的操作系统)不允许子进程继续。
六、(10分)假设系统中共有3种资源,并且同时有5个进程在执行,T0时刻
Available
R 1 R 2 R 3
2 2 2
(1)
(2) 如果P 5对资源的请求量是Requests(1,2,1),这个请求可以被满足吗?为
什么?
(1) 是安全状态。
安全序列 P2 P3 P4 P5 P1。
(2) 可以。
按照上面的安全序列,在执行到P4时available 中的资源数为12,6,8, P5的请求时1,2,1,小于available 中的资源数,可以满足。
七、(15分)有四个进程S1、S2、R1和R2,其中S1、S2向缓冲区BUFF 发送消息,R1和R2从缓冲区中接收消息。
发送和接收的规则如下:
(1)缓冲区BUFF任何时候只能存放2个消息;
(2)R1、R2每次同时取S1和S2存放在缓冲区中的消息;
(3)每个存放在缓冲区中的消息必须被R1和R2均接收后才能清除;
(4)缓冲区BUFF不能同时存放2个S1的消息或2个S2的消息。
请用信号量机制来实现这4个进程间的同步。
EmptyS1R1=EmptyS1R2=EmptyS2R1=EmptyS2R2=1;
FullS1RI=FullS1R2=FullS2R1=FullS2R2=0;
Process(S1): Process(R1):
{ {
While(1) while(1)
{ {
P(EmptyS1R1); P(FullS1R1);
P(EmptyS1R2); P(FullS2R1);
发送消息;接受消息;
V(FullS1R1); V(EmptyS1R1)
V(FullS1R2); V(EmptyS2R1);
} }
} }
Process(S2): Process(R2):
{ {
While(1) while(1)
{ {
P(EmptyS2R1); P(FullS1R2);
P(EmptyS2R2); P(FullS2R2);
发送消息;接受消息;
V(FullS2R1); V(EmptyS1R2);
V(FullS2R2); V(EmptyS2R2);
} }
} }
八、(15分)考虑以下的一个基于优先级(优先数高优先级低)的调度算法,此算法采用根据等待时间和运行时间对优先数进行动态老化算法,具体算法如下:
(1)处于等待队列中的进程的优先数p根据等待时间t(单位秒)进行变
化,p=p-t,当p=0时不再变化;
(2)处于运行状态的进程的优先数p根据运行时间t(单位秒)进行变化,
p=p+t,当p=0时不再变化;
(3)优先数p每隔1秒重新计算;
(4)采用抢占式调度策略。
根据下表给出的5个进程的到达时间、执行时间回答下面的问题。
(时间以秒为单位)
(1)
(2)根据以上的调度算法,分别计算出每个进程的周转时间和响应时间。
(1)调度序列为
P1 P2 P2 P4 P4 P3 P2 P4 P1 P3 P2 P4 P1 P2 P1 P2 P1 P3 P5 P5
(2)周转时间:P1=17s-1s=16s;P2=16s-1s=15s;P3=18s-2s=16s;P4=12s-3s=9s; P5=20s-4s=16s;
响应时间:P1=0s;P2=0s;P3=5s-2s=3s;P4=0s;P5=18s-4s=14s;。