第四次作业参考答案.docx

上传人:b****8 文档编号:9293950 上传时间:2023-02-04 格式:DOCX 页数:29 大小:854.80KB
下载 相关 举报
第四次作业参考答案.docx_第1页
第1页 / 共29页
第四次作业参考答案.docx_第2页
第2页 / 共29页
第四次作业参考答案.docx_第3页
第3页 / 共29页
第四次作业参考答案.docx_第4页
第4页 / 共29页
第四次作业参考答案.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

第四次作业参考答案.docx

《第四次作业参考答案.docx》由会员分享,可在线阅读,更多相关《第四次作业参考答案.docx(29页珍藏版)》请在冰豆网上搜索。

第四次作业参考答案.docx

第四次作业参考答案

第四次作业参考答案

1.作业Job1–Job5,在时刻0按作业号的顺序依次到达单处理器系统。

作业的执行时间,优先权(优先权越高数值越小)如下表所示:

作业号

执行时间(ms)

优先权

Job1

10

3

Job2

1

1

Job3

2

3

Job4

1

4

Job5

5

2

请分别采用先来先服务、时间片轮转、短作业优先以及非抢占的优先权调度算法计算作业的平均周转时间和平均带权周转时间。

答:

(1)先来先服务:

作业

达到时间Ts

开始时间

Tb

结束时间

Tf

执行时间Te

周转时间

Tr=Tf-Ts

带权周转时间(Tr/Te)

Job1

0

0

10

10

10

1

Job2

0

10

11

1

11

11

Job3

0

11

13

2

13

6.5

Job4

0

13

14

1

14

14

Job5

0

14

19

5

19

3.8

平均周转时间T

(10+11+13+14+19)/5=13.4

平均带权周转时间W

(1+11+6.5+14+3.8)/5=7.26

(2)时间片轮转:

假设时间片的长度为1,调度的顺序为1、2、3、4、5、1、3、5、1、5、1、5、1、5、1、1、1、1、1。

作业

达到时间Ts

开始时间

Tb

结束时间

Tf

执行时间Te

周转时间

Tr=Tf-Ts

带权周转时间(Tr/Te)

Job1

0

0

19

10

19

1.9

Job2

0

1

2

1

2

2

Job3

0

2

7

2

7

3.5

Job4

0

3

4

1

4

4

Job5

0

4

14

5

14

2.8

平均周转时间T

(19+2+7+4+14)/5=9.2

平均带权周转时间W

(1.9+2+3.5+4+2.8)/5=2.84

(3)短作业优先调度:

作业

达到时间Ts

开始时间

Tb

结束时间

Tf

执行时间Te

周转时间

Tr=Tf-Ts

带权周转时间(Tr/Te)

Job2

0

0

1

1

1

1

Job4

0

1

2

1

2

2

Job3

0

2

4

2

4

2

Job5

0

4

9

5

9

1.8

Job1

0

9

19

10

19

1.9

平均周转时间T

(1+2+4+9+19)/5=7

平均带权周转时间W

(1+2+2+1.8+1.9)/5=1.74

(4)非抢占优先级调度:

作业

达到时间Ts

开始时间

Tb

结束时间

Tf

执行时间Te

周转时间

Tr=Tf-Ts

带权周转时间(Tr/Te)

Job2

0

0

1

1

1

1

Job5

0

1

6

5

6

1.2

Job1

0

6

16

10

16

1.6

Job3

0

16

18

2

18

9

Job4

0

18

19

1

19

19

平均周转时间T

(1+6+16+18+19)/5=12

平均带权周转时间W

(1+1.2+1.6+9+19)/5=6.36

2.在道数不受限制的多道程序系统中,作业进入系统的后备队列时立即进行作业调度。

现有4个作业进入系统,有关信息为:

作业名

进入后备队列的时刻

执行时间(min)

优先数

Job1

8:

00

60

1

Job2

8:

30

50

2

Job3

8:

40

30

4

Job4

8:

50

10

3

如果作业调度和进程调度均采用高优先级调度算法(数值越大则优先级越高),请计算平均周转时间和平均带权周转时间。

答:

因为进入系统后立即进行作业调度,而且作业到达的时刻不同,所以后备队列中没有作业,作业进入就绪队列等待调度。

调度顺序如下:

作业

进入后备队列的时刻Ts

进入就绪队列的时刻

开始时间

Tb

结束时间

Tf

执行时间Te(min)

周转时间

Tr=Tf-Ts(min)

带权周转时间(Tr/Te)

Job1

8:

00

8:

00

8:

00

9:

00

60

60

1

Job3

8:

40

8:

40

9:

00

9:

30

30

50

1.67

Job4

8:

50

8:

50

9:

30

9:

40

10

50

5

Job2

8:

30

8:

30

9:

40

10:

30

50

120

2.4

平均周转时间T

(60+50+50+120)/4=70

平均带权周转时间W

(1+1.67+5+2.4)/4=2.52

3.在单道批处理系统中,下列三个作业采用先来先服务算法和最高响应比优先算法进行调度,哪种算法的性能较好?

作业

提交时刻

运行时间

开始时刻

完成时刻

周转时间/min

带权周转时间/min

1

10:

00

2:

00

2

10:

10

1:

00

3

10:

25

0:

25

平均周转时间T=

平均带权周转时间W=

答:

因为是单道批处理系统,所有内存为一个进程所独占(操作系统除外),其它作业在外存的后备队列中等待作业调度,当前进程结束后,根据作业调度算法选择合适的作业进入运行。

(1)先来先服务调度算法:

作业

进入后备队列的时刻Ts

进入就绪队列的时刻

开始时间

Tb

结束时间

Tf

执行时间Te(min)

周转时间

Tr=Tf-Ts(min)

带权周转时间(Tr/Te)

Job1

10:

00

10:

00

10:

00

12:

00

120

120

1

Job2

10:

10

12:

00

12:

00

13:

00

60

170

2.83

Job3

10:

25

13:

00

13:

00

13:

25

25

180

7.2

平均周转时间T(min)

(120+170+180)/3=156.67

平均带权周转时间W

(1+2.83+7.2)/3=3.68

(2)最高响应比优先算法

作业

进入后备队列的时刻Ts

进入就绪队列的时刻

开始时间

Tb

结束时间

Tf

执行时间Te(min)

周转时间

Tr=Tf-Ts(min)

带权周转时间(Tr/Te)

Job1

10:

00

10:

00

10:

00

12:

00

120

120

1

Job3

10:

25

12:

00

12:

00

12:

25

25

120

4.8

Job2

10:

10

12:

25

12:

25

13:

25

60

195

3.25

平均周转时间T(min)

(120+120+195)/3=145

平均带权周转时间W

(1+4.8+3.25)/3=3.02

结论:

最高响应比调度要优于先来先服务调度。

4.有一个四道作业的操作系统,若在一段时间内先后到达六个作业,其提交时刻和估计运行时间为:

作业

提交时刻

估计运行时间(min)

1

8:

00

60

2

8:

20

35

3

8:

25

20

4

8:

30

25

5

8:

35

5

6

8:

40

10

系统采用剩余最短时间调度算法,作业被调度进入系统后不会退出,但作业运行时可被剩余时间更短的作业所抢占。

请计算平均周转时间和带权周转时间。

答:

作业调度的顺序如下图所示。

作业

进入后备队列的时刻Ts

进入就绪队列的时刻

开始时间

Tb

结束时间

Tf

执行时间Te(min)

周转时间

Tr=Tf-Ts(min)

带权周转时间(Tr/Te)

1

8:

00

8:

00

8:

00

10:

35

60

155

2.58

2

8:

20

8:

20

8:

20

9:

55

35

95

2.71

3

8:

25

8:

25

8:

25

8:

45

20

20

1

4

8:

30

8:

30

9:

00

9:

25

25

55

2.2

5

8:

35

8:

45

8:

45

8:

50

5

15

3

6

8:

40

8:

50

8:

50

9:

00

10

20

2

平均周转时间T(min)

(155+95+20+55+15+20)/6=60

平均带权周转时间W

(2.58+2.71+1+2.2+3+2)/6=2.25

5.某操作系统采用轮转调度进程。

分配给A类进程时间片长100ms,分配给B类进程的时间片长400ms,若假定就绪队列中有4个A类进程和1个B类进程。

所有进程的平均服务时间为2s。

不考虑I/O和系统开销,计算A类进程和B类进程的平均周转时间。

答:

当B类进程没有结束时,A、B类进程轮转周期是:

0.1s×4+0.4s=0.8s。

经过5个轮转周期,B进程结束,此时所需的时间为:

0.8s×5=4s,所以B类进程的平均周转时间为4s。

B类进程结束后,再需0.4s×15=6s后,A类进程结束,A类进程的平均周转时间为4+6=10s

6.有三个并发进程:

R负责从输入设备读入信息块,M负责对信息块进行加工处理,P负责打印输出信息块。

现提供:

(1)一个缓冲区,可放置K个信息块;

(2)两个缓冲区,每个缓冲区可放置K个信息块。

试用信息量和P、V操作写出三个进程正确的流程。

答:

(1)进程R、M和P之间存在同步的关系。

设置资源信号量sread,初始值为K,用于R进程和M进程之间的同步;资源信号量smanage,初始值为0,用于M进程和P进程之间的同步;资源信号量sprint,初始值为0,用于P进程和R进程之间的同步。

(2)两个缓冲区A、B,A缓冲用于R进程读入信息块,M进程从A缓冲中取出信息经过加工后放入B缓冲,P进程从B缓冲中取出信息块输出,整个过程如下图所示:

针对缓冲区A,设置资源信号量sempty_A=K、sfull_A=0,保证R和M的同步;针对缓冲区B,设置sempty_B=K、sfull_B=0,保证M和P的同步。

7.设在公共汽车上司机和售票员的活动分别如下。

(1)司机的活动:

启动汽车,正常行驶,到站停车。

(2)售票员的活动:

关车门,售票,开车门。

如汽车不断到站、停车、行驶的过程中,使用信号量和P、V操作实现其同步。

答:

在汽车行驶过程中,司机和售票员两个进程之间的同步关系为:

售票员关门→售票员向司机发送开车信号→司机启动汽车→售票员卖票→到站司机停车→售票员开门上下客。

设置信号量sstart用于司机启动车辆于售票员关门的同步,信号量sopen用于售票员开门与司机停车间的同步。

两个信号量的初始值都为0。

8.三名吸烟者在同一个房间,还有一位香烟供应者。

为了制造并抽掉香烟,每位吸烟者需要三样东西:

烟草、纸和火柴,供应者有丰富的货物供应。

三位吸烟者中,第一个人有自己的烟草,第二个人有自己的纸,第三个人有自己的火柴。

供应者随机地将两样东西放在桌子上,允许一位吸烟者进行对健康不利的吸烟。

当吸烟者完成吸烟后唤醒供应者,供应者再把两样东西放在桌子上,唤醒另一个吸烟者。

试采用信号量和P、V操作同步他们的过程。

答:

涉及的进程共有四个:

一个供应商进程provider,三个吸烟者进程smoker1、smoker2、smoker3。

为了保证四个进程的同步,设置四个信号量sprovider、ssmoker1、ssmoker2、ssmoker3。

Sprovider初始值为1,用于阻塞供应商进程:

当供应商提供一类材料供某个吸烟者吸烟后,则不能再继续提供材料;ssmoker1初始值为0,用于阻塞第一个吸烟者(拥有烟草的吸烟者):

当供应商提供第一个吸烟者所需的材料后,唤醒第一个消费者;ssmoker2(拥有纸的吸烟者)和ssmoker3(拥有火柴的吸烟者)同理。

9.理发店里有一位理发师、一把理发椅和n把供等候理发的顾客休息的椅子。

如果没有顾客,理发师便在理发椅上睡觉,当有顾客到来时,顾客就唤醒理发师;如果理发师正在理发时又有新顾客到达,那么,如果还有空椅子,顾客就坐下来等候,否则就会离开理发店。

试使用信号量和P、V操作实现同步过程。

答:

设置三个信号量用于控制理发师进程和顾客进程的同步和互斥:

customers记录等候理发的顾客数,并用于阻塞理发师进程,初始值为0;barber记录正在等候顾客的理发师数,并用于阻塞顾客进程,其初始值为0;互斥信号量mutex用于互斥访问临界资源,初始值为1。

此外由于要对顾客人数进行计数,但信号量customers的原子性无法得到顾客人数,所以单独设置一个整形变量waiting,用于记录待理发的顾客数,它是一个临界资源。

10.东西向汽车驶过独木桥,为了保证交通安全,只要桥上无车,则允许一方的汽车过桥,待其全部过完后才允许另一方的汽车过桥。

请用信号量和P、V操作写出汽车过独木桥的同步算法。

答:

汽车过桥的两个方向设为A(西→东)、B(东→西),countA和countB为两个方向过桥时在桥上的汽车数,初始值为0。

使用3个信号量用于控制左边汽车的过桥进程(left)和右边汽车过桥进程(right),分别是:

mutex,用于左右过河的互斥,初始值为1;mutexA,用于对countA的互斥访问,初始值为1;mutexB,用于对countB的互斥访问,初始值为1。

11.桌上有一只盘子,最多可容纳两个水果,每次仅能放入或取出一个水果。

爸爸向盘子中放苹果,妈妈向盘子中放橘子,两个儿子专等吃盘子里的橘子,两个女儿专等吃盘子里的苹果。

使用信号量和P、V操作解决爸爸、妈妈、儿子和女儿间的同步问题。

答:

设置四个信号量用于控制四个进程(父亲进程、母亲进程、儿子进程和女儿进程)的同步和互斥,这四个信号量分别是:

mutex,互斥信号量,初始值为1,用于对盘子的互斥访问;sapple,资源信号量,初始值为0,表示盘中苹果的数量;sorange,资源信号量,初始值为0,表示盘中橘子的数量;empty,资源信号量,表示还可以向盘中放的水果数量,初始值为2。

12.某银行办理存储业务,由n名储蓄员负责。

每位顾客进入银行后先至取号机领取一个号并且在等待区找到空沙发坐下来等待叫号。

取号机给出的号码依次递增,并假定有足够多的空沙发容纳顾客。

当一位储蓄员空闲下来就呼叫下一个号。

请使用信号量和P、V操作正确编写储蓄员进程和顾客进程的程序。

答:

涉及的进程有两类,一类是顾客进程,另一类是储蓄员进程。

设置三个信号量:

mutex,互斥信号量,初始值为1,用于取号、叫号的互斥;scustomer,资源信号量,初始值为0,表示等待服务的顾客人数,当其大于0时,唤醒储蓄员进程服务;sserver,资源信号量,初始值为n。

13.设当前的系统状态如下,此时Available=(1,1,2)。

进程

Claim

Allocation

R1

R2

R3

R1

R2

R3

P1

3

2

2

1

0

0

P2

6

1

3

5

1

1

P3

3

1

4

2

1

1

P4

4

2

2

0

0

2

(1)系统是否处于安全状态?

为什么?

(2)进程P2发出请求向量Request2(1,0,1),系统能否把资源分配给它?

(3)若在进程P2申请后,P1发出请求向量Request1(1,0,1),系统能否把资源分配给它?

(4)若在进程P1申请资源后,P3发出请求向量Request3(0,0,1),系统能否把资源分配给它?

答:

(1)系统此时的资源分配如下:

进程

Claim

Allocation

Need

Available

R1

R2

R3

R1

R2

R3

R1

R2

R3

1,1,2

P1

3

2

2

1

0

0

2

2

2

P2

6

1

3

5

1

1

1

0

2

P3

3

1

4

2

1

1

1

0

3

P4

4

2

2

0

0

2

4

2

0

由上表可知,当满足P2的资源要求后,系统的资源分配情况如下表所示:

进程

Claim

Allocation

Need

Available

R1

R2

R3

R1

R2

R3

R1

R2

R3

6,2,3

P1

3

2

2

1

0

0

2

2

2

P2

P3

3

1

4

2

1

1

1

0

3

P4

4

2

2

0

0

2

4

2

0

满足P1的资源要求后,系统的资源分配情况如下表所示:

进程

Claim

Allocation

Need

Available

R1

R2

R3

R1

R2

R3

R1

R2

R3

8,4,5

P1

P2

P3

3

1

4

2

1

1

1

0

3

P4

4

2

2

0

0

2

4

2

0

满足P4的资源要求后,系统的资源分配情况如下表所示:

进程

Claim

Allocation

Need

Available

R1

R2

R3

R1

R2

R3

R1

R2

R3

8,4,7

P1

P2

P3

3

1

4

2

1

1

1

0

3

P4

此时可用资源能够满足P3的需求。

因为存在安全序列P2、P1、P4、P3可保证所有的进程结束,因此系统是安全的。

(2)满足P2的资源申请后,系统资源的分配情况如下表所示:

进程

Claim

Allocation

Need

Available

R1

R2

R3

R1

R2

R3

R1

R2

R3

0,1,1

P1

3

2

2

1

0

0

2

2

2

P2

6

1

3

5

1

1

0

0

1

P3

3

1

4

2

1

1

1

0

3

P4

4

2

2

0

0

2

4

2

0

此时还存在安全序列P2、P1、P4、P3保证全部进程结束,因此系统是安全的。

(3)满足P2的资源申请后,系统的可用资源如上表所示为(0,1,1),P1发出申请(1,0,1),此时可用资源无法满足P1的申请,若分配资源后,系统死锁,因此不能分配。

(4)P1申请资源后,系统资源已不足,无法满足P3的资源申请。

14.系统有A、B、C、D四种资源,在某个时刻进程P0、P1、P2、P3和P4对资源的占有和需求情况如下表所示,试解答下列问题。

进程

Allocation

Claim

Available

A

B

C

D

A

B

C

D

A

B

C

D

P0

0

0

3

2

0

0

4

4

1

6

2

2

P1

1

0

0

0

2

7

5

0

P2

1

3

5

4

3

6

10

10

P3

0

3

3

2

0

9

8

4

P4

0

0

1

4

0

6

6

10

(1)系统此时处于安全状态吗?

(2)若此时进程P2发出请求request1(1,2,2,2),系统能分配资源给它吗?

为什么?

答:

(1)此时的资源分配情况如下表所示:

进程

Allocation

Claim

Need

Available

A

B

C

D

A

B

C

D

A

B

C

D

1,6,2,2

P0

0

0

3

2

0

0

4

4

0

0

1

2

P1

1

0

0

0

2

7

5

0

1

7

5

0

P2

1

3

5

4

3

6

10

10

2

3

5

6

P3

0

3

3

2

0

9

8

4

0

6

5

2

P4

0

0

1

4

0

6

6

10

0

6

5

6

满足P0的资源要求后,系统的资源分配情况如下表所示:

进程

Allocation

Claim

Need

Available

A

B

C

D

A

B

C

D

A

B

C

D

1,6,5,4

P0

P1

1

0

0

0

2

7

5

0

1

7

5

0

P2

1

3

5

4

3

6

10

10

2

3

5

6

P3

0

3

3

2

0

9

8

4

0

6

5

2

P4

0

0

1

4

0

6

6

10

0

6

5

6

满足P3的资源要求后,系统的资源分配情况如下表所示:

进程

Allocation

Claim

Need

Available

A

B

C

D

A

B

C

D

A

B

C

D

1,9,8,6

P0

P1

1

0

0

0

2

7

5

0

1

7

5

0

P2

1

3

5

4

3

6

10

10

2

3

5

6

P3

P4

0

0

1

4

0

6

6

10

0

6

5

6

满足P1的资源要求后,系统的资源分配情况如下表所示:

进程

Allocation

Claim

Need

Available

A

B

C

D

A

B

C

D

A

B

C

D

2,9,8,6

P0

P1

P2

1

3

5

4

3

6

10

10

2

3

5

6

P3

P4

0

0

1

4

0

6

6

10

0

6

5

6

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

当前位置:首页 > PPT模板 > 其它模板

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

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