2024年2月26日发(作者:)

注意:此答案仅供参考,不作为考试的依据,不表示完全正确;使用不当,后果自负。

习题7.12

1)页的大小为: 212Bytes

2)能分配的最多页面个数为: 220个。

3)逻辑地址空间最大为:232Byte

4)物理内存的大小为: 232Byte

习题7.14

a)段0开始于位置660,随着偏移量,我们有一个物理地址: 段0开始于位置660,660 + 198 = 858

b) 第2个段起始地址为222,长度为198

所以,物理地址为222+156=378

c) 段1为422字节的长度,所以这个地址触发段错误

d) 996 + 444 = 1440

e. 660 + 222 = 882

复习题8.3

可以根据局部性原理设计算法来避免抖动。总的来说,局部性原理允许算法预测哪一个当前页在最近的未来是最少可能被使用的,并由此就决定候选的替换出的页。

复习题8.8

CLOCK算法和FIFO策略一样都把分配给进程的页框看做是一个循环缓冲区,按循环方式移动页。时钟算法与FIFO算法很接近,只在时钟算法中给每一页框关联一个附加位,称为使用位,任何一个使用位为1的页不能被替换,并且将其使用位置为0。

习题8.2

A)虚拟内存可以容纳(232字节的主内存)/ ( 210字节/页) = 222页,因此22位来在虚拟存储器中指定的页面。每一页表包含(每页面表210字节) / (4字节/项) = 28项。因此,每个页表可以处理所需要的22位/8。因此, 所以需要3级页表。

B)有两级页表是28,一级是26(8+8+6=22)

C)当26为第一级时:分配为6,8,8 ,第一级页数为1,第二级页数为26,第三级为28,1+26+214= 16,449页;

26为第二级时:分配为8,6,8,第一级页数为1,第二级页数为28,第三级页数为214,总的为1+28+214=16,641 页

26为第三极时:分配为8,8,6,第一级页数为1,第二级页数为28,第三级页数为216,总的为1+28+216= 65,973 页

所以分配为6,8,8时使用页数最小。

习题8.4

A) FIFO算法时,置换页框3,因为页框3在时间为20的时候被加载进来,是最早被加载的页框。

b) LRU算法,置换页框1,因为页框1的访问时间是160,是最早被访问的。

c) 时钟算法,清除页框3的R位因为它最早加载,清除页框2的R位因为它次最早加载,换出的是页框0因为它的R位为0。

d) 最佳算法,置换页框3,因为它将最晚被访问到。

e)

习题8.6

(1)页面访问顺序为:0, 0, 1, 1, 0, 3, 1, 2, 2, 4, 4, 3

(2)页大小为100Bytes,有200Bytes的物理内存可用,所以页框个数为2个。

a)LRU缺页次数为7

0 0 1 1

0 0 0 0

1 1

F F

b)FIFO缺页次数6

0 0 1 1

0 0 0 0

1 1

F F

c)OPT缺页次数5

0 0 1 1

0 0 0 0

1 1

f f

习题8.10

0

0

1

3

0

3

F

1

1

3

F

2

1

2

F

2

1

2

4

4

2

F

4

4

2

3

4

3

F

0

0

1

3

3

1

F

1

3

1

2

3

2

F

2

3

2

4

4

2

F

4

4

2

3

4

3

F

0

0

1

3

3

1

F

1

3

1

2

3

2

F

2

3

2

4

3

4

F

4

3

4

3

4

3

a)虚拟地址空间: 264个地址.

b)如果要实现一个简单的一级页表,页表中有264/212=252个表项

c)如果简单的使用一级页表,操作系统需要维护巨大的页表,并且这个页表的一部分可能不在内存中,则如果访问这些页表中的数据,需要进行两次缺页等待。

可以采用多级页表的方式缓解这个问题。

习题8.11

此问题分为四种情况讨论,分别如下:

1)TLB检查(20ns)并命中(0.95概率),直接访问内存中的页面(80ns),

总时间是:(20 + 80)* 0.95 = 95ns

2)TLB检查(20ns)未命中(0.05概率),直接访问内存中的一级页表(80ns),通过一级页表访问二级 页表(80ns),页面保存在内存中(0.90概率,缺页率是10%,则不缺页概率为90%),直接访问内存中的页面(80ns)。 总时间是:(20 + (80 + 80 + 80) * 0.9)* 0.05 = 11.8ns

3)TLB检查(20ns)未命中(0.05概率),直接访问内存中的一级页表(80ns),

通过一级页表访问二级 页表(80ns),然后发生缺页中断(0.10概率),被替换的页面无内容更改(0.80概率,页面内容被更改的概率是20%,则页面内容无更改的概率是80%),执行一次页面交换(5000ns),最后直接访问内存中的页面(80ns)。总时间是:(20 + (80 + 80 +0.8*5000+80 ) * 0.1)* 0.05

=22.2ns

4) 与3)类似,如果页面置换被修改了总时间是:(20 + (80 + 80 +0.2*(5000+5000)+80 ) * 0.1)* 0.05 =12.2ns

综上所述,访问一个数据项平均需要 95ns+11.8ns+22.2ns+12.2ns=141.2ns

复习题9.1

1) 长程调度:决定哪一个程序可以进入到系统中处理,因此,它控制系统并发度。

2) 中程调度:是交换功能的一部分,换入决定取决于取决于管理系统并发度需求。

3) 短程调度:也称作分派程序,执行得最频繁,并且精确地决定下一次执行哪一个进程。

4)

复习题9.5

1) 非抢占式:在这种情况下,一旦进程处于运行状态,它就不断执行直到终止,或者因为等待I/O或者请求某些操作系统服务而阻塞自己。

2) 抢占式:当前正在运行的进程可能被操作系统中断,并转移到就绪态。关于抢占的决策可能是在一个新进程到达时,或者在一个中断发生后把一个被阻塞的进程置为就绪状态时,或者基于周期性的时间中断。

3)

习题9.1

每格代表一个时间单位,方框中的字母表示当前运行的进程号

FCFS

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

A A A B B B B B C C D

B

D

D

D

E

D

D

D

E

E

D

E

E

E

D

E

E

E

E RR q=1 A B A B C A B C B D

RR q=4 A A A B B B B C C B

SPN

SRT

HRRN

A A A C C B B B B B

A A A C C B B B B B

A A A B B B B B C C

D

D

D

D

B

D

D

D

D

D

D

D

D

D

D

D

E

E

D

D

D

D

D

D

E

D

D

D

E

D

E

E

E

E

D

E

E

E

E

E

E

E

E

E

E

E

D

D

D

E

E

E

E

E

E

E

E

E

E

E

FB q=1 A B A C B C A B B D

FB q=2 A B A A C B B C B B

调度策略的比较

进程 A B C D E

到达时间 0 1 3 9 12

服务时间(Ts) 3 5 2 5 5

FCFS

完成时间 3 8 10 15 20

周转时间(Tr) 3.00 7.00 7.00 6.00 8.00 6.20

Tr/Ts 1.00 1.40 3.50 1.20 1.60 1.74

RR q=1

完成时间 6.00 11.00 8.00 18.00 20.00

周转时间(Tr) 6.00 10.00 5.00 9.00 8.00 7.60

Tr/Ts 2.00 2.00 2.50 1.80 1.60 1.98

RR q=4

完成时间 3.00 10.00 9.00 19.00 20.00

周转时间(Tr) 3.00 9.00 6.00 10.00 8.00 7.20

Tr/Ts 1.00 1.80 3.00 2.00 1.60 1.88

SPN

完成时间 3.00 10.00 5.00 15.00 20.00

周转时间(Tr) 3.00 9.00 2.00 6.00 8.00 5.60

Tr/Ts 1.00 1.80 1.00 1.20 1.60 1.32

SRT

完成时间 3.00 10.00 5.00 15.00 20.00

周转时间(Tr) 3.00 9.00 2.00 6.00 8.00 5.60

Tr/Ts 1.00 1.80 1.00 1.20 1.60 1.32

HRRN

完成时间 3.00 8.00 10.00 15.00 20.00

周转时间(Tr) 3.00 7.00 7.00 6.00 8.00 6.20

Tr/Ts 1.00 1.40 3.50 1.20 1.60 1.74

FB q=1

完成时间 7.00 11.00 6.00 18.00 20.00

周转时间(Tr) 7.00 10.00 3.00 9.00 8.00 7.40

Tr/Ts 2.33 2.00 1.50 1.80 1.60 1.85

FB q=2

完成时间 4.00 10.00 8.00 18.00 20.00

周转时间(Tr) 4.00 9.00 5.00 9.00 8.00 7.00

Tr/Ts 1.33 1.80 2.50 1.80 1.60 1.81

习题9.14

1) 对CPU密集型不利,如果进程运行时间过长,进程会被降低优先级,可能会面临长时间的等待。

2)对IO密集型进程有好处,进程可以向IO设备提交申请然后被挂起,等到下一次获得时间片时继续工作。

3)可能会发生饥饿现象。

习题9.16

1 2 3 4 5 Elapsed time

5

10

15

19

23

27

30

33

A B C D E

A B C D E

A B C D E

A B D E

A B D E

A B

A B

A B

D E

E

E

A B

A

A

A

A

A

E

E

E

E

36

38

40

42

43

45

每个进程的周转时间:A=45 min , B=35 min , C=13 min , D=26 min , E=42 min

平均周转时间是 (45+35+14+26+42)/5=32.2 min

b. 优先级 作业 周转时间

3

4

6

7

9

B

E

A

C

D

9

9 + 12 = 21

21 + 15 = 36

36 + 3 = 39

39 + 6 = 45

平均周转时间是 (9+21+36+39+45)/5=30 min

c. 作业 周转时间

A

B

C

D

E

15

15 + 9 = 24

24 + 3 = 27

27 + 6 = 33

33 + 12 = 45

平均周转时间是 (15+24+27+33+45)/5 = 28.8 min

d. 运行时间 作业 周转时间

3

6

9

C

D

B

E

3

3 + 6 = 9

9 + 9 = 18

18 + 12 = 30 12

15 A 30 + 15 = 45

平均周转时间是: (3+9+18+30+45) / 5 = 21 min

复习题10.2

(1)负载共享:进程不是分配到一个特定的处理器。系统维护一个就绪进程的全局队列,每个处理器只要空闲就从队列中选择一个线程。

(2)组调度:一组相关的线程基于一对一的原则,同时调度到一组处理器上运

行。

(3)专用处理器分配:通过把线程指定到处理器来定义隐式的调度。

(4)动态调度:在执行期间,进程中线程的数目可以改变。

复习题10.4

硬实时任务指必须满足最后期限的限制,否则会给系统带来不可接受的破坏或者致命错误。

软实时任务也有一个与之关联的最后期限,并希望能满足这个期限的要求,但这并不是强制的,即使超过了最后期限,调度和完成这个任务仍然是有意义的。

复习题10.6

(1)可确定性:在某种程度上指他可以按照固定的、预先确定的时间或者时间间隔执行操作。

(2)可响应性:响应性关注的是在知道中断之后操作系统为中断提供服务的时间。

(3)用户控制:允许用户细粒度地控制任务优先级。

(4)可靠性:实时系统是实时地响应和控制事件,对可靠性要求高。

(5)故障弱化操作:指在系统故障时尽可能多地保存其性能和数据的能力。

复习题11.2

逻辑I/O:逻辑I/O模块把设备当做一个逻辑资源来处理,它不关心实际控制设备的细节。逻辑I/O模块代表用户进程管理的一般的I/O功能,允许用户进程根据设备标识符以及诸如打开、关闭、读、写之类的简单命令与设备打交道

设备I/O:请求的操作和数据(缓冲的数据、记录等)被转换成适当的I/O指令序列、通道命令和控制命令。可以使用缓冲技术来提高使用率。

复习题11.5

延迟因素:寻道时间,旋转延迟,访问时间

复习题 12.5

堆是最简单的文件组织形式。数据按它们到达的顺序被采集,每个记录由一串数据组成。

顺序文件:每个记录都使用一种固定的格式。所有记录都具有相同的长度,并且由相同数目、长度固定的域按特定的顺序组成。由于每个域的长度和位置已知,因此只需要保存各个域的值,每个域的域名和长度是该文件结构的属性。

索引顺序文件:索引顺序文件保留了顺序文件的关键特征:记录按照关键域的顺序组织起来。但它还增加了两个特征:用于支持随机访问的文件索引和溢出文件。索引提供了快速接近目标记录的查找能力。溢出文件类似于顺序文件中使用的日志文件,但是溢出文件中的记录可以根据它前面记录的指针进行定位。

索引文件:只能通过索引来访问记录。其结果是对记录的放置位置不再有限制,只要至少有一个索引的指针指向这个记录即可。

直接文件或散列文件:使用基于关键字的散列

复习题12.6

在一个顺序文件,搜索可能涉及依次测试每一条记录,直到一个具有匹配的被发现。该索引顺序文件提供了一个结构,它执行更少的搜索

复习题12.11

连续分配是指在创建文件时,给文件分配一组连续的块。

链接分配基于单个的块,链中的每一块都包含指向下一块的指针。

索引分配:每个文件在文件分配表中一个一级索引,分配给该文件的每个分区在索引中都有一个表项。

第三章(复习题)

3.10 为什么需要两种模式(用户态和内核态)(课本90页)

在用户模式下,限制某些指令的执行和内存的访问,这是为了保护操作系统不被破坏或更改。

在内核模式中,操作系统不受这些限制,使得它可以执行它的任务。

使用两种模式的原因是它可以保护操作系统和重要的操作系统表不受用户程序

的干涉。在内核态下,软件具有对处理器以及所有指令、寄存器和内存的控制能力,这一级的控制对用户程序不是必须的,并且为了安全起见也不是用户程序可访问的。

3.11 操作系统创建一个新进程所执行的步骤是什么?(课本91页)

1.为新进程分配一个唯一的进程标识符。

2为进程分配空间

3初始化进程控制块。

4 设置正确的连接。

5创建或扩展其他数据结构

3.14 模式切换和进程切换有什么区别?(具体课本93页)

模式切换可以不改变正处于运行态的进程的状态。

进程切换涉及状态变化,进程切换需要保存更多的状态信息

第五章(复习题)

5.11 什么是管程?

管程是一个程序设计语言结构提供了抽象数据类型和互斥访问的一组程序。

5.13 通常与读者-写者问题相关联的有哪些条件?(课本164页)

1.任意多的读进程可以同时读这个文件

2. 一次只有一个写进程可以写文件

3. 如果一个写进程正在写文件,禁止任何读进程读文件

第六章(习题)

6.2 根据图6.1,写出可以用于本图的预防、避免和检测技术

预防:

保持和等待的方法:要求车请求它需要的两个象限,直到两个象限都被授予才执行,否则就阻塞。

无抢占方式:释放已经分配的象限

循环等待方法:指定一个线性排序的方法。

避免:死锁避免,通过不授予那些也许会导致死锁的请求

检测:死锁检测(先分配路段,若可能导致死锁,则选择其中一辆车后退,若死锁仍存在,继续选择车辆后退,直到死锁解除。

6.11 假设在系统中有四个进程和四种类型的资源,系统使用银行家算法来避免死锁。最大资源需求矩阵是

44Claim=136421311

527111其中claimij(1<=i<=4且1<=j<=4)表示进程i对于资源j的最大需求。系统中每一种类型的资源总量由向量[16,5,2,8]给出。当前的资源分配情况由下面的矩阵给出:

41Allocation=13001210

102110其中Allocationij表示当前分配给进程i的资源j的数量。

a) 说明这个状态是安全的。

b) 说明进程1申请1个单位的资源2是否允许。

c) 说明进程3申请6个单位的资源1是否允许。(这个问题和问题b是独立的)

d) 说明进程2申请2个单位的资源4是否允许。(这个问题和问题b、c是独立的)

解:a)可用资源=[7,1,0,5]

03需求矩阵(C-A)=123420101

425001(1)可先执行进程2,进程2释放资源后,可用资源=[8,3,1,5]

(2)执行进程4,进程4释放资源后,可用资源=[11,4,2,5]

(3)执行进程1,进程1释放资源后,可用资源=[15,4,2,6]

(4)执行进程3,进程3释放资源。

所以存在一个安全序列。该状态是安全的。

b)进程1申请一个单位的资源2后,可用资源变为[7,0,0,5]

41Allocation=13101210

102110

03需求矩阵(C-A)=123320101

4250011) 可执行进程4,释放资源后可用资源变为[10,1,1,5]

2) 执行进程2,释放资源后可以资源变为[11,3,2,5]

3) 执行进程1,释放资源后可用资源变为[15,4,2,6]

4) 执行进程3,可完成。

所以进程1申请1个单位的资源2是允许的。

C)进程3申请6个单位的资源1后,可用资源为[1,1,0,5]

41Allocation=73001210

102110320101

42500103需求矩阵(C-A)=63可用资源不能满足任何进程,所以该分配是不允许的。

d)进程2申请两个单位资源4后,可用资源为[7,1,0,3]

因进程2对资源4的最大需求量为1,会造成一个单位的资源浪费

03需求矩阵(C-A)==123420100

425001

可分别执行进程2,4,1,3来完成。该申请允许,但是会造成资源浪费,一般情况下不这样做。

第七章(复习题)

7.2 为什么需要重定位进程的能力?(课本210页)

通常情况下,程序员并不能事先知道在某个程序执行期间会有哪些程序驻留在内存中。此外还希望通过提供一个巨大的就绪进程池,能够把活动进程换入或换出内存,以便使处理器的利用率最大化。在这两种情况下,该过程中的特定位置主内存是不可预测的。

7.6 内部碎片和外部碎片有什么区别?

内部碎片:被装入的数据块小于分区大小,从而导致分区内部有空间浪费。它是指已经被分配出去,却不能被利用的内存空间。

外部碎片:与动态分区相关联的现象,指在所有分区外的存储空间变成越来越多的碎片。它指的是还没有被分配出去,但由于空间太小了无法分配给申请内存空间的新进程的内存空闲区域。

7.7 逻辑地址、相对地址和物理地址间有什么区别?

逻辑地址是指与当前数据在内存中的物理分配地址无关的访问地址,在执行对内存的访问之前必须把它转换成物理地址。

相对地址是逻辑地址的一个特例,是相对于某些已知点(通常是程序的开始处)的存储单元。

物理地址(绝对地址)是数据在内存中的实际位置。

第八章(习题)

8.1 考虑这样一个系统,该系统用3位表示页面编号,用5位表示偏移量。在该系统中内存以字节为单位进行存取。现在假设一个进程有6页,其页表如下:

有效位 页框号 修改位

1

1

0

1

0

0

4

7

1

0

2

1

1

0

0

1

0

0

在下面的问题中,如果发生页面失效而不进行处理。

a) 虚拟地址158进行物理地址转换后是多少?

b) 虚拟地址53进行物理地址转换后是多少?

c) 虚拟地址195进行物理地址转换后是多少?

解:

a)(158)10=(10011110)2 ,虚页号为100=4,通过查页表可知有效位为0不在内存中,所以页面失效。

b)(53)10=(00110101)2,虚页号为001=1,通过查页表可知页号为7,物理地址为(11110101)2=245

c)(195)10=(11000011)2,虚页号为110=6,地址越界,页面失效。

8.17 假设一个任务被划分成4个大小相等的段,并且系统为每个段建立了一个有8项的页描述符表。因此,该系统是分段与分页的组合。假设页大小为2KB。

a)每段的最大尺寸为多少?

b)该任务的逻辑地址空间最大为多少?

c)假设该任务访问到物理单元00021ABC中的一个元素,那么为它产生的逻辑地址的格式是什么?该系统的物理地址空间最大为多少?

解:

a) 因每个段有一个8项的页描述符表,每个页大小为2KB,所以每段的最大尺寸为8*2K=16K

b) 每个任务被划分为4个大小相等的段,由a)得每段最大尺寸为16k,所以该任务的逻辑地址空间最大为16K*4=64K。

c) 逻辑地址:

分段号(2位) 分页号(3位) 偏移量(11位)

物理地址空间最大为232=4GB

已知一个进程的页面执行序列分别为其分配4个内存页面,参照教材图8.15 画出四种置换策略的页面执行行为图,并求出缺页次数。

1,5,1,2,3,1,4,3,5,1,3,1

1. OPT(所选择的被淘汰页面将是以后永不使用的,或者是在最长时间内不再被访问的页面,这样可以保证获得最低的缺页率。)

1 5 1 2 3 1 4 3 5 1 3 1

1

1

5

1

5

1

5

2

1

5

2

3

1

5

2

3

1

5

4

3

1

5

4

3

1

5

4

3

1

5

4

3

1

5

4

3

1

5

4

3

置换

(优先淘汰最早进入的页面,亦即在内存中驻留时间最久的页面。)

1 5 1 2 3 1 4 3 5 1 3 1

1

1

5

1

5

1

5

2

1

5

2

3

1

5

2

3

4

5

2

3

4

5

2

3

4

5

2

3

4

1

2

3

4

1

2

3

4

1

2

3

置换 置换

(选择最近最长时间未访问过的页面予以淘汰)

1 5 1 2 3 1 4 3 5 1 3 1

1

1

5

1

5

1

5

2

1

5

2

3

1

5

2

3

1

4

2

3

1

4

2

3

1

4

5

3

1

4

5

3

1

4

5

3

1

4

5

3

置换 置换

(LRU算法的近似实现):给每一帧关联一个附加位,称为使用位。(课本247)

1 5 1 2 3 1 4 3 5 1 3 1

1*

1*

5*

1*

5*

1*

5*

1*

5*

1*

5*

4*

5

4*

5

4*

5*

4*

5*

4*

5*

4*

5*

2*

2*

3*

2*

3*

2

3

2

3*

2

3*

1*

3*

1*

3*

1*

3*

置换 置换

桌上有一个空盘,允许存放一只水果。进程A可向盘中放苹果,也可向盘中放橘子,进程B专等吃盘中的橘子,进程C专等吃盘中的苹果。规定当盘空时一次放一只水果供吃者取用,请用P、V原语实现进程A、进程B、进程C三个并发进程的同步。

分析:本题是检查对P、V原语掌握情况。本题的题意是:

①. 进程A、进程B、进程C共用一个盘子,且盘中一次只能放一个水果。

②. 当盘空时,进程A可将一个水果放入果盘中;

③. 若放入盘中的是橘子,允许进程B吃,进程C必须等待。

④. 若放入盘中的是苹果,允许进程C吃,进程B必须等待。

因此实际上是一个生产者-消费者问题的一种变形。这里生产者放入缓冲区的产品有两类,消费者也有两类,每类消费者只消费其中固定的一类产品。

解:设置三个信号量:

S 初值为1,用于进程A、进程B、进程C三个进程间的互斥,表示盘中是否为空

SO 初值为0,用于进程A、进程B两个进程间的同步,表示盘中是否有橘子

SA 初值为0,用于进程A、进程C两个进程间的同步,表示盘中是否有苹果

三个进程之间的同步描述如下:

进程A

L1:

P(S)

将水果放入盘中

If(放入是橘子) V(SO)

else V(SA)

goto L1

进程B

L2:

P(SO)

从盘中取出橘子

V(S)

吃橘子

goto L2

进程C

L3:

P(SA)

虚拟地址:

10 bits

从盘中取出苹果

V(S)

吃苹果

10bits

12bits

12bits

goto L3

物理地址:

20 bits

页表项一共32位,包括20位的物理地址和os bookkeeping bits

a)页表有多大?

b)单个虚拟内存空间有多大?

c)所支持的最大物理内存是多大?

d)画一个两级页表的图,然后描述一下地址转换过程,第一级页表包含1024项,二级页表的每一项也是1024项。

解:

(#offset bits)a)页的大小为2bytes=212

bytes=4KB

bytes=2

bytes=4GB

32b)虚拟内存空间大小为2c)2(#of total virtual address bits)(#of total physical address bits)bytes=2

bytes=4GB

32d)参考课本237页(画出二级页表)

第一章(复习题)

1.9 空间局部性和时间局部性的区别是什么?

空间局部性:指的是执行的倾向涉及到多个内存的聚集点,即最近被访问的内存单元的附近在不久的将来可能会被再次访问。

时间局部性:指的是处理器倾向于访问最近被访问过的内存单元。

第二章

2.9(复习题):解释单体内核和微内核的区别

单体内核一个提供操作系统应该提供的功能的大内核,包括调度,文件系统,设备驱动程序和内存 管理。内核的所有功能组件可以访问其所有的内部数据结构和例程。通常情况下,一个单内核的实现 作为一个单一的过程中,与所有的元素共享相同的地址空间。

微内核是一个小型的特权操作系统的核心,它提供过程 调度,内存管理,以及通信服务和依靠其他进程来执行一些功能传统上与操作系统内核相关联。

2.1(习题):假设我们有一台多道程序的计算机,每个作业有相同的特征。在一个计算周期T中,一个作业有一半时间花费在I/O上,另一半用于处理器的活动。每个作业一共运行N个周期。假设使用简单的时间片轮转调度,并且I/O操作可以与处理器操作重叠。定义以下量:

 时间周期=完成任务的实际时间

 吞吐量=每个时间周期T内平均完成的作业数目

 处理器利用率=处理器活跃(不是处于等待)的时间百分比

当周期T分别按下列方式分布时,对1个、2个和4个同时发生的作业,请计算这些量:

a)前一半用于I/O,后一半用于处理器

b)前四分之一和后四分之一用于I/O,中间部分用于处理器

解:

a)和b)答案相同

一个作业时:花费的时间周期为NT,处理器利用率为50%

两个作业时:花费的时间周期为NT+T/2,处理器利用率为1-(T/2)/(NT+T/2)=NT/(NT+T/2)

四个作业时:花费的时间周期为2NT+T/2,处理器利用率为1-(T/2)/(2NT+T/2)=2NT/(2NT+T/2)

两个作业:(以3个周期为例)

job1 I/O CPU I/O

Job2 I/O wait CPU

时间 T/2 T/2 T/2

总的运行时间为:3T+T/2

N个周期总的运行时间为NT+T/2,cpu利用率为1-(T/2)/(NT+T/2)= NT/(NT+T/2)

四个作业:(以2个周期为例)

Job1 I/O CPU

Job2 I/O

CPU

Job3 I/O

Job4 I/O

时间 T/2

T/2 T/2

CPU

T/2

CPU

T/2

CPU

T/2

CPU

T/2

CPU

T/2

CPU

T/2

CPU

I/O

T/2

I/O

CPU

T/2

CPU

I/O

T/2

CPU

T/2

总的运行时间为:2*2T+ T/2

N个周期总的运行时间为2NT+ T/2,cpu利用率为1-(T/2)/(2NT+T/2)=

2NT/(2NT+T/2)