第七章 操作系统应用题2(解答).doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1. 设有一台计算机,有两条I/O通道,分别接一台卡片输入机和一台打印机。卡片机把一叠卡片逐一输入到缓冲区B1中,加工处理后在搬到缓冲区B2中,并在打印机上印出,问:  ①系统要设几个进程来完成这个任务?各自的工作是什么?  ②这些进程间有什么样的相互制约关系?  ③用P、V操作写出这些进程的同步算法。 解: ①系统可设三个进程来完成这个任务:R进程负责从卡片输入机上读入卡片信息,输入到缓冲区B1中;C进程负责从缓冲区B1中取出信息,进行加工处理,之后将结果送到缓冲区B2中;P进程负责从缓冲区B2中取出信息,并在打印机上印出。 ②R进程受C进程影响,B1放满信息后R进程要等待——等C进程将其中信息全部取走,才能继续读入信息;C进程受R进程和P进程的约束:B1中信息放满后C进程才可从中取出它们,且B2被取空后C进程才可将加工结果送入其中;P进程受C进程的约束:B2中信息放满后P进程才可从中取出它们,进行打印。 ③信号量含义及初值: B1full—— 缓冲区B1满,初值为0;(B1full=1表示B1满) B1empty——缓冲区B1空,初值为1;(B1empty=1表示B1空) B2full—— 缓冲区B2满,初值为0;(B2full=1表示B21满) B2empty——缓冲区B2空,初值为1;(B2empty=1表示B2空) R进程 C进程 P进程 2、现有一个作业,在段式存储管理的系统中已为其主存分配,建立的段表内容如下: 段号 主存起始地址(段基址) 段长度 0 120 40 1 760 30 2 480 20 3 370 20 计算逻辑地址(2,15),(0,60),(3,18)的绝对地址是多少? 注:括号中第一个元素为段号,第二个元素为段内地址。 解: 段式存储管理的地址转换过程为:(1)根据逻辑地址中的段号查段表的相应栏目;(2)根据段内地址段长度,检查地址是否越界;(3)若不越界,则绝对地址=该段的主存起始地址+段内地址。 逻辑地址(2,15)查段表得段长度为20,段内地址1520,地址不越界,段号2查表得段首地址为480,于是绝对地址为480+15=495。 逻辑地址(0,60)查段表得段长度为40,段内地址6040,地址越界,系统发出“地址越界”中断。 逻辑地址(3,18)查段表得段长度为20,段内地址1820,地址不越界,段号3查表得段首地址为370,于是绝对地址=370+18=388。 3.若干个等待访问磁盘者依次要访问的柱面为20,44,40,4,80,12,76,假设每移动一个柱面需要3毫秒时间,移动臂当前位于40号柱面,请按下列算法分别计算为完成上述各次访问总共花费的寻找时间。 ?(1)先来先服务算法; ? (2)最短寻找时间优先算法。 解(1)3毫秒×292=876毫秒 (2)3毫秒×120=360毫秒 (注:各算法使移动臂的移动次序和移动的柱面数如下: (1)40 → 20 → 44 → 40 → 4 → 80 → 12 → 76 (20) (24)(4) (36) (76)(68) (64) 共移动292柱面 (2)40 → 44 → 20 → 12 → 4 → 76 → 80 (4) (24)(8) (8) (72)(4) 共移动120柱面 4.某系统中有10台打印机,有三个进程P1,P2,P3分别需要8台,7台和4台。若P1,P2,P3已申请到4台,2台和2台。试问:按银行家算法能安全分配吗?请说明分配过程。 解:系统能为进程P3分配二台打印机。因为尽管此时10台打印机已分配给进程P1 4台,P22台和P34台,全部分配完,但P3已分配到所需要的全部4台打印机,它不会对打印机再提出申请,所以它能顺利运行下去,能释放占用的4台打印机,使进程P1,P2均可能获得乘余的要求4台和5台,按银行家算法是安全的。 5.用PV操作解决读者写者问题的正确程序如下: begin S, Sr: Semaphore; rc: integer; ????? S:=1; Sr:=1; rc:=0; cobegin PROCESS Reader i ( i=1,2…) ??????? begin P(Sr) 牋牋牋?rc:=rc+1; 牋牋牋?if rc=1 then P(S); 牋牋牋?V(Sr); 牋牋牋?read file; 牋牋牋?P(Sr); 牋牋牋?rc:=rc-1 牋牋?if rc=0 thenV(S); 牋牋?V(Sr); 牋牋?end ; 牋?PROCESS Writer j (j=1,2? 牋?begin P(S); 牋牋牋牋?Write file; 牋牋牋牋?

文档评论(0)

0520 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档