操作系统第五次作业参考答案.doc_第1页
操作系统第五次作业参考答案.doc_第2页
操作系统第五次作业参考答案.doc_第3页
操作系统第五次作业参考答案.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

作业共有3次:操作系统作业(2011-04-18)、操作系统作业(2011-04-21)、课本(P159-26)操作系统作业(2011-04-18):1、 下表给出了五个进程的执行时间和优先数,规定优先数越小优先权越大,在某时刻这五个进程按照P0、P1、P2、P3、P4的顺序同时到达,求在采用如下算法时进程的平均周转时间和平均带权周转时间。(1)先来先服务调度算法(2)短进程优先调度算法(3)时间片轮转调度算法(时间片为5ms)(4)优先权调度算法进程执行时间(ms)优先数P0203P1152P2354P3251P4405 参考答案:(1)作业执行顺序:P0、P1、P2、P3、P4; 71ms; 2.50 (2)作业执行顺序:P1、P0、P3、P2、P4;68ms; 2.25 (3)作业执行顺序:略;105ms; 3.83 (4)作业执行顺序:P3、P1、P0、P2、P4;71ms; 2.552、 在分页存储管理系统中,存取一次内存的时间是8us,查询一次快表的时间是1us,缺页中断的时间是20us,假设页表的查询与快表的查询同时进行。当查询页表时,如果该页在内存但快表中没有页表项,系统将自动把该页页表项送入快表。(1)求对某一数据进行一次存取可能需要的时间?(2)现连续对同一页面上的数据进行4次连续读取,求每次读取数据可能需要的时间?参考答案:(1) 当系统对数据进行存取时,有3种可能性: 所存取的数据的页面在内存,其页表项已经存储到快表,此时存取数据的时间是:查询快表的时间+存取内存数据的时间=1us+8us= 9us 所存取的数据的页面在内存,但是其页表项没有存储到快表,没有命中快表,此时存取数据的时间是:查询页表的时间+存取内存数据的时间=8us+8us= 16us 所存取的数据的页面不在内存,发生缺页中断,此时存取数据的时间是:查询页表的时间+缺页中断的时间+查询页表的时间+存取内存数据的时间=8us+20us+8us+8us = 44us(2) 当对某一数据进行4次连续读取时: 第1次可能的时间为:1us+8us= 9us;8us+8us= 16us;8us+20us+8us+8us=44us。 第2次时,对应页面的页表项已经交换到快表中。因为存取是连续的,不存在页面被淘汰的可能性,所以第2次、第3次、第4次的存取时间是一样的,消耗的时间为1us+8us= 9us。3、 在一个分页存储管理系统中,逻辑地址长度为16位,页面大小为4096字节,现有一逻辑地址2F6AH,且第0、1、2页依次存放在物理块5、10、11中,问相应的物理地址为多少(请用十六进制表示)?并画出地址转换图。参考答案:(BF6AH) 注意:还要画出地址转换图操作系统作业(2011-04-21):1、 假定某采用页式存储管理系统中,主存容量为1MB,被分成256块,块号为0,1,2,255。现有一个共4页(页号为0,1,2,3)的作业被依次装入到主存的第2,4,1,5块中。请回答: (1)主存地址应该用多少位来表示?(2)作业每一页的长度为多少字节?逻辑地址中的页内地址部分应占用多少位? (3)画出页表并给出作业中每一页占用的主存块起始地址。 (4)若作业执行中要从第0页的第75单元和第3页的第548单元读信息,那么,实际应从主存的哪两个单元读信息?请把应访问的主存绝对地址用十六进制数表示。参考答案(1)主存地址应该用20位来表示。 (2)作业每一页的长度应为2 12 =4096个字节,逻辑地址中的页内地址部分应占用12位。 (3)作业中每一页占用主存块的起始地址为: 页号 块号 起始地址 0 2 8K 1 4 16K 2 1 4K 3 5 20K (4)若作业执行中要从第0页的第75单元读信息,则实际应从主存的第2块第75单元读,应访问的主存绝对地址用十六进制数表示为0204BH。若要从第3页的第548单元读信息,则实际应从主存的第5块第548单元读,应访问的主存绝对地址用十六进制数表示为:05224H。2、 兄弟俩共用一个账号,他们都可以用该账号到任何一家联网的银行自动存款或取款。假定银行的服务系统由“存款”和“取款”两个并发进程组成,且规定每次的存款额和取款额总是为100元。若进程结构如下: begin amount:integer; amount:0; cobegin Process SAVE m1: integer; begin m1:amount; m1:m1+100; amount:m1 end; Process TAKE m2:integer; begin m2:amount; m2:m2-100; amount:m2 end; coend; end;请回答下列问题:(1)请估计该系统工作时会出现怎样的错误?为什么?(2)若哥哥先存了两次钱,但在第三次存钱时弟弟却正在取钱,则该账号上可能出现的余额为多少?正确的余额应该为多少?(3)为保证系统的安全,若用PV操作来管理,应怎样定义信号量及其初值?解释信号量的作用。(4)在程序的适当位置加上P操作和V操作,使其能正确工作。参考答案(1)系统工作时会出现与时间有关的错误,这是因为并发进程中没有对共享变量amount的使用加以限制,进程交叉访问amount时就会出错。(2)账号上可能出现的余额为100元或200元或300元,正确的余额应该为200元(3)用PV操作管理时可定义一个信号量S,S的初值为1,信号量S用于限制进程互斥地进入相关临界区执行。(4)使用PV操作管理后能保证正确并发执行的进程结构如下:begin amount:integer; s:semaphore; amount:=0; s:=1;cobegin| Process SAVE m1:integer; begin P(S); m1:=amount; m1:=m1+100; amount:=m1; V(S) end; Process TAKE m2:integer; begin P(S); m2:=amount; m2:=m2-100; amount:=m2; V(S) end; coend: end; 3、 有一仓库,可存放A和B两种产品,每次入库时只能存入A或B一种产品,每次出库时只能取出A或B一种产品。现要求:(1) -30A产品数量-B产品数量40 (2) A产品数量+B产品数量200 试用P、V操作描述产品的入库过程和出库过程。参考答案main()Semaphore empty=199; /A+B200 Semaphore full=0; Semaphore mutex=1; Semaphore AB=39; /A-B40 Semaphore BA=29; /B-A30 Cobegin InLib(); OutLib(); Coend 入库过程 InLib(): 出库过程OutLib() :while(有产品入库) while(有产品出库) if(产品为A) if(产品为A) P(empty); P(full) P(AB) P(BA) P(mutex) P(mutex) A产品入库 A产品出库 V(mutex) V(mutex) V(BA) V(AB) V(full); V(empty) else else P(em

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论