操作系统应用题2(解答)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间: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、现有一个作业,在段式存储管理的系统中已为其主存分配,建立的段表内容如下:

计算逻辑地址(2,15),(0,60),(3,18)的绝对地址是多少? 注:括号中第一个元素为段号,第二个元素为段内地址。

解:

段式存储管理的地址转换过程为:(1)根据逻辑地址中的段号查段表的相应栏目;(2)根据段内地址<段长度,检查地址是否越界;(3)若不越界,则绝对地址=该段的主存起始地址+段内地址。

逻辑地址(2,15)查段表得段长度为20,段内地址15<20,地址不越界,段号2查表得段首地址为480,于是绝对地址为480+15=495。

逻辑地址(0,60)查段表得段长度为40,段内地址60>40,地址越界,系统发出“地址越界”中断。

逻辑地址(3,18)查段表得段长度为20,段内地址18<20,地址不越界,段号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;

V(S)

end;

coend ;

end;

请回答:(1)信号量 Sr的作用;(2)程序中什么语句用于读写互斥,写写互斥;(3)若规定仅允许5个进程同时读怎样修改程序?

解(1)Sr用于读者计数rc的互斥信号量;

(2)if rc=1 then P(S)中的P(S)用于读写互斥,写者进程中的P(S)用于写写互斥,读写互斥。

(3)程序中增加一个信号量S5,初值为5,P(S5)语句加在读者进程P(Sr)之前,V(S5)语句加在读者进程第2个V(Sr)之后。

6. 判断下面的同步问题的算法是否正确?若有错,请指出错误原因并予以改正。

设A、B两进程共用一个缓冲区Q,A向Q写入信息,B则从Q读出信息,算法框图如图所示。

B

向Q

解:这个算法不对。

因为A、B两进程共用一个缓冲区Q,如果A先运行,且信息数量足够多,那么缓冲区Q中的信息就会发生后面的冲掉前面的,造成信息丢失,B就不能从Q中读出完整的信息。

进行改正:

A、 B两进程要同步使用缓冲区Q。为此,设立两个信号量:

empty表示缓冲区Q为空,初值为1;

full表示缓冲区Q为满,初值为0。

算法框图如图所示。

向Q从Q

7.有三个用户进程A、B和C,在运行过程中都要使用系统中的一台打印机输出计算结果。

(1)试说明A、B、C进程之间存在什么样的制约关系?

(2)为保证这三个进程能正确地打印出各自的结果,请用信号量和P、V操作写出各自的有关申请、使用打

印机的代码。要求给出信号量的含义和初值。

解:

(1) A、B、C三个进程之间存在互斥的制约关系。因为打印机属于临界资源,必须一个进程使用完之后另

一个进程才能使用。

(2)mutex:用于互斥的信号量,初值为1。

各进程的代码如下:

进程A 进程B 进程C

... … ...

... … ...

P(mutex) P(mutex) P(mutex)

申请打印机申请打印机申请打印机

使用打印机使用打印机使用打印机

V(mutex) V(mutex) V(mutex)

… … …

8. 假定在某移动臂磁盘上,刚刚处理了访问75号柱面的请求,目前正在80号柱面读信息,并且有下述请求序列等待访问磁盘:

请求序列: 1 2 3 4 5 6 7 8

欲访问柱面号: 160 40 190 188 90 58 32 102

试用:(1)电梯调度算法

(2)最短寻找时间优先算法

分别列出实际处理上述请求的次序。

解(1)电梯调度算法:由”刚刚处理了访问75号柱面的请求,目前正在80号柱面读信息”可知:初始磁头前进的方向是:”从小到大”

相关文档
最新文档