第三版操作系统部分课后答案Word格式.docx

上传人:b****6 文档编号:21086474 上传时间:2023-01-27 格式:DOCX 页数:15 大小:137.83KB
下载 相关 举报
第三版操作系统部分课后答案Word格式.docx_第1页
第1页 / 共15页
第三版操作系统部分课后答案Word格式.docx_第2页
第2页 / 共15页
第三版操作系统部分课后答案Word格式.docx_第3页
第3页 / 共15页
第三版操作系统部分课后答案Word格式.docx_第4页
第4页 / 共15页
第三版操作系统部分课后答案Word格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

第三版操作系统部分课后答案Word格式.docx

《第三版操作系统部分课后答案Word格式.docx》由会员分享,可在线阅读,更多相关《第三版操作系统部分课后答案Word格式.docx(15页珍藏版)》请在冰豆网上搜索。

第三版操作系统部分课后答案Word格式.docx

这样在程序实际被执行时,就通过访管指令进入操作系统,达到调用操作系统功能子程序的目的。

4.答:

系统调用是指在用户程序中调用操作系统提供的功能子程序;

一般的过程调用是指在一个程序中调用另一个程序。

因此它们之间有如下三点区别。

(1)一般的过程调用,调用者与被调用者都运行在相同的CPU状态,即或都处于目态(用户程序调用用户程序),或都处于管态(系统程序调用系统程序);

但发生系统调用时,发出调用命令的调用者运行在目态,而被调用的对象则运行在管态,即调用者与被调用者运行在不同的CPU状态。

(2)一般的过程调用,是直接通过转移指令转向被调用的程序;

但发生系统调用时,只能通过访管指令提供的一个统一的入口,由目态进入管态,经分析后,才转向相应的操作系统命令处理程序。

(3)一般的过程调用,在被调用者执行完后,就径直返回断点继续执行;

但系统调用可能会导致进程状态的变化,从而引起系统重新分配处理机。

因此,系统调用处理结束后,不一定是返回调用者断点处继续执行。

5.答:

创建进程原语的主要功能有以下三项。

(1)为新建进程申请一个PCB。

(2)将创建者(即父进程)提供的新建进程的信息填入PCB中。

(3)将新建进程设置为就绪状态,并按照所采用的调度算法,把PCB排入就绪队列中。

6.答:

只要是涉及管理,就应该有管理的规则,没有规则就不成方圆。

如果处于阻塞状态的一个进程,在它所等待的事件发生时就径直将它投入运行(也就是把CPU从当前运行进程的手中抢夺过来),那么系统就无法控制对CPU这种资源的管理和使用,进而也就失去了设置操作系统的作用。

所以,阻塞状态的进程在它所等待的事件发生时,必须先进入就绪队列,然后再去考虑它使用CPU的问题。

7.答:

作业调度和进程调度(即CPU调度)都涉及到CPU的分配。

但作业调度只是选择参加CPU竞争的作业,它并不具体分配CPU。

而进程调度是在作业调度完成选择后的基础上,把CPU真正分配给某一个具体的进程使用。

8.答:

当一个进程的状态从阻塞变为就绪时,它的PCB就从原先在的阻塞队列移到就绪队列里。

在把进程的PCB从这个队列移到另一个队列时,只是移动进程的PCB,进程所对应的程序是不动的。

这是因为在进程的PCB里,总是记录有它的程序的断点信息。

知道了断点的信息,就能够知道程序当前应该从哪里开始往下执行了。

这正是保护现场所起的作用。

9.答:

先来先服务的作业调度算法,重点考虑的是作业在后备作业队列里的等待时间,因此对短作业不利;

短作业优先的作业调度算法,重点考虑的是作业所需的CPU时间(当然,这个时间是用户自己估计的),因此对长作业不利。

“响应比高者优先”作业调度算法,总是在需要调度时,考虑作业已经等待的时间和所需运行时间之比,即:

该作业已等待时间/该作业所需CPU时间

不难看出,这个比值的分母是一个不变的量。

随着时间的推移,一个作业的“已等待时间”会不断发生变化,也就是分子在不断地变化。

显然,短作业比较容易获得较高的响应比。

这是因为它的分母较小,只要稍加等待,整个比值就会很快上升。

另一方面,长作业的分母虽然很大,但随着它等待时间的增加,比值也会逐渐上升,从而获得较高的响应比。

根据这种分析,可见“响应比高者优先”的作业调度算法,既照顾到了短作业的利益,也照顾到了长作业的利益,是对先来先服务以及短作业优先这两种调度算法的一种折中。

10.答:

短作业优先调度算法只有在所有作业同时到达后备作业队列时,才能得到最小的平均周转时间。

如果各作业不是同时到达,这个结论是不成立的。

可以用反例说明,例如,教材上举有如下例子:

考虑有5个作业A到E,运行时间分别是2、4、1、1、1;

到达时间分别是0、0、3、3、3。

按照短作业优先的原则,最初只有A和B可以参与选择,因为其他3个还没有到达。

于是,运行顺序应该是A、B、C、D、E。

它们每个的周转时间分别是2、6、4、5、6,平均周转时间是4.6。

但如果按照顺序B、C、D、E、A来调度,它们每一个的周转时间成为9、4、2、3、4,平均周转时间是4.4。

结果比短作业优先调度算法好。

之所以会这样,就是因为这5个作业并没有同时到达。

11.答:

在多道程序设计系统中,既运行着操作系统程序,又运行着用户程序,因此整个系统中存在着两类进程,一类是系统进程,一类是用户进程。

操作系统中用于管理系统资源的那些并发程序,形成了一个个系统进程,它们提供系统的服务,分配系统的资源;

可以并发执行的用户程序段,形成了一个个用户进程,它们是操作系统的服务对象,是系统资源的实际的享用者。

可以看出,这是两类不同性质的进程,主要区别如下。

(1)系统进程之间的相互关系由操作系统负责协调,以便有利于增加系统的并行性,提高资源的整体利用率;

用户进程之间的相互关系要由用户自己(在程序中)安排。

不过,操作系统会向用户提供一定的协调手段(以命令的形式)。

(2)系统进程直接管理有关的软、硬件资源的活动;

用户进程不得插手资源管理。

在需要使用某种资源时,必须向系统提出申请,由系统统一调度与分配。

(3)系统进程与用户进程都需要使用系统中的各种资源,它们都是资源分配与运行调度的独立单位,但系统进程的使用级别,应该高于用户进程。

也就是说,在双方出现竞争时,系统进程有优先获得资源、优先得以运行的权利。

只有这样,才能保证计算机系统高效、有序的工作。

12.答:

(1)采用短作业优先调度算法。

(2)这批作业最短平均周转时间的计算式为:

T=[T1+T2+…+Tn]/n=[t1+(t1+t2)+(t1+t2+t3)+…+(t1+t2+…tn-1+tn)]/n

四、1.解:

(1)采用先来先服务作业调度算法时的实施过程如下。

作业

到达时间

所需CPU时间

开始时间

完成时间

周转时间

1

0.0

8

8.0

2

0.4

4

12.0

11.6

3

1.0

13.0

这时,作业的调度顺序是1→2→3。

其平均周转时间为:

(8+11.6+12)/3=10.53

(2)采用短作业优先作业调度算法时的实施过程如下。

9.0

12.6

这里要注意,在作业1运行完毕进行作业调度时,作业2和3都已经到达。

由于是实行短作业优先作业调度算法,因此先调度作业3运行,最后调度作业2运行。

所以,这时的作业调度顺序是1→3→2。

(8+8+12.6)/3=9.53

(3)还可以有更好的作业调度算法,使其平均周转时间优于这两种调度算法。

例如,如果知道在作业1后面会来两个短作业,那么作业1到达后,先不投入运行。

而是等所有作业到齐后,再按照短作业优先作业调度算法进行调度,具体实施过程如下。

2.0

6.0

5.6

14.0

这时的作业调度顺序是3→2→1。

(1+5.6+14)/3=6.87

2.解:

作业号

9:

00

70分钟

10:

10

40

30分钟

60分钟

50

10分钟

5分钟

55

45分钟

这时,作业的调度顺序是1→2→3→4。

(70+60+60+45)/4=58.75

15

25

35分钟

75分钟

这时,作业的调度顺序是1→4→3→2。

(70+5+35+75)/4=46.25

3.某系统有三个作业:

8.8

1.5

9.5

系统确定在它们全部到达后,开始采用响应比高者优先调度算法,并忽略系统调度时间。

试问对它们的调度顺序是什么?

各自的周转时间是多少?

解:

三个作业是在9.5时全部到达的。

这时它们各自的响应比如下:

作业1的响应比=(9.5–8.8)/1.5=0.46

作业2的响应比=(9.5–9.0)/0.4=1.25

作业3的响应比=(9.5–9.5)/1.0=0

因此,最先应该调度作业2运行,因为它的响应比最高。

它运行了0.4后完成,这时的时间是9.9。

再计算作业1和3此时的响应比:

作业1的响应比=(9.9–8.8)/1.5=0.73

作业3的响应比=(9.9–9.5)/1.0=0.40

因此,第二个应该调度作业1运行,因为它的响应比最高。

它运行了1.5后完成,这时的时间是11.4。

第三个调度的是作业3,它运行了1.0后完成,这时的时间是12.4。

整个实施过程如下。

9.9

0.9

11.4

2.6

12.4

2.9

作业的调度顺序是2→1→3。

各自的周转时间为:

作业1为0.9;

作业2为2.6;

作业3为2.9。

第3章习题1.答:

所谓“内部碎片”,是指系统已经分配给用户使用、用户自己没有用到的那部分存储空间;

所谓“外部碎片”,是指系统无法把它分配出去供用户使用的那部分存储空间。

对于教材而言,单一连续区存储管理、固定分区存储管理、分页式存储管理和请求页式存储管理都会出现内部碎片。

只是前两种存储管理造成的内部碎片比较大,浪费较为严重;

后两种页式存储管理,平均来说每个作业都会出现半页的内部碎片。

教材中,只有可变分区存储管理会产生外部碎片。

静态重定位是一种通过软件来完成的地址重定位技术。

它在程序装入内存时,完成对程序指令中地址的调整。

因此,程序经过静态重定位以后,在内存中就不能移动了。

如果要移动,就必须重新进行地址重定位。

动态重定位是一种通过硬件支持完成的地址重定位技术。

作业程序被原封不动地装入内存。

只有到执行某条指令时,硬件地址转换机构才对它里面的地址进行转换。

正因为如此,实行动态重定位的系统,作业程序可以在内存里移动。

也就是说,作业程序在内存中是可浮动的。

如下图所示,由于虚拟地址中是用12个二进制位表示页面尺寸(即页内位移),所以虚拟地址空间中表示页号的也是12个二进制位。

这样,这种虚拟地址空间总共有:

212=4096(页)

每页的尺寸是:

212=4096=4K(字节)

虚拟存储器实际是一种存储扩充技术。

它把作业程序存放在辅助存储器里,运行时只装入程序的一部分。

遇到不在内存的程序时,再把所需要的部分装入。

这样在内存和辅存之间调入、调出的做法,使用户的作业地址空间无需顾及内存的大小。

给用户造成的印象是,无论程序有多大,它在这个系统上都可以运行。

这种以辅助存储器作为后援的虚幻存储器,就称为虚拟存储器。

虚拟存储器的大小是由系统的地址结构确定的。

请求分页式存储管理的基本思想是:

操作系统按照存储块的尺寸,把用户作业地址空间划分成页,全部存放在磁盘上。

作业运行时,只先装入若干页。

运行过程中遇到不在内存的页时,操作系统就把它从磁盘调入内存。

这样一来,用户的作业地址空间无需顾及内存的大小。

这与虚拟存储器的思想是完全吻合的。

所以,请求分页式存储管理能够向用户提供虚拟存储器。

在分页式或请求页式存储管理中,通常是利用内存储器构成页表的。

当CPU执行到某条指令、要对内存中的某一地址访问时,因为这个地址是相对地址,所以先要根据这个地址所在的页号去查页表(访问一次内存),然后才能由所形成的绝对地址去真正执行指令(第二次访问内存)。

可见,由于页表在内存,降低了CPU的访问速度。

为了提高相对地址到绝对地址的变换速度,人们想到用一组快速寄存器来代替页表。

这时查页表是以并行的方式进行,立即就能输出与该页号匹配的块号,这样做无疑比内存式的页表要快得多。

但是,快速寄存器的价格昂贵,由它来组成整个页表是不可取的。

考虑到程序运行时具有局部性,因此实际系统中总是一方面采用内存页表、另一方面用极少几个快速寄存器组成快表来共同完成地址的变换工作。

这时的地址变换过程,如教材中的图3-22所示。

在请求页式存储管理中,当根据虚拟地址查页表而发现所要访问的页不在内存时,就会产生缺页中断。

系统响应中断后,就由操作系统到辅存把所需要的页读入内存。

这时,内存可能有空闲的块,也可能没有。

只有当内存中没有空闲块时,才会出现将内存现有页面淘汰出去的问题,即要进行页面淘汰。

所以,缺页中断和页面淘汰之间的关系是:

页面淘汰一定是由缺页中断所引起;

但缺页中断则不一定引起页面淘汰。

在计算机系统中,由于某些事件的出现,打断了当前程序的运行,而使CPU去处理出现的事件,这称为“中断”。

通常,计算机的硬件结构都是在执行完一条指令后,去检查有无中断事件发生的。

如果有,那么就暂停当前程序的运行,而让CPU去执行操作系统的中断处理程序,这叫“中断响应”。

CPU在处理完中断后,如果不需要对CPU重新进行分配,那么就返回被中断进程的程序继续运行;

如果需要进行CPU的重新分配,那么操作系统就会去调度新进程。

由上面的讲述可以看出,缺页中断与一般中断的区别如下。

(1)两种中断产生的时刻不同:

缺页中断是在执行一条指令中间时产生的中断,并立即转去处理;

而一般中断则是在一条指令执行完毕后,当硬件中断装置发现有中断请求时才去响应和处理。

(2)处理完毕后的归属不同:

缺页中断处理完后,仍返回到原指令去重新执行,因为那条指令并未执行;

而一般中断则是或返回到被中断进程的下一条指令去执行,因为上一条指令已经执行完了,或重新调度,去执行别的进程程序。

在操作系统中,所谓“透明”,即指用户不知道的意思。

对于分页式存储管理来说,用户向系统提供的相对地址空间,是一个一维的连续空间。

系统接受了这个作业后,在内部把这个相对地址空间划分成若干页。

由于这种划分对于用户来说是根本不知道的,所以说把相对地址划分成数对:

(页号,页内位移)的过程对于用户是“透明”的。

各种存储管理策略的适用场合

教材共介绍了6种存储管理策略,它们适用于不同的场合,如图所示。

图中,在单一连续分区存储管理与固定分区存储管理之间画了一条线,表明位于线以上的存储管理策略只适用于单道程序设计,位于以下存储管理策略都适用于多道程序设计;

在可变分区存储管理与分页式、分段式存储管理之间画了一条线,表明位于线以上的存储管理策略都要求为进入内存的作业分配一个连续的存储区,以下的存储管理策略打破了连续性的要求;

在分页式、分段式存储管理与请求页式存储管理之间画了一条线,表明位于线以上的存储管理策略都要求使作业程序全部进入内存,而以下的存储管理策略打破了全部的要求,只要部分装入内存就可以了。

可见,每一种新存储管理策略的出现,都是在原有存储管理基础上的一次发展和提高。

它们从简单到复杂,从不完善到逐渐完善。

结果如下图所示。

四、计算

1.解:

我们用表来说明实行各种分配算法时的情形。

(1)最先适应算法

请求队列

最先适应算法

初始

10K

4K

20K

18K

7K

9K

12K

15K

8K

(2)最佳适应算法

最佳适应算法

(3)最坏适应算法

最坏适应算法

6K

可见,分配算法不同,选择的分配对象也不一样。

(a)虚拟地址20对应的页号是0,页内位移是20。

用0去查页表,知道第0页现在存放在内存的第2块。

由于每块的长度是4KB,所以第2块的起始地址为8192。

因此,虚拟地址20所对应的绝对地址是:

8192+20=8212

(b)虚拟地址4100对应的页号是:

4100/4096=1(“/”是整除运算符)

对应的页内位移是:

4100%4096=4(“%”是求余运算符)

用1去查页表,知道第1页现在存放在内存的第1块。

第1块的起始地址为4096。

因此,虚拟地址4100所对应的绝对地址是:

4096+4=4100

(c)虚拟地址8300对应的页号是:

8300/4096=2(“/”是整除运算符)

8300%4096=108(“%”是求余运算符)

用2去查页表,知道第2页现在存放在内存的第6块。

第6块的起始地址为

4K=24576

因此,虚拟地址8300所对应的绝对地址是

24576+108=24684

3.解:

(1)采用最近最久未用(LRU)页面淘汰算法,作业在得到2块内存空间时所产生的缺页中断次数为18次,如图(a)所示;

在得到4块内存空间时所产生的缺页中断次数为10次,如图(b)所示。

图LRU时的情形

(2)采用先进先出(FIFO)页面淘汰算法,作业在得到2块内存空间时所产生的缺页中断次数为18次,如图(a)所示;

在得到4块内存空间时所产生的缺页中断次数为14次,如图(b)所示。

图FIFO时的情形

关于先进先出(FIFO)页面淘汰算法,在给予作业更多的内存块时,缺页中断次数有可能上升,这是所谓的异常现象。

但要注意,并不是在任何情况下都会出现异常。

是否出现异常,取决于页面的走向。

本题所给的页面走向,在FIFO页面淘汰算法下,并没有引起异常:

2块时缺页中断次数为18次,4块时缺页中断次数为14次。

4.有段表如下所示。

已知逻辑地址:

(1)[0,430];

(2)[3,400];

(3)[1,10];

(4)[2,2500];

(5)[4,42];

(6)[1,11]。

求它们所对应的物理地址。

段号

段长

段基址

600

219

14

2300

100

90

580

1327

96

1954

(1)物理地址为:

219+430=649;

(2)物理地址为:

1327+400=1727;

(3)物理地址为:

2300+10=2310;

(4)第2段的段长为100,现在逻辑地址中的段内位移2500超出段长,发生越界错;

(5)物理地址为:

1954+42=1996;

(6)物理地址为:

2300+11=2311。

第4章习题三、问答

1答:

所谓“系统设备”,是指在操作系统生成时就已被纳入系统管理范围的设备;

所谓“用户设备”是指在完成应用任务过程中,用户特殊需要的设备。

因此,判定一个设备是系统

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

当前位置:首页 > 人文社科 > 设计艺术

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

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