操作系统课程作业.docx
- 文档编号:24476697
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:8
- 大小:21.19KB
操作系统课程作业.docx
《操作系统课程作业.docx》由会员分享,可在线阅读,更多相关《操作系统课程作业.docx(8页珍藏版)》请在冰豆网上搜索。
操作系统课程作业
2.9有五个作业正等待运行,他们估计运行时间分别为:
9,6,3,5和X。
为了获得小的平均周转时间,应该按照什么顺序运行它们?
(你给出的答案应该是X的函数)。
(1)x<=3运算顺序为:
Px,P3,P5,P6,P9;
T=(x+(x+3)+(x++3+5)+(x+3+5+6)+(x+3+5+6+9))/5=x+9.6;
(2)3 P3,Px,P5,P6,P9; T=(3+(3+x)+(3+x+5)+(3+x+5+6)+(3+x+5+6+9))/5=0.8x+10.2; (3)5 T=0.6x+11.2; (4)6 T=0.4x+12.4; (5)9 T=0.2X+14.2; 2-12假设系统有四道作业,他们的提交时间及估计执行时间(以下是为单位)如下表所示。 在单道批处理系统中,采用先来先服务、最短作业优先和响应比高者优先的调度算法时,分别计算下表列出作业的平均周转时间。 作业号 提交时间(小时) 估计运行时间(小时) 1 2 3 4 8.00 9.00 9.50 10.20 2.0 1.2 0.5 0.3 计算机采用CSCF、SJN、RHN的平均周转时间和平均带权周转时间: 作业号 提交时间 估计运行时间 开始运行时刻 FCFSSJNRHN 完成时刻 FCFSSJNRHN 1 2 3 4 8.00 9.00 9.50 10.20 2.0 1.2 0.5 0.3 8.08.08.0 10.010.810.5 11.210.010.0 11.710.511.7 10.010.010.0 11.212.011.7 11.710.510.5 12.010.812.0 2.05/3.307 1.65/1.875 1.875/2.8125 1)FCFS作业运行程序: 1.2.3.4 各作业的周转时间Ti和平均周转时间T: T1=10.00-8.00=2.0T2=11.2-9.00=2.2 T3=11.7-9.5=2.2T4=12.0-10.2=1.8 T=(T1+T2+T3+T4)/4=(2.0+2.2+2.2+1.8)/4=8.2/4=2.05 各个作业的平均带权周转时间W计算如下 W=(2/2+2.2/1.2+2.2/0.5+1.8/0.3)=(1+1.83+4.4+6)/4=3.307 2)SJN作业运行程序: 1.2.3.4 T1=10.00-8.00=2.0T2=12-9.00=3 T3=10.5-9.5=1.0T4=10.8-10.2=0.6 T=(T1+T2+T3+T4)/4=(2.0+3.0+1.0+0.6)/4=6.6/4=1.65 各个作业的平均带权周转时间W计算如下 W=(2/2+3/1.2+1/0.5+0.6/0.3)/4=1.875 3)RHN作业运行程序: 1.2.3.4 先选择作业1从8.00---------10.00。 当作业1完成时,究竟选谁运行,只有通过计算,选择响应比较高者运行: 作业2的响应比=((10-9.0)+1.2)/1.2=1.83 作业3的响应比=((10-9.5)+0.5)/0.5=2.0 作业4还未到,只能选作业3运行。 作业3进行到10.5结束,再计算剩余的作业2和4: 作业2的响应比=((10.5-9.0)+1.2)/1.2=2.25 作业4的响应比=((10.5-10.2)+0.3)/0.3=2选作业2运行。 作业2到11.7完成。 最后运行作业4。 运行到12.0全部结束。 各个作业的周转时间计算如下: T1=2T2=11.7-9=2.7T3=10.5-9.5=1T4=12-10.2=1.8 各个作业的平均周转时间计算如下: T=(2+2.7+1+1.8)/4=1.875 各个作业的平均带权周转时间计算如下: W=(2/2+2.7/1.2+1/0.5+1.8/0.3)/4=2.8125 3-8.有一容量为100的循环缓冲区,有多个并发执行进程通过该缓冲区进行通信。 为了正确地管理缓冲区,系统设置了两个读写指针分别为IN、OUT。 IN和OUT的值如何反映缓冲区为空还是满的情况。 首先这里的IN和OUT分别表示读写指针,而不是信号量。 在系统初启时,环行缓冲区为空,此时IN和OUT都初始化为0。 当并发进程通过环行缓冲区通信时,写进程不断的写,读进程不断的读,使得读写指针不断变化。 写进程的速度太快,缓冲区会满;读进程的速度太快,缓冲区会空。 已知循环缓冲区的容量为100,则 当(IN+1)%100=OUT时,说明缓冲区已满。 当IN=OUT时,说明缓冲区已空。 初始化时,IN=OUT=0,一段时间以后: B1 B2 B3 B4 OUTIN 3-15.设有8个进程M1,M2,….M8,它们有如图3.16所示的优先关系,试用P、V操作实现这些进程间的同步。 M1: M2: M3: M4: …… P(s12); P(s13); P(s14); V(s12); …… …… …… V(s13); V(s26); V(s36); V(s47); V(s14); …… V(s38); …… 附加: m个同类资源,n个进程,每个进程的对资源的最大需求量: 当m>n时,每个进程最多可以请求[m/n]个该类资源 当m=n时,每个进程最多可以请求1个该类资源 当m (当m>n时,每个进程最多可以请求(m+n-1)/n个该类资源) 3-21.考虑某一系统,它有四类资源R1,R2,R3,R4,有5个并发进程P0,P1,P2,P3,P4。 请按照银行家算法回答下列问题: 分配向量 最大需求量 R1 R2 R3 R4 R1 R2 R3 R4 P0 0 0 1 2 0 0 1 2 P1 1 0 0 0 1 7 5 0 P2 1 3 5 4 2 3 5 6 P3 0 6 3 2 0 6 5 2 P4 0 0 1 4 0 6 5 6 当前剩余资源向量 R1 R2 R3 R4 1 5 0 2 (1)个进程的最大资源请求和分配的资源矩阵及系统当前的剩余资源向量如图3.18所示,计算各进程的剩余资源请求向量组成的矩阵。 (2)系统当前处于安全状态吗? (3)当进程P2申请的资源分别为(1,0,0,1)时,系统能立即满足吗? (1) 最大需求矩阵 分配矩阵 剩余请求矩阵 0012 0012 0000 1750 1000 0750 Max= 2356 Allocation= 1354 Need= 1002 0652 0632 0020 0656 0014 0642 剩余资源向量: Available=(1502) (2)当前系统是安全的。 判断系统是否安全,只要检查系统剩余资源向量能否对各进程的剩余请求向量找到一个进程完成序列,当按照这个序列为各进程分配资源时,各进程都能成功完成。 若能找到,则系统是安全的,否则,为不安全。 先找到p0,因为p0已满足最大资源请求,它可以完成,释放其占有的资源,使系统剩余资源向量为(1514) 之后,系统剩余资源向量(1514),可满足进程p2,使p2可以完成,释放其占有的资源,使系统剩余资源向量为(2868) 之后无论选哪一个进程都可以成功完成。 故找到的进程完成序列可为: p0,p2,p4,p3,p1;或p0,p2,p3,p1,p4等,故系统是安全的。 (3)因系统剩余可用向量为(1502),p2的剩余请求向量为(1002),即(1502)>(1002)。 故,当p2提出(1001)请求时,能满足。 进程完成序列: p0,p2,p4,p3,p1。 3-作业生产进程两个P操作顺序互换会发生什么现象? 无论是生产者还是消费者,P操作的顺序是重要的,应该将互斥使用的信号量P操作放在紧挨临界区的位置,如果把生产者进程中的两个P操作交换顺序,当缓冲区满时,生产者欲向缓冲区放产品时,将在P(empty)上等待,但它已得到了使用缓冲区的权力。 若此后,消费者欲取产品时,由于申请使用缓冲区不成功,它将在P(mutex)上等待,从而导致生产者等待消费者取走产品,而消费者却在等待生产者释放缓冲区,这种相互等待是无休止的,从而造成系统死锁。 4-14考虑有一个可变分区系统,含有如下顺序的空闲区: 10K,40K,20K,18K,7K,9K,12K和15K.现有请求分配存储空间的序列: (1)12K; (2)10K;(3)9K. 若采用首次适应算法时,将分配哪些空间区;若采用最佳、最坏适应算法呢? (1)若采用首次适应算法 ●12K的请求,将分配40K的空闲块,40K变为剩余的(40-12)K=28K;空闲队列变为: 10K\28K\20K\18K\7K\9K\12K和15K; ●10K的请求将分配10K的空闲块,空闲队列变为: 28K\20K\18K\7K\9K\12K和15K; ●9K的请求将分配28K的空闲块,空闲队列变为(28-9)=19K\20K\18K\7K\9K\12K和15K; (2)最佳适应算法 ●12K的请求将分配12K的空闲块,空闲队列变为: 10K\40K\20K\18K\7K\9K\15K; ●10K的请求将分配10K的空闲块,空闲队列变为: 40K\20K\18K\7K\9K\15K; ●9K的请求将分配9K的空闲块,空闲队列变为: 40K\20K\18K\7K\15K; (3)最坏适应算法 ●12K的请求将分配40K的空闲块,空闲队列变为: 10K\28K\20K\18K\7K\9K\15K; ●10K的请求将分配28K的空闲块,空闲队列变为: 20K\18K\7K\9K\12K\15K; ●9K的请求将分配20K的空闲块,空闲队列变为: 11K\18K\7K\12K\15K 4-15.有如图4.32所示的页表中的虚地址与物理地址之间的关系,即该进程分得6个主存块。 页的大小为4096.给出对应下面虚地址的物理地址。 (1)20; (2)5100; (3)8300; (4)47000; 解: (1)虚地址20变为页号0和页内偏移20 由页号查页表得0页对应内存块号为2,可计算得物理地址=块号*页的大小+页内偏移=2*4096+20=8212 (2)虚地址5100变为页号1和页内偏移1004(5100/4096) 由页号查页表得1页对应内存块号为1,可计算得物理地址=块号*页的大小+页内偏移=1*4096+1004=5100 (3)虚地址8300变为页号2和页内偏移108 由页号查页表得2页对应内存块号为6,可计算得物理地址=块号*页的大小+页内偏移=6*4069+108=24684 (4)虚地址47000变为页号11和页内偏移1944 11>7页号越界。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 课程 作业