操作系统教材答案陈向群杨芙清 下载本文

实时系统采用的是抢占式进程调度

27.试述进程调度得主要任务,为什么说它把一台物理机变成了多台逻辑上的处理机 答:处理机调度的任务是控制协调进程对 CPU 的竞争即按一定的调度算法从就绪队列中选 中一个进程,把 CPU 的使用权交给被选中的进程

多个进程虽然在微观上仍然是顺序执行,但是在宏观上,仿佛是并发执行 28.在 CPU 按优先级调度的系统中 1),没有运行的进程是否一定没有就绪进程

2)没有运行进程,没有就绪进程或两者都没有是否可能?各是什么情况? 3)运行进程是否一定是自由进程中优先数最高的? 答:1)一定没有

2) 没有运行进程,一定没有就绪进程;没有就绪进程可能有等待进程,也可能有运行 进程;两者都没有,可能有等待进程

3)不一定,可能出现等待进程中优先级更高

29.对某系统进行监测后表明平均每个进程在 I/O 阻塞之前的运行时间为 T,一次进程切换 的需要的时间是 S,实际上就是开销,对于采用的时间片长度为 Q 的时间片轮转法,请给出 1)Q=无穷,2)Q>T , 3)S

2)当 Q>T 时, CPU 的利用率=T/(T+S)*100%(当进程运行完后,就切换,也就相当于时间 片=T )

3)当 S

5)当 Q 趋于 0,CPU 的利用率=T/T+nS=0 (n 趋于无穷)

30,大多数时间片轮转调度程序使用一个固定大小的时间片,请给出选择小时间片的理由 ,然后再给出选择大时间片的理由

答:选择小时间片:I/O 密集型,可以缩短响应时间,满足短的交互需求 选择大时间片:CPU 密集型,可以防止过多的进程切换,提高 CPU 效率

31.有 5 个批处理作业 A 到 E 几乎同时到达一计算中心。他们估计运行时间分别为 10,6,2,4 和

8 分钟,其优先数(由外部设定)分别为 3,5,2,1,4 其中 5 级为最高优先级,对于下列每 种调度算法,计算其平均周转时间,可忽略进程切换的开销。 1) 时间片轮转法 2) 优先级调度法

3) 先来先服务法(按照次序 10,6,2,4,8 运行) 4) 最短作业优先 对 1),假设系统具有多道处理能力,每个作业均获得公平的 CPU 时间,对(2) 和(4)假设 任一时刻只有一个作业运行,直到结束,所有作业都是 CPU 密集型作业! 答:1) 和时间片的长短有关,比较繁琐!

2)运行顺序是(6,8,10,2,4) (6+14+24+26+30)/4=100/4=25 3)(10+16+18+22+30)/4=96/4=24

4) (2+(2+4)+(2+4+6)+(2+4+6+8)+( 2+4+6+8+10))/4=17.5

32:有 5 个待运行的作业,他们的估计运行时间分别是 9,6,3,5,采用哪中次序运行各个 作业将得到最短的平均响应时间?答案依赖于 X

答:由于 5 个作业同时到达,所以按最短作业优先调度会得到最短的响应时间:

9≤x 3 5 6 9 x 6≤x≤9 3 5 6 x 9 5≤x≤6 3 5 x 8 9 3≤x≤5 3 x 5 8 9 x≤3 x 3 5 8 9

33,在一间酒吧里有三个音乐爱好者队列,第一列音乐爱好者只有随身听,第二列只 有音乐

磁带,第三列只有电池,而要听音乐就必须有随身听,音乐磁带和电池这三中物品 。酒吧老板一次出售这三种物品中的任意两种,当一名音乐爱好者得到这三种物品 并听完乐曲后,酒吧老板才能再一次出售这三种物品中任意两种,于是第二名音乐 爱好者得到这三种物品。并开始听乐曲,全部买卖九这样进行下去。 使用 P,V 操作正确解决这一买卖。

解:买方有三个进程,卖方有 1 个进程

卖方,和买方的同步信号量 S1,S2 ,初值为 0,1. 听音乐时的互斥信号量;mutex 卖方进程

P(S1) (没有音乐爱好者,等待) 卖物品 P(mutex) 放音乐 V(mutex) V(S2) 买方进程 P(S2) 买物品

V(S1) {老板可以卖东西}

34.巴拿马运河建在太平洋和大西洋之间,由于太平洋和大西洋水面高度不同,有巨大落 差,所以运河中建有 T(T≥2)级船闸,并且只能允许单向通行,船闸依次编号为 1,2,?,T ,由大西洋来的船需要经过船闸 T,T-1.,,,2,1 通过运河到达太平洋,由太平洋来的船需要 经由船闸 1,2,?,T-1,T 通过运河到达大西洋。

使用 P,V 操作正确解决大西洋和太平洋的船只通航问题。

答:答:Array: S1[T] of Semaphore {为每个船闸设置的信号量初值都为 1}

Array: count1[T] of INTEGER {为每个船闸设置通往大西洋的船的计数值,初值都为 0}

Array: count2[T] of INTEGER {为每个船闸设置通往太平洋的船的计数值,初值都为 0}

对 count 设置互斥信号量 mutex 去大西洋的进程: int j

for(j=0;j

if(count1[j]==0) P(S[j]) count[j]++

过第 j+1 个船闸 P(mutex) count[j]--

if(count[j]==0) V(S[j]) V(mutex) }

去太平洋的进程: int k

for(k=T-1;k≥T,k++){ P(mutex)

if(count2[k]==0) P(S[k]) count[k]++

过第 k+1 个船闸 P(mutex) count[k]--

if(count[k]==0) V(S[k]) V(mutex) }

35.某银行有人民币储蓄业务,由 n 个柜员负责,每个顾客进入银行后,先取一个号,并且 等着叫号,当一个柜员人员空闲下来,就叫上一个号,使用 P,V 操作正确编写柜台人员和 顾客进程的程序!

解; 取号的互斥信号量 mutex,叫号的互斥信号量 mutex1 柜台人员和顾客进程的同步信号量为 S1,S2, 初值分别为 n,0 柜台人员进程:

P(S2) (无顾客则等待) P(mutex1) 叫号

V(mutex1) 服务 V(S1) 顾客进程 P(mutex) 取号 V(mutex) P(S1) 享受服务 V(S2)

36,设 A,B,C 三个进程共享一个存储资源 F,A 对 F 只读不写,B 对 F 只写不读,C 对 F 先读后写。

(当一个进程写 F 时,其他进程既不能读 F,也不能写 F,但多个进程同时读 F 是允许的)试 利用管程的方法或者 P,V 操作,写出 A,B,C 三个进程的框架,要求:(1)执行正确

(2)正常运行时不产生死锁;(3)使用 F 的并发度高 37,某系统如此定义 P,V 操作 P(S) S=S-1

若 S<1 本进程进入等待队列末尾,否则继续进行 V(S) S=S+1

若 S≤0,释放等待队列中末尾的进程,否则继续运行。

现有四个进程 P1,P2,P3,P4 竞争使用某一需要互斥使用的资源(每个进程可能反复使用多 次),使用这样的 P,V 操作来正确的实现互斥。 解:

S:ARRAY[0,,,3] OF Semaphore{初值为 s[i]=i,i=0,1,2,3 } 访问进程

for i:=3 downto 1 do P(s[i])

临界区操作

for i:=1 To N-1 Do V(S[i])

38,请用进程通信的办法解决生产者,消费者问题 39,请用管程实现哲学家就餐问题 第五章 存储管理

1.产生存储分配问题的背景是什么?何谓静态分配?何谓动态分配?动态分配的原因是 什么?

答:一个有效的存储分配机制,应对用户提出的需求做出快速响应,为之分配相应的存储 空间,在用户作业不需要它时,及时收回,供其他用户使用。 内存分配有两种方式

1)静态分配:程序要求的内存空间是在目标模块连接装入内存时确定并分配的,并且在 程序运行过程中不允许再申请或在内存中“搬家”,也就是分配工作是在程序运行前一次 性完成

2)动态分配:程序要求的基本内存空间是在目标模块连接装入内存时确定并且分配的, 但是在运行过程中,允许申请附加的内存空间或在内存中“搬家”,也就是分配工作可以 在程序运行前及运行过程中逐步完成

动态分配的原因:动态分配具有较大的灵活性,对提高内存的利用率,比静态分配更合理 些。

2.阐述操作系统中选择存储管理方案的原则。 答: 原则:

1. 存储管理必须合理地分配内存空间

2.为了避免内存中的各个程序相互干扰,还必须实现存储保护 3.有效利用内存空间,允许多个作业共享程序和数据

4.为了在内存中运行长度为任意大小的程序,必须采用一定的方法“扩充”内存

3.可变分区管理方式下,采用移动技术有什么优点?移动一道作业时操作系统要做哪些工