操作系统导论课后作业-第九章答案

文章探讨了随机种子和时间片设置对计算3个作业模拟解的影响,以及彩票数量不平衡时作业调度的公平性。结果显示,彩票数量差距大时,小份额作业几乎无法获得CPU资源,时间片大小影响着调度的公平性和系统性能。
摘要由CSDN通过智能技术生成

课程作业-第九章:

9.1计算3个作业在随机种子为1、2和3时的模拟解。

答:

(1)随机种子为1时:

时间片R=1

job0,总占用时间:1,彩票数:0-83

job1,总占用时间:7,彩票数:84-108

job2,总占用时间:2,彩票数:109-152

产生的随机数依次取模得到执行作业的顺序为:2 0 1 2 2 2 1 1 1 1 1 1

分析如下表所示:

时间

Job0

Job1

Job2

随机数

总份额

运行

1

0

0

1

651593

153

119

Job2

2

1(已完成)

0

1

788724

153

9

Job0

3

1

1

93859

69

19

Job1

4

1

2

28347

69

57

Job2

5

1

3

835765

69

37

Job2

6

1

4(已完成)

432767

69

68

Job2

7

2

762280

25

5

Job1

8

3

2106

25

6

Job1

9

4

445387

25

12

Job1

10

5

721540

25

15

Job1

11

6

228062

25

12

Job1

12

7(已完成)

945271

25

21

Job1

(2)随机种子为2时:

同理可得到执行作业的顺序:2 0 0 2 0 1 0 2 0 0 0 1 0 0 1 2 1 1 1 2 1 1 2

分析如下表所示:

时间

Job0

Job1

Job2

随机数

总份额

运行

1

0

0

1

605944

197

169

Job2

2

1

0

1

606802

197

42

Job0

3

2

0

1

581204

197

54

Job0

4

2

0

2

158383

197

192

Job2

5

3

0

2

430670

197

28

Job0

6

3

1

2

393532

197

123

Job1

7

4

1

2

723012

197

22

Job0

8

4

1

3

994820

197

167

Job2

9

5

1

3

949396

197

53

Job0

10

6

1

3

544177

197

63

Job0

11

7

1

3

444854

197

28

Job0

12

7

2

3

268241

197

124

Job1

13

8

2

3

35924

197

70

Job0

14

9(完成)

2

3

27444

197

61

Job0

15

3

3

464894

103

55

Job1

16

3

4

318465

103

92

Job2

17

4

4

390015

103

48

Job1

18

5

4

891790

103

16

Job1

19

6

4

525753

103

41

Job1

20

6

5

560510

103

87

Job2

21

7

5

236123

103

47

Job1

22

8(完成)

5

23858

103

65

Job1

23

6(完成)

325143

30

3

Job2

(3)随机种子为3时:

同理可得到执行作业的顺序:1 1 0 1 0 1 1 2 2 2 2

分析如下表所示:

时间

Job0

Job1

Job2

随机数

总份额

运行

1

0

1

0

13168

120

88

Job1

2

0

2

0

837469

120

109

Job1

3

1

2

0

259354

120

34

Job0

4

1

3(完成)

0

234331

120

91

Job1

5

2(完成)

0

995645

60

5

Job0

6

1

470263

6

1

Job1

7

2

836462

6

2

Job1

8

3

476353

6

1

Job2

9

4

639068

6

2

Job2

10

5

150616

6

4

Job2

11

6(完成)

634861

6

1

Job2

9.2现在运行两个特定的作业:每个长度为 10,但是一个(作业 0)只有一张彩票,另一个(作业 1)有 100 张彩票(−l 10∶1,10∶100)。彩票数量如此不平衡时会发生什么?在作业 1 完成之前,作业 0 是否会运行?运行频率(how often)?一般来说,这种彩票不平衡对彩票调度的行为有什么影响?

答:

详细计算过程如下:

时间

Job0

Job1

随机数

总份额

运行

1

0

1

844422

101

62

Job1

2

0

2

757955

101

51

Job1

3

0

3

420572

101

8

Job1

4

0

4

258917

101

54

Job1

5

0

5

511275

101

13

Job1

6

0

6

404934

101

25

Job1

7

0

7

783799

101

39

Job1

8

0

8

303313

101

10

Job1

9

0

9

476597

101

79

Job1

10

0

10(完成)

583382

101

6

Job1

11

1

908113

1

0

Job0

12

2

504687

1

0

Job0

13

3

281838

1

0

Job0

14

4

755804

1

0

Job0

15

5

618369

1

0

Job0

16

6

250506

1

0

Job0

17

7

909747

1

0

Job0

18

8

982786

1

0

Job0

19

9

810218

1

0

Job0

20

10(完成)

902166

1

0

Job0

在这里,Job0和Job1的彩票数量分别为1:100,差了整整100倍。所以在工作1结束前,抽到Job0的彩票的概率(即Job0占用CPU的概率)为1/101,导所以在工作1完成之前工作0占用CPU几乎是不可能的。在这种极端情况下,像Job0这种持有份额小的工作,一般响应时间与周转时间都非常长,且基本上占用不了CPU,非常容易发生“饿死”的情况。从上图的随机种子模拟结果上看,在工作1完成之前,工作0并没有运行。

9.3如果运行两个长度为100、都有100张彩票的作业(−l100∶100,100∶100),调度程序有多不公平?运行一些不同的随机种子来确定(概率上的)答案,以一项作业比另一项作业早完成多少来确定不公平性。

答:

首先,分别运行以下命令行来执行彩票调度程序lottery.py:

  1. ./lottery.py -l 100:100,100:100 -s 1 -c  
  2. ./lottery.py -l 100:100,100:100 -s 25 -c  
  3. ./lottery.py -l 100:100,100:100 -s 50 -c  
  4. ./lottery.py -l 100:100,100:100 -s 100 -q 10 -c  # 调整时间片为10  
  5. ./lottery.py -l 100:100,100:100 -s 100 -q 30 -c  # 调整时间片为30

在上述操作中,使用不同的随机种子(通过-s参数指定)以及时间片大小(通过-q参数调整)。

观察运行结果,我们得到以下信息:

当随机种子设为1时,job0在192时完成,而job1在200时完成。

当随机种子设为25时,job1在182时完成,而job0在200时完成。

当随机种子设为50时,job1在188时完成,job0则在200时完成。

从这些结果中,可以看到公平性相对较好,即不同工作的完成时间较为接近。

接下来,尝试调整时间片大小来观察其对公平性的影响:

当时间片调整为10时,job1在140时完成,而job0在200时完成。

当时间片调整为30时,job1在150时完成,job0则在240时完成。

在这两种情况下,我们观察到公平性较差,即两个工作的完成时间差距较大。

通常,时间片的大小会直接影响调度的公平性。时间片越小,意味着调度器更频繁地进行工作切换,这通常会使两个工作的完成时间更加接近,从而提高公平性。然而,过小的时间片也可能导致过多的上下文切换,从而降低系统整体性能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一二爱上蜜桃猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值