天津科技大学操作系统作业答案_第1页
天津科技大学操作系统作业答案_第2页
天津科技大学操作系统作业答案_第3页
天津科技大学操作系统作业答案_第4页
天津科技大学操作系统作业答案_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

1、第二章第二章6、答:设信号量、答:设信号量empty用于表示空盘子的数量,信号量用于表示空盘子的数量,信号量apple用于计数,表示盘子中的苹果数目,信号量用于计数,表示盘子中的苹果数目,信号量orange用于计数,表示盘子中的桔子数目。用于计数,表示盘子中的桔子数目。Semaphore empty=1,apple=0,orange=0dad()while(1) prepare an apple; P(empty); put an apple on the plate; V(apple );mom() while(1) prepare an orange; P(empty); put an o

2、range on the plate; V (orange); 第二章第二章son()while(1) P(orange);take an orange from the plate;V(empty);eat the orange;daughter() while(1) p(apple);take an apple from the plate;v(empty);eat the apple; 第二章第二章9、答:、答:信号量信号量sofa:表示等候椅数,初值为:表示等候椅数,初值为n信号量信号量empty:表示理发椅空,初值为:表示理发椅空,初值为1信号量信号量full:表示理发椅上有顾客,初

3、值为:表示理发椅上有顾客,初值为0count:记录等候椅上的人数,初值为:记录等候椅上的人数,初值为0信号量信号量mutux:用来实现对变量:用来实现对变量count的互斥访问的互斥访问Var mutex,sofa,empty,full: semaphore=1,n,1,0; count: integer: =0;第二章第二章Guest:begin repeat P(mutex);if (count=n) then begin V(mutex); 离开离开;end elseBarber: begin repeat P(full); 剪发剪发;V(empty); until false end第

4、二章第二章 begin count:=count+1; if (count1) then /多个顾客时,坐等候椅上多个顾客时,坐等候椅上 V(mutex); P(sofa); 坐沙发等坐沙发等; P(empty); 坐理发椅子上坐理发椅子上; V(sofa); V(full); else /只有一个顾客时,坐到理发椅上只有一个顾客时,坐到理发椅上 begin V(mutex); P(empty); 坐理发椅子上坐理发椅子上; V(full); end第二章第二章 剪发剪发 离开;离开; P(mutex); count:=count-1; V(mutex); end until falseend

5、第二章第二章11、答:、答:本题中中共有三类进程,机房管理员进程本题中中共有三类进程,机房管理员进程guard,学生进程学生进程student和教师进程和教师进程teacher。相应的信号量和各个进程描述如下:相应的信号量和各个进程描述如下:semaphore computer=2m; /*对应于计算机的资源信号量对应于计算机的资源信号量*/semaphore student=0; /*对应于欲进入机房的学生对应于欲进入机房的学生*/semaphore enter=0; /*用来控制学生是否可进入机房用来控制学生是否可进入机房*/semaphore finish=test=0; /*用来同步学

6、生和教师用来同步学生和教师教师须检查实习完毕的学生教师须检查实习完毕的学生*/第二章第二章guard() int i; for(i=0; in;i+;) P(computer); /*等待有两个空闲计算机等待有两个空闲计算机*/ P(computer); P(student); /*等待有两个学生达到等待有两个学生达到*/ P(student); V(enter); /*激活两个等待进入机房的学生激活两个等待进入机房的学生*/ V(enter); computer=2m student=0 enter=0; finish=0;test=0; 第二章第二章teacher() int i; for

7、(i=0;in;i+) P(finish); /*等待两个学生完成实验等待两个学生完成实验*/ P(finish); 检查两个学生的实习结果;检查两个学生的实习结果; V(test); /*检查完后检查完后,激活两个学生检查完,激活两个学生检查完 毕,可以离开机房毕,可以离开机房*/ V(test); computer=2m student=0 enter=0; finish=0;test=0; 第二章第二章student_i() /*i=1,2,2n*/ V(student); /*激活管理员,有学生到达,要进入机房实验激活管理员,有学生到达,要进入机房实验*/ P(enter); /*等待

8、管理员激活进入机房等待管理员激活进入机房*/ 进入机房上机实习;进入机房上机实习; V(finish); /*激活教师已经做完实验激活教师已经做完实验*/ P(test); /*等待教师检查作业等待教师检查作业*/ 离开机房;离开机房; V(computer); /*所占用的计算机变为空闲所占用的计算机变为空闲*/ computer=2m student=0 enter=0; finish=0;test=0; 第二章第二章7、答:、答: 为了使写者优先,在原来的读优先算法为了使写者优先,在原来的读优先算法基础上增加一个初值为基础上增加一个初值为1的信号量的信号量S,使,使得当至少有一个写者准备

9、访问共享对象得当至少有一个写者准备访问共享对象时,它可使后续的读者进程等待写完成;时,它可使后续的读者进程等待写完成; 初值为初值为0的整型变量的整型变量writecount,用来对,用来对写者进行计数;初值为写者进行计数;初值为1的互斥信号量的互斥信号量wmutex,用来实现多个写者对,用来实现多个写者对writecount的互斥访问。的互斥访问。 第二章第二章writer() while(1) P(wmutex); if(writecount=0) P(S); writecount+; V(wmutex); P(mutex); 写文件;写文件; V(mutex); P(wmutex); w

10、ritecount- -; If(writecount=0) V(S); V(wmutex);第二章第二章reader () while ( 1) P(S); P(rmutex); if(readcount=0) P(mutex); readcount+; V(rmutex); V(S); 读文件;读文件; P(rmutex); readcount-; if(readcount=0) V(mutex); V(rmutex); 图书馆阅览室图书馆阅览室问题问题 问题描述:问题描述: 假定阅览室最多可同时容纳假定阅览室最多可同时容纳100个人个人阅读,读者进入时,必须在阅览室门口阅读,读者进入时,

11、必须在阅览室门口的一个登记表上登记,内容包括姓名、的一个登记表上登记,内容包括姓名、座号等,离开时要撤掉登记内容。用座号等,离开时要撤掉登记内容。用P、V操作描述读者进程的同步算法。操作描述读者进程的同步算法。图书馆阅览室图书馆阅览室问题问题mutex,emptyseat semaphore;mutex=1,Emptyseat=100;Reader(i) P(Emptyseat); P(mutex); 查登记表,登记姓名,座查登记表,登记姓名,座位号等;位号等; V(mutex);阅读阅读; P(mutex); 查登记表,置空;查登记表,置空; V(mutex); 离开;离开; V(Empty

12、seat);哲学家就餐问题哲学家就餐问题给所有哲学家编号,奇数号的哲学家必给所有哲学家编号,奇数号的哲学家必须先拿左边的筷子,偶数号的哲学家必须先拿左边的筷子,偶数号的哲学家必须先拿右边的筷子。须先拿右边的筷子。这样,任何一个这样,任何一个哲学家拿到一支筷子后,哲学家拿到一支筷子后,就已经阻止了他邻座的一个哲学家吃饭就已经阻止了他邻座的一个哲学家吃饭的企图,除非某个的企图,除非某个哲学家一直吃下去,哲学家一直吃下去,否则不会有人会饿死。否则不会有人会饿死。2021-11-2617第二章第二章Repeatbegin if (i mod 2)!=0 then begin P(chopsticki)

13、; P(chopstick(i+1) mod 5); eat; V(chopsticki); V(chopstick(i+1) mod 5); think; end2021-11-2618第二章第二章 else begin P(chopstick(i+1) mod 5); P(chopsticki); eat; V(chopstick(i+1) mod 5); V(chopsticki); think; endenduntil false;第三章第三章6 、答:、答:(1)采用先来先服务调度算法,则其调度顺)采用先来先服务调度算法,则其调度顺序是序是1、2、3、4 平均周转时间:平均周转时间:

14、 (2.0+2.8+3.1+3.3)/4=2.8 平均带权周转时间:平均带权周转时间:(2.0+2.8+3.1+3.3)/4=2.8作业号提交时间运行时间开始时间完成时间周转时间带权周转时间110.02.010.012.02.01.0210.21.012.013.02.82.8310.40.513.013.53.16.2410.50.313.513.83.311.0第三章第三章(2)采用短作业优先调度算法,则其调度顺序是)采用短作业优先调度算法,则其调度顺序是1、4、3、2 平均周转时间:平均周转时间: (2.0+1.8+2.4+3.6)/4=2.45 平均带权周转时间:平均带权周转时间:(1

15、.0+6.0+4.8+3.6)/4=3.85作业号提交时间运行时间开始时间完成时间周转时间带权周转时间110.02.010.012.02.01.0410.50.312.012.31.86.0310.40.512.312.82.44.8210.21.012.813.83.63.6第三章第三章(3)采用高响应比优先调度算法,则其调度顺序是)采用高响应比优先调度算法,则其调度顺序是1、4、3、2 平均周转时间:平均周转时间: (2.0+1.8+2.4+3.6)/4=2.45 平均带权周转时间:平均带权周转时间:(1.0+6.0+4.8+3.6)/4=3.85作业号提交时间运行时间开始时间完成时间周转

16、时间带权周转时间110.02.010.012.02.01.0410.50.312.012.31.86.0310.40.512.312.82.44.8210.21.012.813.83.63.6第四章第四章2、答:、答:(1)Need=(2) Work值的变化情况如下:值的变化情况如下:存在一个安全序列存在一个安全序列,所以系,所以系统处于安全状态。统处于安全状态。2460200105700000(1,5,2,0)P0(1,5,3,2)P2(2,8,8,6)P3(2,8,9,10)P1(3,8,9,10)第四章第四章(3) Request1(0,4,2,0)Need1(0,7,5,0),P1请求

17、在最大需求请求在最大需求范围内。范围内。 Request1(0,4,2,0)Available(1,5,2,0) ,可用资源可满,可用资源可满足足P1请求需要。请求需要。 试探把要求的资源分配给进程试探把要求的资源分配给进程P4并修改有关数据结构并修改有关数据结构的数值:的数值: Available(1,1,0,0) = Available(1,5,2,0)- Request1(0,4,2,0); Need1(0,3,3,0) = Need1(0,7,5,0)- Request1(0,4,2,0); Allocation1(1,4,2,0) =Allocation1(1,0,0,0)+ Req

18、uest1(0,4,2,0); 利用安全性算法检查试探将资源分配后状态的安全性利用安全性算法检查试探将资源分配后状态的安全性如下:如下: 第四章第四章(3) (3) 存在一个安全序列存在一个安全序列P0P3,所以,所以系统仍处于安全状态,所以系统仍处于安全状态,所以P1P1的这个请求应的这个请求应该马上满足。该马上满足。(1,1,0,0)P0(1,1,1,2)P2(2,4,6,6)P1(3,8,8,6)P3(3,8,9,10)2460200103300000第五章第五章5、答:、答:(1)采用首次适应算法,在完成了题目所给)采用首次适应算法,在完成了题目所给的系列申请及释放内存操作后,空闲分区

19、如的系列申请及释放内存操作后,空闲分区如下所示。下所示。分区大小起始地址030K150K120K280K2112K400K第五章第五章(2)采用最佳适应算法,在完成了题目所给)采用最佳适应算法,在完成了题目所给的系列申请及释放内存操作后,空闲分区如的系列申请及释放内存操作后,空闲分区如下所示。下所示。 分区大小起始地址030K400K142K470K290K210K第五章第五章(3)采用最差适应算法,在完成了题目所给的系)采用最差适应算法,在完成了题目所给的系列申请及释放内存操作后,空闲分区如下所示。列申请及释放内存操作后,空闲分区如下所示。 (4)如再申请)如再申请100K,有上述结果可知,

20、采用首次,有上述结果可知,采用首次适应算法后剩下的空闲分区能满足这一申请要求,适应算法后剩下的空闲分区能满足这一申请要求,采用最佳适应算法和最差适应算法均不能满足申采用最佳适应算法和最差适应算法均不能满足申请要求。请要求。分区大小起始地址030K150K180K220K252K460K第五章第五章6、答:、答:(1)程序空间的大小为)程序空间的大小为32KB,因此逻辑地址的,因此逻辑地址的有效位数是有效位数是15位。位。(2)内存储空间的大小是)内存储空间的大小是16KB,因此物理地址,因此物理地址至少需要至少需要14位。位。(3)当页面为)当页面为1KB时,虚地址时,虚地址0A5C表示页号为

21、表示页号为00010,页内地址是,页内地址是1001011100。该页在内存的。该页在内存的第第4块,即块号为块,即块号为0100,因此,因此0A5C的物理地址的物理地址是是01001001011100,即,即125CH。用同样的方法可以求得,用同样的方法可以求得,053C的物理地址是的物理地址是293CH,103C的逻辑地位在第的逻辑地位在第4页,产生越界页,产生越界异常。异常。第五章第五章7、答:、答:(1)1.5*2=3 微秒微秒 (2)1.5*2*15%+1.5*85%=1.725 微秒微秒第六章第六章4、一个程序、一个程序P的用户空间为的用户空间为16K,存储管,存储管理采用请求式分

22、页系统,每个页面大小理采用请求式分页系统,每个页面大小为为2K,存在以下的页表:,存在以下的页表:其中,有效位其中,有效位=1表示页表示页面在内存;面在内存;0表示页面不在内存。表示页面不在内存。请将虚地址请将虚地址0X060C,0X1502,0X1D71,0X2C27,0X4000转换转换为物理地址。为物理地址。 页框号有效位1213101002511510081第六章第六章 注:请求分页存储管理系统的地址变换注:请求分页存储管理系统的地址变换与分页存储管理系统的地址变换类似,与分页存储管理系统的地址变换类似,只是增加了缺页中断处理部分。只是增加了缺页中断处理部分。 当由逻辑地址计算出页号后

23、,查找页表当由逻辑地址计算出页号后,查找页表确定此页在不在内存,如果在内存就计确定此页在不在内存,如果在内存就计算物理地址,如果不在内存中,就产生算物理地址,如果不在内存中,就产生一个缺页中断将所缺的页按照一定的策一个缺页中断将所缺的页按照一定的策略调入内存。略调入内存。 程序程序P共有共有8页,页面大小为页,页面大小为2K,即,即211,页号占剩余高位。页号占剩余高位。 第六章第六章答:答: 逻辑地址逻辑地址0X060C的二进制表示如下的二进制表示如下: 0000 0 110 0000 1100 页号页号 页内地址页内地址 其页号为其页号为0,从表中可知该页对应的物理,从表中可知该页对应的物

24、理块号为块号为12,所以,将二进制表示中的页号,所以,将二进制表示中的页号换为块号,则物理地址用二进制表示为:换为块号,则物理地址用二进制表示为: 0110 0 110 0000 1100 块号块号 块内地址块内地址 用十六进制表示即为用十六进制表示即为0X660C。页框号有效位1213101002511510081第六章第六章 逻辑地址逻辑地址0X1502的二进制表示如下的二进制表示如下: 0001 0 101 0000 0010,页号为,页号为2,从表中可知该页,从表中可知该页对应的物理块号为对应的物理块号为0,所以,物理地址用二,所以,物理地址用二进制表示为进制表示为0000 0 101

25、 0000 0010,用十六,用十六进制表示为进制表示为0X0502。 逻辑地址逻辑地址0X1D71的二进制表示如下的二进制表示如下: 0001 1 101 0111 0001,页号为,页号为3,从表中可知该页,从表中可知该页不在内存,产生缺页中断,无物理地址。不在内存,产生缺页中断,无物理地址。第六章第六章 逻辑地址逻辑地址0X2C27的二进制表示如下的二进制表示如下: 0010 1 100 0010 0111,页号为,页号为5,从表中可知该页,从表中可知该页对应的物理块号为对应的物理块号为15,所以,物理地址用,所以,物理地址用二进制表示为二进制表示为0111 1 100 0010 011

26、1,用十六,用十六进制表示为进制表示为0X7C27。 逻辑地址逻辑地址0X4000的二进制表示如下的二进制表示如下: 0100 0 000 0000 0000,页号为,页号为8,从表中可知没有,从表中可知没有第第8页,所以产生越界中断,无物理地址。页,所以产生越界中断,无物理地址。第六章第六章9、答:、答:在指令中如果包含地址部分,则必须进行地址变在指令中如果包含地址部分,则必须进行地址变换,同时进行越界检查和权限检查,只在两者换,同时进行越界检查和权限检查,只在两者均合法时,才完成指令规定操作。均合法时,才完成指令规定操作。(1)由于第由于第0段的存在位为段的存在位为0,表示该段未装入内存,

27、表示该段未装入内存,因此产生缺段中断。,因此产生缺段中断。(2)从段表第从段表第1项可看到,指令中逻辑地址合法,项可看到,指令中逻辑地址合法,段也已经在内存,但存取控制字段不符,故产段也已经在内存,但存取控制字段不符,故产生保护性中断信号。生保护性中断信号。第六章第六章9、答:、答:(3)逻辑地址合法,存取方式合法,形成物理地址逻辑地址合法,存取方式合法,形成物理地址8020后,执行指定操作。后,执行指定操作。(4)逻辑地址中段内地址超长,产生越界中断信号逻辑地址中段内地址超长,产生越界中断信号。(5)逻辑地址及访问方式合法,形成物理地址逻辑地址及访问方式合法,形成物理地址3100,指令执行后

28、,将条转到内存单元,指令执行后,将条转到内存单元3100处继续处继续执行。执行。第六章第六章10、答:、答:(1)一个作业最多可以有)一个作业最多可以有28=256个段。个段。(2)每段的最大长度为)每段的最大长度为216=64KB=65 536字节。字节。(3)逻辑地址)逻辑地址0,430主存地址为:主存地址为:2100+430=2530; 逻辑地址逻辑地址1,50无法进行地址变换,因为产生了无法进行地址变换,因为产生了越界中断;越界中断; 逻辑地址逻辑地址2,30无法进行地址变换,因为产生了无法进行地址变换,因为产生了缺段中断;缺段中断; 逻辑地址逻辑地址3,70的主存地址为:的主存地址为

29、:4000+70=4070。第六章第六章12、答:、答:(1)页面大小为)页面大小为4KB,故页内偏移为,故页内偏移为12位。系统位。系统采用采用48位虚拟地址,故虚页号为位虚拟地址,故虚页号为48-12=36位。位。采用多级页表时,最高级页表项不能超出一页采用多级页表时,最高级页表项不能超出一页大小,故应采用大小,故应采用36/9=4级页表,最高级页表项级页表,最高级页表项正好占据一页空间。正好占据一页空间。(2)系统进行页面访问操作时,首先读取页面)系统进行页面访问操作时,首先读取页面对应的页表项,有对应的页表项,有98%的概率可以在的概率可以在TLB中直中直接取到,然后进行地址转换,如果接取到,然后进行地址转换,如果TLB为命中,为命中,则要通过一次内存访问来读取页表项。页面的则要通过一次内存访问来读取页表项。页面的平均访问时间为:平均访问时间为:98%*(10+100)+(1-98%)*(10+100+

温馨提示

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

评论

0/150

提交评论