操作系统期末试卷(含答案) 联系客服

发布时间 : 星期日 文章操作系统期末试卷(含答案)更新完毕开始阅读f448fcb8998fcc22bcd10db9

级调度程序负责。

(1) 在可获得处理机时,应将它分给哪个就绪进程; (2) 在短期繁重负载下,应将哪个进程暂时挂起。 答:

(1) 作业调度用于决定把外存中处于后备队列中的哪些作业调入内存,并为它们创建进程,分配资源,然后将新创建进程插入就绪队列;中级调度负责将内存中暂时不具备运行条件的进程换到外存交换区存放,但内存空闲时,又将外存中具备运行条件的进程重新换入内存;进程调度决定将处理机分配给就绪进程队列的哪个进程。(4分) (2)进程调度、中级调度(2分)

说明:论述条理清晰,包含上述要点,本题即可得满分

四、综合题(本大题共2小题,第1题9分,第2题13分,计22分) 34、(9分)在一个请求分页系统中,假设系统分配给某进程的物理块数为3,开始时内存为空,执行如下访问页号序列:

1,2,3,4,1,2,5,1,2,3,4,5

试说明采用先进先出(FIFO) 、最近最少使用(LRU)和最佳置换算法(OPT)进行页面置换时,缺页次数各是多少? 答:(1)FIFO: 9次 (3分) (2)LRU:10次 (3分) (3)OPT:7次 (3分)

说明:没有计算过程,本题不得分。如果结果有误,根据步骤酌情给分。

35、(13分)如图2所示,系统中有三个进程GET、PRO和PUT,共用两个缓冲区BUF1和BUF2。假设BUF1中最多可放11个信息,现已放入了两个信息;BUF2最多可放5个信息。GET进程负责不断地将输入信息送入BUF1中,PRO进程负责从BUF1中取出信息进行处理,并将处理结果送到BUF2中,PUT进程负责从BUF2中读取结果并输出。试写出正确实现GET、PRO、PUT的同步与互斥的算法(要求:(1)用类C语言描述,条理清楚,注释恰当;(2)信号量原语统一使用wait和signal。)

GET PRO PUT BUF1 BUF2 图2 进程合作

答:

semaphore

empty1=9;//空buf1的数目

full1=2; //有数据的buf1的数目 empty2=5; //空buf2的数目

full2=0; //有数据的buf2的数目 mutex1=mutex2=1; //互斥信号量 int main(){

Cobegin //并发开始 GET(); PRO(); PUT();

Coend //并发结束 return 0; } (3分) //GET进程 void GET(){ while(1) { …

wait(empty1); wait(mutex1); 将信息送入buf1; signal(mutex1); signal(full1); … }

} (3分) //PRO进程 void PRO(){ while(1) {

wait(full1); wait(mutex1);

从buf1中取出信息; signal(mutex1);

signal (empty1); wait(empty2); wait(mutex2); 将信息送入buf2; signal(mutex2); signal(full2); }

} (4分) //PUT进程 void PUT(){ while(1) {

wait(full2); wait(mutex2);

从buf2中取出信息; signal(mutex2); signal (empty2); } (3分)