操作系统题库+答案 下载本文

答案:

(1)周转时间:P1:8; P2:14; P3:36; P4:40;平均周转时间24.5;

加权周转时间:P1:1; P2:2.33; P3:1.64; P4:10;平均加权周转时间:3.74; (2)周转时间:P1:14; P2:6; P3:40; P4:18;平均周转时间19.5;

加权周转时间:P1:1.75; P2:1; P3:1.82; P4:4.5;平均加权周转时间:2.27; (3)周转时间:P1:22; P2:23; P3:40; P4:19;平均周转时间26;

加权周转时间:P1:2.75; P2:3.83; P3:1.82; P4:4.75;平均加权周转时间:3.29;

2、设系统有3种类型的资源A、B、C和5个进程P0、P1、P2、P3、P4,A资源的数量为10,B资源的数据为5,C资源的数据为7。在T0时刻系统状态如表所示。系统采用银行家算法实施死锁避免策略。 P0 P1 P2 P3 P4 Max A 7 3 9 2 4 B 5 2 0 2 3 C 3 2 2 2 3 Allocation A 0 2 3 2 0 B 1 0 0 1 0 C 0 0 2 1 2 Need A 7 1 6 0 4 B 4 2 0 1 3 C 3 2 0 1 1 Available A 3 B 3 C 2 (1)T0时刻是否为安全状态?若是,请给出安全序列。 (2)在T0时刻若进程P1发出资源请求(1,0,2),是否能够实施资源分配。 (3)在(2)的基础上P4发出资源请求(3,3,0),是否能够实施资源分配。 (4)在(3)的基础上P0发出资源请求(0,2,0),是否能够实施资源分配。

3、当前系统中出现表中资源分配情况。 P0 P1 P2 P3 P4 Allocation 0 1 1 0 0 0 0 3 3 0 3 0 5 3 1 2 0 4 2 4 Need 0 1 2 0 0 0 7 3 6 6 1 5 5 5 5 2 0 6 2 6 Available 1 6 2 2 利用银行家算法,试问: (1)该状态是否安全?

(2)如果进程P2提出资源请求(1,2,2,2)后,系统能否将资源分配给它?

4、请填写下表内容,计算它们的平均周转时间、平均带权周转时间,写出作业调度次序。

先来先服务调度算法(时间单位:小时,以十进制计算)

作业 提交时间 执行时间 开始时间 完成时间 周转时间 带权周转时间 1 2 3 4 8.0 8.5 9.0 9.5 2.0 0.5 0.1 0.2 平均周转时间T= 平均带权周转时间W=

5. 请填写下表内容,计算它们的平均周转时间、平均带权周转时间,写出作业调

度次序。

先来先服务调度算法(时间单位:小时,以十进制计算)

作业 提交时间 执行时间 开始时间 完成时间 周转时间 带权周转时间 1 2 3 4 8.0 8.5 9.0 9.5 2.0 0.5 0.1 0.2 平均周转时间T= 平均带权周转时间W= 作业调度次序

五、算法题

1、前趋关系如下所示,S1->S2,S1->S3,S2->S4,S3->S4。试用信号量进程描述。

2、生产者—消费者问题的同步算法中,为什么颠倒生产者进程中的两个wait()操作次序将导致进程死锁?

3、今有3个并发进程R、M、P,它们共享一个缓冲器B。进程R负责从输入设备读信息,每读出一个记录将其存放在缓冲器B中。进程M在缓冲器B中加工进程R存入的记录。进程P把加工后的记录打印输出。缓冲器B中每次只能存放一个记录,当记录被加工输出后,缓冲器B中又可存放一个新记录。请用P、V操作为同步机制写出它们并发执行时能正确工作的程序。

4、桌子上有一个盘子,每次只能放一个水果。爸爸专向盘子中放苹果,妈妈专向盘子中放橘子,一个儿子专等吃盘子中的橘子,一个女儿专等吃盘子中的苹果。用信号量机制实现他们之间的同步机制。

5、一个牛奶生产厂家为一个消费者提供牛奶,牛奶生产厂家每次将牛奶放入消费者的牛奶箱中,消费者从牛奶箱中取牛奶。当牛奶箱满时,牛奶生产厂家不能向牛奶箱中放牛奶;当牛奶箱空时,消费都不能从牛奶箱中取牛奶。

6、使用记录型信号量解决经典的生产者和消费者问题。

7、在测量控制系统中的数据采集任务时,把所采集的数据送往一单缓冲区;计算任务从该单缓冲区中取数据进行计算。试写出利用信号量机制实现两任务共享单缓冲区的同步算法。

8、请说明下面生产者—消费者问题描述出现的问题并进行错误的改正。

Semaphore mutex=1;/*互斥用信号量,生产者、消费者对有界缓冲池应互斥使用*/ Semaphore empty=n;/*同步用信号量,缓冲池初始时空缓冲区数目为n*/ Semaphore full=0;/*同步用信号量,缓冲池初始时满缓冲区数目为0*/ main() { Cobegin Producer(); Consumer(); Coend }

Producer() {

While(1) {

生产一个产品; P(mutex); P(full); 放产品; V(mutex); } }

Consumer() {

While(1) {

P(mutex); P(empty); 取产品; V(mutex); 消费产品; } }

六、简答题

1、产生死锁的4个必要条件是什么?

互斥条件、请求和保持条件、不剥夺条件、环路等待条件。

2、进程有哪三种基本状态?试举出使进程状态发生变化的事件并描述它的状态转换图。 就绪态、阻塞态、运行态。 3、列举引起进程调度的事件。 1)正在执行的进程执行完毕

2)执行中进程自己调用阻塞原语将自己阻塞起来进入睡眠等状态

3)执行中进程调用了P原语操作,从而因资源不足而被阻塞;或调用了v原语操作激活了等待资源的进程队列

4)执行中进程提出I/O请求后被阻塞 5)在分时系统中时间片已经用完

6)就绪队列中的某进程的优先级变得高于当前执行进程的优先级,从而也将引发进程调度。

4、处理机调度分为哪几级调度?

高级调度、中级调度 、低级调度。