操作系统复习题2016 联系客服

发布时间 : 星期日 文章操作系统复习题2016更新完毕开始阅读a35eb41b5fbfc77da369b188

售票; wait(S2) 开车门; }

2.桌子上有一个空盘子,允许存放一只水果,爸爸可以向盘中放苹果,妈妈向盘子中放橘子,女儿专门吃盘子中的苹果,儿子专门吃盘子中的橘子。规定当盘子空的时候一次只能放一只水果,请用信号量实现他们之间的同步与互斥。

解:设置三个信号量S,So,Sa分别表示可否向盘中放水果,可否取桔子,可否取苹果。 初值分别为1,0,0。 Father() { while(1) { wait(S); 将苹果放入盘中; signal(Sa); } } Mother() { while(1) { wait(S); 将橘子放入盘中; signal(So); } } Son() { while(1) { wait(So) 取桔子 signal(S); 吃桔子; } } Daughter() { while(1) { wait(Sa) 取苹果 signal(S); 吃苹果; } }

3.桌上有一空盘,最多允许存放一只水果。爸爸可向盘中放一个苹果或放一个桔子,儿子专等吃盘中的桔子,女儿专等吃苹果。试用wait、signal操作实现爸爸、儿子、女儿三个并发进程的同步。 解

设置三个信号量S,So,Sa ,初值分别为1,0,0。分别表示可否向盘中放水果,可否取桔子,可否取苹果。

Father() { while(1) { wait(S); 将水果放入盘中; if(是桔子) signal( (So); else signal(Sa); } } Son() { while(1) { wait (So) 取桔子 signal( (S); 吃桔子; } } Daughter() { while(1) { wait (Sa) 取苹果 signal( (S); 吃苹果; } }

4.有4个进程A,B,C,D共享一个缓冲区,进程A负责循环地从文件读一个整数放入缓冲区,进程B从缓冲区取出MOD 3为0的整数并累计求和;进程C从缓冲区取出MOD 3为1的整数并累计求和;进程D从缓冲区取出MOD 3为2的整数并累计求和.请用wait、signal操作写出能够正确执行的程序。

解:Semaphore mutex=1,S0=0,S1=0,S2=0; int buffer=0,sumA=0,sumB=0,sumC=0,y=0 进程A while(true) {

从文件读入一个整数x; wait(mutex) buffer=x; signal( (mutex)

if buffer mod 3==0 signal(S0) else if buffer mod 3 ==1) signal(S1) else signal(S2) } 进程B while(true) {

wait(S0); wait(mutex); y=buffer; signal( (mutex) sumB=sumB+y; } 进程C while(true) {

wait(S1); wait(mutex); y=buffer; signal( (mutex) sumC=sumC+y; } 进程D

while(true) {

wait(S2); wait(mutex); y=buffer; signal( (mutex) sumD=sumD+y; }

复习题三

一、选择题

1.既考虑作业的执行时间又考虑作业的等待时间的调度算法是( C )。

A.短作业优先;B.先来先服务;C.响应比高者优先;D.优先级调度

2.一个实时系统使用了4个周期事件,其周期分别为50ms,100ms,200ms,250ms。假设这4个周期事件分别需要35ms,20ms,10ms和x ms的CPU时间。保持系统可调度的最大x值是( C )

A.12 B.11 C.12.5 D.13

3.设系统有一类数量为M的独占性资源,系统中N个进程竞争该类资源,每个进程对资源的最大需求为W。当M,N,W分别取下列哪个值时,系统不会发生死锁的是( B )。

A.M=2;N=2;W=2; B.M=3;N=2;W=2; C.M=3;N=2;W=3; D.M=6;N=3;W=3; 4.关于安全状态的说法正确的是( B )

A.系统处于不安全状态一定会发生死锁。 B.系统处于不安全状态可能发生死锁。 C.不安全状态是死锁状态的一个特例。 D.系统处于安全状态时也可能发生死锁。 5.操作系统中,( A )负责对进程进行控制。

A.处理机管理功能 B.文件管理功能 C. 设备管理功能 D.存储管理功能 6.为了对紧急进程或重要进程进行调度,调度算法应采用( B )。

A.先来先服务法B. 优先级法 C.短作业优先法D. 时间片轮转法 7.避免死锁的一个著名的算法是( B )。

A.先入先出法 B.银行家算法 C.优先级算法 D.资源按序分配法 二、填空题

1.就绪队列中有n个就绪进程等待cpu调度,如果采用不同的调度算法,总共可能有n!种调度顺序。

2.有m(m>2)个进程的系统中出现死锁时,死锁进程的个数范围是2~m。 3.进程调度的方式有抢占式调度和非抢占式调度。 4.资源的有序分配策略可以破坏死锁的环路等待条件。

5.一个进程执行前必须获得所需要的所有资源,在只执行的过程中不在申请资源,这种策略可以破坏死锁的请求和保持条件。

6.产生死锁的四个必要条件是互斥条件、不抢占条件、请求和保持条件、环路等待条件。 7.作业从进入系统到最后完成,可能要经历三级调度,分别是: 高级调度 , 中级调度

和 进程调度 。 三、应用题

1.有一个具有两道作业的批处理系统,作业调度采用短作业的调度算法,进程调度采用以优先数为基础的抢占式调度算法,有如下表所示的作业序列(表中所列作业优先数为进程优先数,数值越小,优先级越高)。 (1)列出所有作业进入内存的时刻及结束时刻。 (2)计算平均周转时间

作业名A B C D

到达时刻10:00 10:20 10:30 10:50

估计运行时间 40 30 50 20

优先数 5 3 4 6

解答:(1)10:00 A到达,无竞争,A进入内存,开始运行;

10:20 B到达,B进入主存,优先数为3,优于A,B开始运行; 10:30 C到达,由于内存中已经有两个进程,故不可进入;

10:50 B结束,同时D到达,同C争夺内存,D运行时间短,D被调度进入内存;A

的优先数高,开始运行;

11:10 A结束,C进入内存,C的优先数高于D,C开始运行; 12:00 C结束, D开始运行; 12:20 D结束。

(2)平均周转时间=280/4=70分钟

2.假设有4道作业,它们的提交时刻及执行时间由下表给出:

作 业 号 提交时刻 执行时间