操作系统复习习题20页word资料.docx

上传人:b****3 文档编号:5309349 上传时间:2022-12-15 格式:DOCX 页数:15 大小:41.06KB
下载 相关 举报
操作系统复习习题20页word资料.docx_第1页
第1页 / 共15页
操作系统复习习题20页word资料.docx_第2页
第2页 / 共15页
操作系统复习习题20页word资料.docx_第3页
第3页 / 共15页
操作系统复习习题20页word资料.docx_第4页
第4页 / 共15页
操作系统复习习题20页word资料.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

操作系统复习习题20页word资料.docx

《操作系统复习习题20页word资料.docx》由会员分享,可在线阅读,更多相关《操作系统复习习题20页word资料.docx(15页珍藏版)》请在冰豆网上搜索。

操作系统复习习题20页word资料.docx

操作系统复习习题20页word资料

1.若一只盘子一次只能放一个水果,A只往盘中放苹果,B只往盘中放梨子,C只从盘中取苹果,D只从盘中取梨子。

试用:

(1)信号量和P、V操作;

(2)管程,写出同步算法。

解:

(1)采用P、V操作的同步算法如下:

semaphoreSAB=1;//A、B的资源信号量,同时又是它们的互斥信号量

semaphoreSC=0;//C的资源信号量(用于与A同步)

semaphoreSD=0;//D的资源信号量(用于与B同步)

begin

parbegin

processA:

//进程A的算法描述

while(true){

取一个苹果;

wait(SAB);//测试盘子是否为空

将一苹果放入盘中;

signal(SC)//通知C盘中已有苹果(可能唤醒C)

processC:

while(true){

wait(SC);//测试盘子是否有苹果

从盘中取出苹果;

signal(SAB);//通知A(或B)盘子一空(可能唤醒A或B)

消费该苹果;

processB:

//进程B的算法描述

while(true){

取一个梨子;

wait(SAB);//测试盘子是否为空

将一梨子放入盘中;

signal(SD)//通知D盘中已有梨子(可能唤醒D)

processD:

while(true){

wait(SD);//测试盘子是否有梨子

从盘中取出梨子;

signal(SAB);//通知A(或B)盘子一空(可能唤醒A或B)

消费该梨子;

parend

end

(2)采用管程的同步算法如下:

首先定义管程MPC,该管程可描述如下:

typeMPC=monitor

varflag:

integer;//flag=0:

盘中无水果;=1盘中有苹果;=2盘中有梨子

empty:

condition;//用于A或B等待空盘子

W:

array[1..2]ofcondition//W[1]用于等待苹果,W[2]用于等待梨子

procedureentryput(integerk)

begin

ifflag>0thenempty.wait;//生产者A或B进程阻塞

flag=k;

放一k号水果入盘中;//设1号水果为苹果,2号水果为梨子

ifW[k].queuethenfull.signal;//若有等待k号水果者,则唤醒之

end

procedureentryget(integerk)

begin

ifflag<>kthenW[k].wait;//消费者C或D进程阻塞

从盘中取k号水果;

flag:

=0;

ifempty.queuethenempty.signal;//若等待队列非空,则唤醒队首的一个生产者进程

end

begin

flag:

=0;//初始化内部数据

end

A、B、C、D四个进程的同步算法可描述如下:

parbegin

ProcessA

begin

任取一个苹果;

MPC.put

(1);

end

ProcessB

begin

任取一个梨子;

MPC.put

(2);

end

ProcessC

begin

MPC.get

(1);

吃苹果;

end

ProcessD

begin

MPC.get

(2);

吃梨子;

end

parend

2.设自行车生产车间有两个货架,货架A可以存放8个车架,货架B可以存放20个车轮;又设有4个工人,他们的活动是重复劳动,分别为:

工人1加工一个车架放入货架A中;工人2、3分别加工车轮放入货架B中(每人每次放入1个车轮);工人4从货架A中取一个车架,再从货架B中取两个车轮,组装成一辆自行车。

试用PV操作实现四个工人的合作。

【分析】信号量Aempty表示货架A的空位数,其初值为8;信号量Afull表示货架A上存放的车架数,其初值为0;信号量Bempty表示货架B的空位数,其初值为20;信号量Bfull表示货架B上存放的车轮数,其初值为0;信号量mutex用于互斥(初值为1)。

解:

BEGIN

semaphoreAempty,Bempty,Afull,Bfull,mutex;

Aempty:

=8;Bempty:

=20;Afull:

=0;Bfull:

=0;mutex:

=1;

PARBEGIN

Worker1:

BEGIN

L1:

生产1个车架;

P(Aempty);//测试货架A是否有空位置

P(mutex);//互斥使用货架A

车架放到货架A;

V(Afull);//货架A上的车架数增1,必要时唤醒等待的进程

V(mutex);

gotoL1;

END

Worker2、3:

BEGIN

L2:

生产1个车轮;

P(Bempty);//测试货架B是否有空位置

P(mutex);//互斥使用货架B

车轮放到货架B;

V(Bfull);//货架B上的车轮数增1,必要时唤醒等待的进程

V(mutex);

gotoL2;

END

Worker4:

BEGIN

L3:

P(Afull);//测试货架A上是否有车架

P(Bfull);P(Bfull);//测试货架B上是否有2个车轮

P(mutex);

取1个车架;取2个车轮;

V(Aempty);//货架A空位置增1

V(Bempty);V(Bempty);//货架B空位置增2

V(mutex);

组装成一辆自行车;

gotoL3;

END

PAREND

END

3.有两个作业A和B,分别在7:

00和8:

30到达系统,它们估计的计算时间分别为0.8小时和0.1小时,系统在9:

00开始以响应比高者优先算法进行调度。

在单道系统中该两个作业被选中时的响应比各为多少?

解:

9:

00时,作业A的响应比=1+2/0.8=3.5

作业B的响应比=1+0.5/0.1=6

所以9:

00时作业调度程序选中作业B

9:

06作业B结束,调度作业A,此时作业A的响应比=1+2.1/0.8=3.625

综上可知,在单道系统中A、B两个作业被选中时的响应比分别为3.625和6

4.有一个具有两道作业的批处理系统(最多可有两道作业同时装入内存执行),作业调度采用计算时间短的作业优先调度算法,进程调度采用以优先数为基础的抢占式调度算法,今有如下作业序列,作业优先数即为进程优先数,优先数越小优先级越高:

作业名

到达时间

估计运行时间

优先数

J1

10:

10

20分钟

5

J2

10:

20

30分钟

3

J3

10:

30

25分钟

4

J4

10:

50

20分钟

6

列出所有作业进入内存时间及结束时间。

(1)计算平均周转时间。

解:

先作必要的分析(可在草稿纸上完成,分析过程不计分):

10:

10J1被调入,开始运行

10:

20J2进入内存,因优先级高,开始运行

J1运行了10分钟,还剩10分钟,因优先级低,运行态变就绪态

10:

30J1继续就绪

J2运行了10分钟,还剩20分钟

J3到达,但不能被调入

10:

50J2运行结束,J4到达

调入短作业J4,但因J4优先级比J1低,J1开始继续运行

11:

00J1运行结束

J3被调入,因优先级高,开始运行

J4因优先级低,仍就绪

11:

25J3运行结束,J4开始运行

11:

45J4运行结束

(1)各个作业进入主存时间、结束时间和周转时间如下表所示:

(6分)

作业名

提交时间

进入时间

结束时间

周转时间

J1

10:

10

10:

10

11:

00

50

J2

10:

20

10:

20

10:

50

30

J3

10:

30

11:

00

11:

25

55

J4

10:

50

10:

50

11:

45

55

(2)平均周转时间:

(50+30+55+55)/4=47.5(min)

5.有一个多道程序设计系统,采用不可移动的可变分区方式管理主存空间,设主存空间为100K,采用最先适应分配算法分配主存,作业调度采用响应比高者优先算法,进程调度采用时间片轮转算法(即内存中的作业均分CPU时间),今有如下作业序列:

作业名

提交时间

需要执行时间

要求主存量

J1

10:

00

40分钟

25K

J2

10:

15

30分钟

60K

J3

10:

30

20分钟

50K

J4

10:

35

25分钟

18K

J5

10:

40

15分钟

20K

假定所有作业都是计算型作业且忽略系统调度时间。

回答下列问题:

(1)列表说明各个作业被装入主存的时间、完成时间和周转时间;

(2)写出各作业被调入主存的顺序;

(3)计算5个作业的平均周转时间。

解:

先作必要的分析(可在草稿纸上完成,分析过程不计分):

10:

00

J1到达,被调入内存并开始运行,内存剩75KB

10:

15

J2到达,被调入内存并开始与J1一起运行。

J1运行了15分钟,还需执行25分钟。

内存剩15KB

10:

30

J3到达,因内存不能满足,不被调入。

J1、J2继续运行。

10:

35

J4到达,因内存不能满足,不被调入。

此时J1相当于已运行了15+10=25分钟,还需执行15分钟;J2相当于已运行了10分钟,还需执行20分钟。

10:

40

J5到达,因内存不能满足,不被调入。

J1、J2继续运行。

11:

05

J1运行结束,J2还需执行5分钟。

内存中的2个空闲分区分别是25K和15K,能满足J4或J5需求,但不能满足J3的需要。

J4的响应比=1+30/25=2.2;J5的响应比=1+25/15=2.67,J5被调入内存并与J2一起运行,内存中的空闲分区大小是5KB和15K。

11:

15

J2运行结束,内存中的空闲分区是65KB和15K。

J3的响应比=1+45/20=3.25,J4的响应比=1+40/25=2.6,J3被调入内存与J5一起运行。

内存中的空闲分区大小是15KB和15K。

J3需执行20分钟,J5还需执行10分钟。

11:

35

J5运行结束,J4调入内存运行。

J3还需执行10分钟,J4还需执行25分钟。

11:

55

J3运行结束

12:

10

J4运行结束

答:

(1)各个作业被装入主存的时间、完成时间和周转时间如下表所示:

作业名

装入主存时间

作业完成时间

周转时间

J1

10:

00

11:

05

65

J2

10:

15

11:

15

60

J3

11:

15

11:

55

85

J4

11:

35

12:

10

95

J5

11:

05

11:

35

55

(2)作业被调入主存的顺序为J1,J2,J5,J3,J4。

(3)平均周转时间=(65+60+85+95+55)/5=72(分钟)。

(3)(北京大学1997年试题)某系统有A,B,C三类资源(数量分别为17,5,20)和P1~P5五个进程,在T0时刻系统状态如下表所示:

进程

最大资源需求量

已分配资源数量

A

B

C

A

B

C

P1

5

5

9

2

1

2

P2

5

3

6

4

0

2

P3

4

0

11

4

0

5

P4

4

2

5

2

0

4

P5

4

2

4

3

1

4

系统采用银行家算法实施死锁避免策略,请回答下列问题:

①T0时刻是否为安全状态?

若是,请给出安全序列。

②在T0时刻若进程P2请求资源(0,3,4),是否能实施资源分配?

为什么?

③在②的基础上,若进程P4请求资源(2,0,1),是否能实施资源分配?

为什么?

 

解:

①由已知条件可得尚需矩阵Need和可用资源向量Avalable如下:

NeedAvalable

ABCABC

P1347233

P2134

P3006

P4221

P5110

利用银行家算法对此时刻的资源分配情况进行分析如下表:

进程

Work

Need

Allocation

Work+Allocation

Finish

P4

233

221

204

437

true

P2

437

134

402

839

true

P3

839

006

405

12314

true

P5

12314

110

314

15418

true

P1

15418

347

212

17520

true

从上述分析可知,存在一个安全序列P4,P2,P3,P5,P1,故T0时刻系统是否安全的。

②在T0时刻若进程P2请求资源(0,3,4),不能实施资源分配。

因为当前C类资源剩余3个而P2请求4个,客观条件无法满足它的请求,因此不能实施资源分配,P2阻塞。

③在②的基础上,若进程P4请求资源(2,0,1),可以实施资源分配。

因为由①可知,P4是安全序列中的第一个进程,只要P4的请求量没有超出它的尚需量,系统满足它的请求后仍处于安全状态,即仍然存在安全序列P4,P2,P3,P5,P1。

6.有5个任务A,B,C,D,E,它们几乎同时到达,预计它们的运行时间为10,6,2,4,8min。

其优先级分别为3,5,2,1和4,这里5为最高优先级。

对于下列每一种调度算法,计算器平均进程周转时间(进程切换开销不考虑)。

(1)先来先服务(按A,B,C,D,E顺序)算法;

(2)优先级调度算法;

(3)时间片轮转算法(设时间片为1min——原题无此假设)。

解:

(1)采用先来先服务算法时,5个任务在系统中的执行顺序、完成时间及周转时间如下表所示。

执行顺序

预计运行时间

开始执行时间

完成时间

周转时间

A

10

0

10

10

B

6

10

16

16

C

2

16

18

18

D

4

18

22

22

E

8

22

30

30

5个进程的平均周转时间为:

(10+16+18+22+30)/5=19.2(min)

(2)采用最高优先级调度算法时,5个任务在系统中的执行顺序、完成时间及周转时间如下表所示。

执行顺序

预计运行时间

优先数

开始执行时间

完成时间

周转时间

B

6

5

0

6

6

E

8

4

6

14

14

A

10

3

14

24

24

C

2

2

24

26

26

D

4

1

26

30

30

5个进程的平均周转时间为:

(6+14+24+26+30)/5=20(min)

(1)采用时间片轮转调度算法时,可以认为5个进程均分CPU时间,它们在系统中的执行情况如下:

第一轮:

A,B,C,D,E(5min)

第二轮:

A,B,C(C完成,即C的周转时间为8min),D,E(5min)

第三轮:

A,B,D,E(4min)

第四轮:

A,B,D(D完成,即D的周转时间为17min),E(4min)

第五轮:

A,B,E(3min)

第六轮:

A,B(B完成,即B的周转时间为23min),E(3min)

第七轮:

A,E(2min)

第八轮:

A,E(E完成,即E的周转时间为28min)(2min)

第九轮:

A(1min)

第十轮:

A(A完成,即A的周转时间为30min)(1min)

所以,5个进程的平均周转时间为:

(8+17+23+28+30)/5=21.2(min)

7.页式存储管理中,主存空间按页分配,可用一张“位示图”构成主存分配表。

假设主存容量为2M字节,页面长度为512字节,若用字长为32位的字作主存分配的“位示图”需要多少个字?

如页号从1开始,字号和字内位号(从高位到低位)均从0开始,试问:

第2999页对应于何字何位;99字19位又对应于第几页?

解:

(1)内存总块数=2MB/512B=4096

位示图需要字数=4096/32=128

(2)字号=(2999-1)/32=93

位号=(2999-1)%32=22

即第2999内存页对应于位示图中93字的22位。

(3)99*32+19+1=3188

即位示图99字19位对应于内存的3188页

8.某操作系统采用可变分区分配存储管理方法,用户区为512K且始址为0,用空闲分区表管理空闲分区。

若分配时采用分配空闲低地址部分的方案,其初始时用户区的512K空间空闲,对下述申请序列:

申请300K,申请100K,释放300K,申请150K,申请30K,申请40K,申请60K,释放30K;回答下列问题:

(1)采用首次适应算法,空闲分区中有哪些空闲块(给出始址,大小)?

(2)采用最佳适应算法,空闲分区中有哪些空闲块(给出始址,大小)?

答:

(1)

(2)

9.一个32位地址的计算机系统使用二级页表,虚地址分为10位顶级页表,10位二级页表,其余是页内偏移。

试问:

(1)页面长度是多少?

(2)虚拟地址空间有多少个页面?

10.在采用页式存储管理的系统中,某作业的逻辑地址空间为4页(每页2048字节),且已知该作业的页表如下表。

试借助地址转换图(即要求画出页式存储管理系统地址转换示意图)求出逻辑地址4688所对应的物理地址。

页表

页号

内存块号

0

2

1

4

2

6

3

9

解:

逻辑地址4688所在的页号和页内偏移分别为:

页号P=4688/2048=2

页内偏移W=4688%2048=592

从上述地址转换图可知,进行地址转换的步骤如下:

(1)由虚地址计算出页号和页内偏移量;

(2)根据页号和进程的页表首址,查页表,找到对应的页表项,取出帧号(内存块号);

(3)帧号*页面大小+页内偏移形成物理地址。

即62048+592=12880

11.在一个采用页式虚拟存储管理的系统中,有一用户作业,它依次要访问的字地址序列是:

115,228,120,88,446,102,321,432,260,167,若该作业的第0页已经装入主存,现分配给该作业的主存共300字,页的大小为100字,请回答下列问题:

(此图类似地4题)

(1)按FIFO调度算法将产生的缺页中断次数、依次淘汰的页号和缺页中断率各为多少?

(2)按LRU调度算法将产生的缺页中断次数、依次淘汰的页号和缺页中断率各为多少?

答:

由题目的已知条件,可得页面走向为:

1,2,1,0,4,1,3,4,2,1

(1)FIFO的页面置换图如下:

页面走向

1

2

1

0

4

1

3

4

2

1

页帧

0

0

0

0

4

4

4

4

4

4

1

1

1

1

1

1

3

3

3

3

2

2

2

2

2

2

2

2

1

是否缺页

被淘汰页号

0

1

2

按FIFO调度算法将产生5次缺页中断,依次淘汰的页号为0,1,2,缺页中断率为5/10=50%。

(2)LRU算法的页面置换图如下:

页面走向

1

2

1

0

4

1

3

4

2

1

页面队列

1

2

1

0

4

1

3

4

2

1

0

1

2

1

0

4

1

3

4

2

0

0

2

1

0

4

1

3

4

是否缺页

被淘汰页号

2

0

1

3

按LRU调度算法将产生6次缺页中断,依次淘汰的页号为2,0,1,3,缺页中断率为6/10=60%。

12.某系统对主存采用页式管理,供用户使用的主存区域共640K字节,被分成160块,块号为0,1,…,159。

现有一作业的地址空间共占4页,其页号为0,1,2,3,被分配到主存的第2,4,1,5块中。

请回答:

(1)作业每一页的长度为多少字节?

(2)写出该作业被装入主存时,其对应的页表。

(3)把该作业的每一页在主存中的起始地址(用16进制表示)填在下表中:

页号

起始地址

0

1

2

3

解:

(1)作业每一页的长度为4K字节

(2)该作业被装入主存时,其对应的页表为

逻辑页号

主存块号

0

2

1

4

2

1

3

5

(3)该作业的每一页在主存中的起始地址(用16进制表示)如下表所示。

页号

起始地址

0

2000H

1

4000H

2

1000H

3

5000H

希望以上资料对你有所帮助,附励志名言3条:

1、有志者自有千计万计,无志者只感千难万难。

2、实现自己既定的目标,必须能耐得住寂寞单干。

3、世界会向那些有目标和远见的人让路。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1