操作系统原理计算题及答案.doc
文本预览下载声明
一、某系统对主存采用页式管理,供用户使用的主存区域共640K字节,被分成160块,块号为0,1,2……159。现有一作业的地址空间共占4页,其页号为0,1,2,,3,被分配到主存的第2,4,1,5块中,回答:? ? (1)作业每一页的长度为多少字节?
4K? ? (2)写出该作业被装入主存时,其对应的页表。? ?
逻辑页号? ? 主存块号
0? ? ? ? ? 2 ? ? 1? ? ? ? ? 4 ? ? 2? ? ? ? ? 1 ? ? 3? ? ? ? ? 5
(3)把该作业的每一页在主存中的起始地址(用16进制表示)填在下表中? ? 页号 起始地址? ? 0? ? 1? ? 2? ? 3? ? ?
二、两个并发进程的程序如下:? ? begin? ? N:integer;? ? N:=1;? ? cobegin? ? process A? ? begin? ? L1:N:=N+1;? ? go to L1;? ? end;? ? process B? ? begin? ? L2:print(N);? ? N:=0;? ? go to L2;? ? end;? ? coend;? ? end;? ? 请回答:? ? (1)指出这两个并发进程的临界区。?
进程A的临界区:N:=N+1
进程B的临界区: N:=0?
(2)指出它们并发执行时可能出现的“与时间有关的错误”。?
进程B执行了print(N)后被中断;在执行N:=0之前插入了进程A执行N:=N+1,则出现“与时间有关的错误”。
?
(3)用PV操作进行管理,写出使它们能正确并发执行的程序。
begin N:=integer; N:=1; s:=semaphore;s:=1 cobegin process A begin L1:p(s); n:=N+1; V(s); go to L1; end; process B begin L2:p(s);
end; Print(N);
coend; N:=0;
end; V(s); go to L2
三.桌子有一个盘子,每次只能放入一个水果,爸爸专向盘中放苹果,妈妈专向盘中放桔子,女儿专等吃盘中的苹果,儿子专等吃盘中的桔子,试用P,V操作写出他们能正确同步的并发过程。
答案:
解:设公用信号量S=1表示盘子,私用信号量S1=0表示苹果,私用信号量S2=0表示桔子。他们能正确同步的并发过程如下:
爸爸P1 妈妈P2 女儿P3 儿子P4
P(S) P(S) P(S1) P(S2)
放苹果 放桔子 取苹果 取桔子
V(S1) V(S2) V(S) V(S)
四.假定一个阅览室可供50个人同时阅读。读者进入和离开阅览室时都必须在阅览室入口处的一个登记表上登记,阅览室有50个座位,规定每次只允许一个人登记或注销登记。
要求:(1)用PV操作描述读者进程的实现算法(可用流程图表示,登记、注销可用自然语言描述);
(2)指出算法中所用信号量的名称、作用及初值。
S1:阅览室可供使用的空座位,其初值为50
S: 是否可通过阅览室,其初值为1
Process READ_in(i=1…50)
{到达阅览室入口处;
P(S1);P(S);
在入口处登记座位号;
V(s);
进入座位并阅读;
}
Process READ_out(j=1…50)
{结束阅读到达阅览室入中处;
P(S);
在入口处注销座位号;
V(S1);V(S);
离开入口处;
}
2、请用信号量实现下图所示的前趋关系。
Var a,b,c,d,e,f:semaphore:=0,0,0,0,0,0;
Begin
Parbegin
Begin S1;signal(a);sigan(b);signal(c);end; 2分
Begin wait(a);S2;signal(d);e
显示全部