计算机操作系统复习要点 联系客服

发布时间 : 星期六 文章计算机操作系统复习要点更新完毕开始阅读93fd8cf804a1b0717fd5dd1d

解: 0ms 50 100 150 180 200 300ms 程序A: 计算 打印 计算 打印 程序B: 计算 输入 计算 (1) 存在CPU空闲(在程序A运行后100ms-150ms之间,程序A正打印,程序B正输入) (2) 程序A运行后无等待现象,程序B运行后有等待现象(在A开始180ms-200ms之间;或

程序B在运行后130ms-150ms之间)

4、 假设就绪队列中有10个进程,系统将时间片设为200ms,CPU进行进程切换要花费用10ms,

试问系统开销所占的比率约为多少? 解: 10个进程以时间片轮转的方式使用CPU。

系统总时间(200ms+10ms)

系统开销所占的比率: 10/(200+10)= 4.8%

5、 考虑5个进程P1,P2,P3,P4,P5,见表,规定进程的优先数越小,优先级越高,试描述在采

用下述调度算法时各个进程运行过程,并计算采用每种算法时进程平均周转时间。假设忽略进程的调度时间。

1) 先来先服务调度算法;2)时间片轮转调度算法(时间片为1ms);3)非剥夺式优先级调

度算法;4)剥夺式优先级调度算法。 进程 P1 P2 P3 P4 P5 解:画出各调度算法的甘特图

列表算出各算法的平均周转时间:1)8.60 2)10.80 3) 8.60 4)7.80

创建时刻ms 0 2 4 6 8 运行时间ms 3 6 4 5 2 优先数 3 5 1 2 4 一、 解析题

操作,可能发生什么情况?。

1、在生产者和消费者问题中,如果对调生产者(消费者)进程中的两个P操作和V2、在测量控制系统中,数据采集任务把采集的数据送入一单缓冲区,计算任务从该单缓冲区中取出数据进行计算,试写出利用信号量机制实现两者共享单缓冲区的同步算法。

(本题实际上是一个生产者/消费者问题,将生产者/消费者问题抽象出来,以另外

一种形式描述是一种常见的试题形式)

Int Se=1; /*信号量SE用于表示缓冲区有无空位置存放新的信息。*/ Int SF=0; /*信号量SF用于表示缓冲区中有无可供计算的信息。*/ Main() { get(); compute();}

get() { : while(采集工作未完成) {采集一个数据; P(SE); 将数据送入缓冲区; V(SF); compute() {: while(计算工作未完成) { P(SF); 从缓冲区取出数据; V(SE); : } } : }

3、**在视频通信系统中,由进程PA采集一帧图像信息并存入环形缓冲区buffer,进程PB从buffer中取一帧数据进行处理,假设buffer的大小为n,试用P、V操作实现PA和PB。(类似生产者-消费者)

INT BUFFER-SIZE=N;

INT SF=0;/*BUFFER中是否有可取的信息*/

INT SE=N;/* BUFFER中是否有空位置以存放信息*/ MAIN() {

GET() COMPUTE() }

compute() { : while(计算工作未完成) { P(SF); 从缓冲区取出数据; V(SE); } : }

4、 5、 6、 7、 8、 9、 10、 11、 12、

get() {: while(采集工作未完成) {采集一个数据; P(SE); : } 将数据送入缓冲区; V(SF); 桌上有一空盘,允许存放一只水果,爸爸可向盘中放苹果,也可向盘中放桔子,

儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。规定当盘空时一次只能放一只水果供吃者取出,请用P、V原语实现爸爸、儿子、女儿三个并发进程的同步。

INT SE=1;/* 盘中是否为空*/ INT S0=0;/*盘中是否有可取的桔子*/ INT SA=0;/*盘中是否有可取的苹果*/ MAIN() {

COBEGIN FATHER();

SON(); DAUGHTER(); COEND }

}

FATHER() {: P(SE); 放水果; IF(水果为桔子) V(SO); ELSE V(SA); :

13、 14、 15、

} SON() {: P(SO); 取走桔子; V(SE); 吃桔子 } DAUGHTER() {: P(SA); 取走苹果; V(SE); 吃苹果 } 16、 17、

图给出了四个进程合作完成某一任务的前趋图,试说明这四个进程间的同步关

18、

系,并用P、V操作描述它。

S1 S2 S3 S4 { int b2=0: /*表示进程S2是否可以开始执行*/ int b3=0: /*表示进程S3是否可以开始执行*/ int b4=0: /*表示进程S4是否可以开始执行*/ Main() s1(); s2(); s3() s4() }

s1() { : V(b2); V(b3); : s2() { P(b2); : V(b4); s3() { P(b3); : V(b4); } s4() { P(b4); /*因在S2及S3完成时均对b4做了V操作,故需两个P操作。*/ P(b4); 19、 20、

} } :