文档介绍:操作系统应用题(解答)
部门:XXX
时间:XXX
整理范文,仅供参考,可下载自行编辑
设有一台计算机,有两条1/0通道,分别接一台卡片输入机和一台打印机。卡片机把一叠卡片逐一输入到缓冲区B1中,加工处理后在搬到缓冲区B2中,并
V(S〉
end。
coend。
end。
请回答:〈1)信号量Sr的作用;〈2)程序中什么语句用于读写互斥,写写互斥;
〈3)若规定仅允许5个进程同时读怎样修改程序?XHAQX74J0X
解〈1)Sr用于读者计数rc的互斥信号量;
<2)ifrc=1thenP<S)中的P<S)用于读写互斥,写者进程中的P<S)用于写写互斥,读写互斥。LDAYtRyKfE
<3)程序中增加一个信号量S5,初值为5,P〈S5)语句加在读者进程P〈Sr)之前,V〈S5)语句加在读者进程第2个V〈Sr)之后。Zzz6ZB2Ltk
判断下面的同步问题的算法是否正确?若有错,请指出错误原因并予以改正。
设A、B两进程共用一个缓冲区Q,A向Q写入信息,B则从Q读出信息,算法框图如图所示。
进程A进程B
向Q+写入信息
V(S>
P(S〉从Q读出信息
注:信号量S的初值为0解:这个算法不对。
因为A、B两进程共用一个缓冲区Q,如果A先运行,且信息数量足够多,那么
缓冲区Q中的信息就会发生后面的冲掉前面的,造成信息丢失,B就不能从Q中读出完整的信息。dvzfvkwMIl
进行改正:
A、B两进程要同步使用缓冲区Q。为此,设立两个信号量:
empty表示缓冲区Q为空,初值为1;full表示缓冲区Q为满,初值为0。
算法框图如图所示。
A进程
P(empty〉
向Q写入信息从Q中读出信息
V(full>I
有三个用户进程A、B和C,在运行过程中都要使用系统中的一台打印机输出计算结果。
⑴试说明A、B、C进程之间存在什么样的制约关系?
为保证这三个进程能正确地打印出各自的结果,请用信号量和P、V操作写出各自的有关申请、使用打印机的代码。要求给出信号量的含义和初值。
rqynl4ZNXI
解:
(1〉A、B、C三个进程之间存在互斥的制约关系。因为打印机属于临界资源,
必须一个进程使用完之后另一个进程才能使用。EmxvxOtOco
〈2)mutex:用于互斥的信号量,初值为1。各进程的代码如下:
进程A进程B进程C
P(mutex>P(mutex>P(mutex>
申请打印机申请打印机申请打印机
使用打印机使用打印机使用打印机
V(mutex>V(mutex>V(mutex>
•••••••••
假定在某移动臂磁盘上,刚刚处理了访问75号柱面的请求,目前正在80号柱面读信息,并且有下述请求序列等待访问磁盘:SixE2yXPq5
请求序列:12345678
欲访问柱面号:16040190188905832102
试用:(1>电梯调度算法
(2>最短寻找时间优先算法
分别列出实际处理上述请求的次序。
解(1〉电梯调度算法:由”刚刚处理了访问75号柱面的请求,目前正在80号柱面读信息”可知:初始磁头前进的方向是:”从小到大”6ewMyirQFL
924©567590QQ1021601SS15G
1
1
111
1
1
1
11
1
1
111
1
1
1
11
所以:处理次序为:
58143627
90102160188190584032
(2>最短寻找时间优先算法:
58627143
90102584032160188190
有三个进程P1,P2和P3并发工作。进程P1需用资源S3和S1;进程P2需用资源S1和S2;进程P3需用资源S2和S3。回答:kavU42VRUs
(1>若对资源分配不加限制,会发生什么情况?为什么?
(2>为保证进程正确工作,应采用怎样的资源分配策略?为什么?
解:
(1>可能会发生死锁
例如:进程P1,P2和P3分别获得资源S3,S1和S2后再继续申请资源时都要等待,这是循环等待。
(或进程在等待新源时均不释放已占资源〉
(2>可有几种答案:
由于执行前已获得所需的全部资源,故不会出现占有资源又等待别的资源的现象(或不会出现循环等待资源现象〉。y6v3ALoS89
。
,保证了系统处于安全状态。
某车站售票厅,任何时刻最多可容纳20名购票者进入,当售票厅中少于20名购票者时,则厅外的购票者可立即进入,否则需在外面等待。若把一个购票者看作一个进程,请回答下列问题:M2ub6vSTnP
(1>用PV操作管理这些并发进程时,应怎样