2006级操作系统期末试卷A卷及答案(最终版)(2)

2018-12-11 10:14

共需读磁盘多少次? (3分) 解:

(1)在Unix的索引结点中,iaddr(0)到iaddr(9)是直接地址方式,可存放10个数据块的地址(盘块号)。iaddr(10)指向一级索引,该索引块中可存放256个数据块的地址(盘块号)。本题共有250个数据块,混合索引分配图如下图所示:

iaddr(0)…iaddr(9)iaddr(10)iaddr(11)iaddr(12)data0…data9data10………data249(7分)

(2)总共需要读盘21次。其中需要读一级索引块(一次间址块)1次,读数据块20次。(注意,由于存储块的长度时512个字节,且每两个字节可存放一个物理块号,所以一个用于索引的存储块能够存放256个物理块号。本题中的文件除了10个数据块使用直接地址外,只有240个数据块的物理块号放在一级索引块中,因此只用一个索引块就够了。) (3分)

5. 桌上有一个空的水果盘,盘中一次只能放入一个水果,服务员、男顾客和女顾客共用这个盘子。服务员可向盘中放苹果,也可向盘中放香蕉,男顾客专等吃盘中的苹果,女顾客专等吃盘中的香蕉。规定每次当盘子空时只能放一个水果供顾客取用。请用信号量机制实现服务员、男顾客和女顾客三个进程的同步。(要求说明用到的信号量的含义,并给出初值)(10分) 解:为了实现服务员、男顾客和女顾客三个进程的同步,可设置三个信号量:empty表示盘子中的水果是否被取走,apple表示盘中是否放入了苹果;banana则表示盘中是否放入了香蕉。相应的同步算法可描述如下: Var empty,apple,banana:semaphore:=1,0,0; (2分) Begin

Parbegin

Process Waiter: //服务员进程 Begin

Repeat

wait(empty); IF 放入苹果

第 6 页 共 7 页

signal(apple);

ELSE

signal(banana); Until false; End

Process Mister: Begin

Repeat

wait(apple); 取走苹果;

signal(empty); Until False; End

Process Miss: Begin

Repeat

wait(banana); 取走香蕉;

signal(empty); Until False; End Parend End

//男顾客进程

//女顾客进程

第 7 页 共 7 页

(4分)

(2分)

(2分)


2006级操作系统期末试卷A卷及答案(最终版)(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《遵纪守法,从我做起》班会活动方案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: