操作系统大题
更新时间:2024-01-18 15:17:01 阅读量: 教育文库 文档下载
第一章:
1-1设有三道程序A,B,C,它们共同使用一个设备进行I/O操作,并按照A,B,C的优先次序执行,这三个程序的计算和I/O操作时间表如下表所示,假设调度时间可忽略不计,分别画出单道程序环境和多道程序环境下,它们的运行的时间关系图。并比较运行时间。(抢占和非抢占)。(单位ms)
程 作 操 序 A 30 40 10 B 60 30 10 C 20 40 20 计算 I/O 计算
1-2.一个计算机系统,有一台输入机和一台打印机,现有两道程序投入运行,且程序A先开始做,程序B后开始做。
程序A的运行轨迹是:计算50ms,打印100ms,再计算50ms,打印100ms,结束。 程序B的运行轨迹是:计算50ms,输入80ms,再计算100ms,结束。 试说明:
1.两道程序运行时,CPU有无空等待?若有,在哪段时间内等待? 2.程序A,B有无等待CPU的情况?若有,指出发生等待的时间 解:
解:1.有 100ms---150ms
2.程序A没有,程序B有,在180ms---200ms时程序B等待,由于此时程序A已经占用CPU。
第二章:
2-1 试画出下面四条语句的前驱图: S1: a∶=x+2 S2: b∶=a+4 S3: c∶=a+b
S4: d∶=x+b
解:前趋关系:S1-->S2,S1-->S3,S2-->S3,S2-->S4,S3-->S4。(PS:前趋图的线不能交叉。) S2 S4 S1 前趋图: S3
1. 设有8个程序段P1,P2,…,P8,它们在并发执行时有如下图所示的制约关系,试用信号量实现这些程序段之间的同步。
解:将上图转换为前趋关系
Var a,b,c,d,e,f,g,h,i,j,k;
Semaphore:=0,0,0,0,0,0,0,0,0,0,0; Begin Parbegin
Begin P1; signal(a); signal(b); signal(c); end; Begin P2; signal(d); signal(e); signal(f); end; Begin wait(a); wait(d); P3; signal(g); end;
Begin wait(b); wait(e); P4; signal(h); end; Begin wait(c); wait(f); P5; signal(i); end; Begin wait(g); P6; signal(j); end; Begin wait(i); P7; signal(k); end;
Begin wait(h); wait(j); wait(k); P8; end; Parend end
2-3以下为记录型信号量两个原子操作:
Wait(s) //申请资源 Signal(s) //释放资源
s.count:=s.count - 1; S.count:=s.count +1;
if s.count<0 If s.count<=0 //表示有阻塞队列
then begin Then begin
进程阻塞; 唤醒队首进程;
进程进入s.quene队列; 将该进程从s.quene队列中移出;
End; End;
2.一个生产者,一个消费者,公用n个环形缓冲区(可能考小题)
伊利牛奶厂生产很多牛奶,放在永辉超市多个分店销售,小明可以从任一间超市买到牛奶,同样,只有当厂商把牛奶放在某一分店时,小明才可以从分店中买到牛奶。
分析:与情况一不同,情况二有N个分店(即N个缓冲区形成一个环形缓冲区),所以要利用指针,要求厂商必须按一定的顺序将商品依次放到每一个分店中。 缓冲区对的指向则通过模运算得到。
解:定义两个同步信号量
Empty:表示缓冲区是否为空,初值为n(缓冲区的数量). Full:表示缓冲区是否为满,初值为0.
设缓冲区编号0--(n-1),定义两个指针in和out。
In:指示下一个可投放产品的缓冲区,每为生产者生产并投放一个产品,指针+1, in=(in+1)mod n. ----取模运算
Out:指示下一个可获取产品的缓冲区,每当消费者取走一个产品,指针+1, out=(out+1)mod n. ----取模运算 生产者进程
消费者进程
While(true){
While(true){
生产一个产品;
P(full);
P(empty);
从缓冲区中取产品;
产品送往缓冲区(Buffer);
out=(out+1)mod n.
in=(in+1)mod n.
V(empty);
V(full);
消费产品;
}
3.一组生产者,一组消费者,公用N个环形缓冲区(可能考小题)
有伊利、蒙牛、光明等多家生产厂家,消费者也不只小明一人,有很多消费者,不同厂家把产品放在永辉超市不同分店中销售,不同的消费者可以去不同大的分店中购买。当某一个分店已放满某个厂家的商品时,下一个厂家只能把商品放在下一家分店中。
分析:
生产者和消费者之间是同步关系。
各个生产者之间、各个消费者之间是互斥关系,互斥访问缓冲区。
解:定义4个信号量:
Empty:表示缓冲区是否为空,初值为n(缓冲区的数量). Full:表示缓冲区是否为满,初值为0. Mutex1:生产者之间的互斥信号量,初值为1 Mutex2:消费者之间的互斥信号量,初值为1.
设缓冲区编号0--(n-1),定义两个指针in和out。
In:指示下一个可投放产品的缓冲区,每为生产者生产并投放一个产品,指针+1, in=(in+1)mod n. ----取模运算
Out:指示下一个可获取产品的缓冲区,每当消费者取走一个产品,指针+1,
正在阅读:
操作系统大题01-18
关于中国共产党90年历程的回顾与思考11-11
文明乘车作文400字06-24
微机原理 - 第二版 - 课后作业第四章(朱金钧)01-12
以职业道德教育为例探索立德树人视角下高校思想政治理论课创新03-16
游园活动谜语(语文、数学、脑筋急转弯)11-28
怎样做好项目前期工作05-24
我在书中成长作文550字07-08
云南跨境民族问题与国家安全研究04-24
小学生我的中国梦作文500字02-05
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 操作系统