操作系统原理--调度算法例题

假设系统中有5个进程,它们的到达时间和服务时间见下表,忽略I/O以及其他开销时间,若按先来先服务(FCFS)、非抢占的短作业优先、高响应比优先(HRRN)、时间片轮转(RR,时间片=1)、非抢占式的多级反馈队列(FB,第 i 级队列的时间片=2i-1)、抢占式的多级反馈队列(FB,第 i 级队列的时间片=2i-1)六种调度算法进行CPU调度,请给出各个进程的完成时间、周转时间、带权周转时间、平均周转时间和平均带权周转时间。

进程

到达时间

服务时间

A

0

3

B

2

6

C

4

4

D

6

5

E

8

2

 

答:完成时间:根据调度算法原理确定;

周转时间 = 完成时间 - 到达时间;

带权周转时间 = 周转时间 / 服务时间;

平均周转时间 = 周转时间之和 / 进程数;

平均带权周转时间 = 带权周转时间之和 / 进程数;

 

先来先服务(FCFS)

进程

到达时间

服务时间

完成时间

周转时间

带权周转时间

平均周转时间

平均带权周转时间

A

0

3

3

3

3/3 = 1

(3+7+9+12+12)/5 = 8.6

(1+1.7+2.25+2.4+6)/5 = 2.67

B

2

6

9

7

7/6 = 1.17

C

4

4

13

9

9/4 = 2.25

D

6

5

18

12

12/5 = 2.4

E

8

2

20

12

12/2 = 6

 

非抢占式短进程优先(SPF)

进程

到达时间

服务时间

完成时间

周转时间

带权周转时间

平均周转时间

平均带权周转时间

A

0

3

3

3

3/3 = 1

(3+7+11+14+3)/5 = 7.6

(1+1.17+2.75+2.8+1.5) / 5 = 1.844

B

2

6

9

7

7/6 = 1.17

C

4

4

15

11

11/4 = 2.75

D

6

5

20

14

14/5 = 2.8

E

8

2

11

3

3/2 = 1.5

 

高响应比优先(HRRN)

进程

到达时间

服务时间

完成时间

周转时间

带权周转时间

平均周转时间

平均带权周转时间

A

0

3

3

3

3/3 = 1

(3+7+9+14+7)/5 = 8

(1+1.17+2.25+2.8+3.5)/5 = 2.144

B

2

6

9

7

7/6 = 1.17

C

4

4

13

9

9/4 = 2.25

D

6

5

20

14

14/5 = 2.8

E

8

2

15

7

7/2 = 3.5

 

时间片轮转(RR,时间片=1)

进程

到达时间

服务时间

完成时间

周转时间

带权周转时间

平均周转时间

平均带权周转时间

A

0

3

4

4

4/3 = 1.33

 (4+16+13+14+7)/5 = 10.8

(1.33+2.67+3.25+2.8+3.5)/5 = 2.71

B

2

6

18 

16

16/6 = 2.67

C

4

4

17

13

13/4 = 3.25

D

6

5

20

14

14/5 = 2.8

E

8

2

15

7

7/2 = 3.5

到达时间是每隔两秒到达一个进程,不是每隔一秒,注意顺序!

新进程在老进程完成前到达

A   A(B到达)   BA(C到达)   BC(D先到达,C后到达,B已经返回就绪队列)   BD(E先到达,D后到达,B已经返回就绪队列)C    BED CBED CBDD

 

非抢占式的多级反馈队列(FB,第 i 级队列的时间片=2i-1)

进程

到达时间

服务时间

完成时间

周转时间

带权周转时间

平均周转时间

平均带权周转时间

A

0

3

3

3

1

(3+15+14+14+6)/5 = 10.4

(1+2.5+3.5+2.8+3)/5 = 2.56

B

2

6

17

15

2.5

C

4

4

18

14

3.5

D

6

5

20

14

2.8

E

8

2

14

6

3

新进程到达后不会抢占,原先的进程继续进入下一队列采用RR调度算法服务!

A AA B C BB D E CC DD E BBB C DD

 

抢占式的多级反馈队列(FB,第 i 级队列的时间片=2i-1)

进程

到达时间

服务时间

完成时间

周转时间

带权周转时间

平均周转时间

平均带权周转时间

A

0

3

4

4

1.33

(4+16+11+14+8)/5 = 10.6

(1.33+2.67+2.75+2.8+4)/5 = 2.71

B

2

6

18

16

2.67

C

4

4

15

11

2.75

D

6

5

20

14

2.8

E

8

2

16

8

4

新进程到达后立即抢占,原先的进程继续进入下一队列采用RR调度算法服务!

A A(被抢) B A C B(被抢) D C(被抢) E BB DD CC E BB DD

 

 

你可能感兴趣的:(操作系统原理)