《现代操作系统第四版本》第三章含答案.docx

上传人:b****8 文档编号:9774826 上传时间:2023-02-06 格式:DOCX 页数:28 大小:26.30KB
下载 相关 举报
《现代操作系统第四版本》第三章含答案.docx_第1页
第1页 / 共28页
《现代操作系统第四版本》第三章含答案.docx_第2页
第2页 / 共28页
《现代操作系统第四版本》第三章含答案.docx_第3页
第3页 / 共28页
《现代操作系统第四版本》第三章含答案.docx_第4页
第4页 / 共28页
《现代操作系统第四版本》第三章含答案.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

《现代操作系统第四版本》第三章含答案.docx

《《现代操作系统第四版本》第三章含答案.docx》由会员分享,可在线阅读,更多相关《《现代操作系统第四版本》第三章含答案.docx(28页珍藏版)》请在冰豆网上搜索。

《现代操作系统第四版本》第三章含答案.docx

《现代操作系统第四版本》第三章含答案

 

第三章内存管理习题

 

有一个设计,为了对2KB大小的块进行加锁,会对每个块分配一个

 

4bit的密钥,这个密钥存在PSW(程序状态字)中,每次内存引用时,CPU都

 

会进行密钥比较。

但该设计有诸多弊端,除了描述中所言,请其他提出最少两条

 

弊端。

 

A:

密钥只有四位,故内存只能同时容纳最多十六个进度;需要用特别硬件进行

 

比较,同时保证操作迅速。

 

2.在图3-3中基址和界线寄存器含有相同的值16384,这是巧合,还是它们总是

 

相等?

若是这可是巧合,为什么在这个例子里它们是相等的?

 

A:

巧合。

基地址寄存器的值是进度在内存上加载的地址;界线寄存器指示储藏

 

区的长度。

 

3.交换系统经过缩短来除掉悠闲区。

假设有很多悠闲区和数据段随机分布,而且

 

读或写32位长的字需要10ns的时间,缩短128MB大概需要多长时间?

为了简

 

单起见,假设悠闲区中含有字0,内存中最高地址处含有有效数据。

 

A:

32bit=4Byte===>每字节10/4=2.5ns128MB=1282^20=2^27Byte对每个

 

字节既要读又要写,22.5*2^27=671ms

 

4.在一个交换系统中,按内存地址排列的悠闲区大小是10MB,4MB,20MB,

 

18MB,7MB,9MB,12MB,和15MB。

对于连续的段央求:

 

(a)12MB

 

(b)10MB

 

(c)9MB

 

使用首次适配算法,将找出哪个悠闲区?

使用最正确适配、最差适配、下次适配算

 

法呢?

 

A:

首次适配算法:

20MB,10MB,18MB;最正确适配算法:

12MB,10MB,

 

9MB;最差适配算法:

20MB;18MB;15MB;下次适配算法:

20MB;18MB;

 

9MB;

 

5.物理地址和虚假地址有什么差异?

 

A:

本质内存使用物理地址。

这些是储藏器芯片在总线上反应的数字。

虚假地址

 

是指一个进度的地址空间的逻辑地址。

因此,拥有32位字的机器能够生成高达

 

4GB的虚假地址,而无论机器的内存可否多于或少于4GB。

 

6.对下面的每个十进制虚假地址,分別使用4KB页面和8KB页面计算虚假页号

 

和偏移量:

20000,32768,60000。

 

A:

变换为二进制分别为:

虚假地址应该是16位

 

页面偏移量范围0~4027,需要

 

12位来储藏偏移量,剩下4位作为页号;同理8KB页面需要13位来储藏偏移

 

量,剩下3位作为页号;因此,4KB|8KB页号|偏移量|页号|偏移量

 

20000|0100|01032768|1000

 

000000000000|100000000000000060000|1110|111

 

 

7.使用图3-9的页表,给出下面每个虚假地址对应的物理地址:

 

(a)20

 

(b)4100

 

(c)8300

 

A:

(a)20+40962=8212(b)4100=4096+(4100-4096)=4100(c)

 

8300=64096+(8300-4096*2)=24684

 

8.Inlel8086办理器不支持虚假内存,但是一些公司从前设计过包括未作任何改动的8086CPU的分页系统。

猜想一下,他们是怎样做到这一点的。

(提示:

考虑MMU的逻辑地址。

 

A:

他们制作了MMU,并连接在CPU与地址总线之间,这样从办理器进入MMU

 

的地址全部被视为虚假地址,并被变换为物理地址,尔后被送到地址总线,照射

 

到内存中。

 

9.为了让分页虚假内存工作,需要怎样的硬件支持?

 

A:

需要一个MMU能够将虚假页面重新照射到物理页面。

其他,当缺页中断时,

 

需要对操作系统设置骗局,以便能够获取页面。

 

10.写时复制是使用在服务器系统上的好方法,它可否在手机上起作用。

 

A:

“写时复制“技术,也就是只有进度空间的各段的内容要发生变化时,才会将

 

父进度的内容复制一份给子进度。

若是智妙手机支持多重编程,iPhone、

 

Android和Windows手机都支持多重编程,那么支持多个进度。

若是进度发出

 

fork()系统调用和页面在父进度和子进度之间共享,则复制对写是有意义的。

 

妙手机比服务器小,但从逻辑上讲,它并没有什么不相同。

 

11.考虑下面的C程序:

 

intX[N];

 

intstep=M;//M是某个预定义的常量

 

for(inti=0;i

 

a)若是这个程序运行在一个页面大小为4KB且有64个TLB表项的机器上时,

 

M和N取什么值会使得内层循环的每次执行都会引起TLB无效?

 

b)若是循环重复很多遍,结果会和a)的答案相同吗?

请讲解。

 

A:

a)M必定最少为1024,以保证对X元素的每一次接见都有一个TLB缺失。

 

为N只影响X接见多少次,N取大于M的任何值都能够。

b)M应该最少是

 

1024,以保证对X元素的每次接见都遗漏TLB。

但是现在N应该大于64K,以

 

便办理TLB,也就是说,X应该高出256KB。

 

12.储藏页面必定可用的磁盘空间和以下因素有关:

最大进度数n,虚假地址空间

 

的字节数v,RAM的字节数r,给出最坏状况下磁盘空间需求的表达式。

这个数

 

量的真实性怎样?

 

A:

全部进度的整个虚假地址空间为nv,这就是页面储藏所需的。

但是,能够在

 

RAM中储藏量为r,因此需要的磁盘储藏量仅为nv-r。

该量比本质所需的要大

 

得多,因为很稀有n个进度本质运行,而且这些进度也极少需要其最大赞同的虚

 

拟内存。

 

13.若是一条指令执行1ns,缺页中断执行额外的Nns,且每条k指令产生一个

 

缺页,请给出一个公式,计算有效指令时间。

 

A:

(1*(k-1)+(1+N))/k=1+N/kns

 

14.一个机器有32位地址空间和8KB页面,页表完好用硬件实现,页表的每一

 

表项为一个32位字。

进度启动时,以每个字100ns的速度将页表从内存复制到

 

硬件中。

若是每个进度运行100ms(包括装入页表的时间)用来装人页表的CPU

 

时间的比率是多少?

 

A:

32位地址空间构成4GB内存空间,4GB/8KB=512个页面,页表项512项,

 

页表大小512·32=2^14bit,复制页表的时间=2^14/2^5*10ns=5120ns,时间

 

比率5120ns/100ms=5120·-10^(9)/100·-3)10^(=51.2%8KB页面大小,需要

 

13位偏移量,故页号有19位,页面有2^19个,页表项也是2^19个,每项32

 

位字。

2^19·100ns/100ms=52.4288%

 

15.假设一个机器有48位的虚假地址和32位的物理地址。

 

a)假设页面大小是4KB,若是只有一级页表,那么在页表里有多少页表项?

 

讲解。

 

b)假设同一系统有32个TLB表项,而且假设一个程序的指令正好能放入一个页,

 

而且该程序次序地从有数千个页的数组中读取长整型元素。

在这种状况下TLB的

 

收效怎样?

 

A:

a)页面大小4KB,偏移量有12位,则页号有36位,有2^36项页表项;

 

b)TLB接见的命中率达100%。

在指令接见下一个页面从前读取数据的命中率是

 

100%,一个4KB大小的页面包括1024个长整型数据,每接见1024个数据就会

 

有一次TLB无效。

 

16.给定一个虚假内存系统的以下数据:

 

(a)TLB有1024项,能够在1个时钟周期(1ns)内接见。

 

(b)页表项能够在100时钟周期(100ns)内接见。

 

(c)平均页面取代时间是6ms。

 

若是TLB办理的页面接见占99%,而且0.01%的页面接见会发生缺页中断,那么

 

有效地址变换时间是多少?

 

A:

99%·1ns+1%·99.99%·100ns+1%·0.01%·6ms=7.99%899·1ns+0.99%·100ns+0

 

.01%·

 

17.假设一个机器有38位的虚假地址和32位的物理地址。

 

a)与一级页表比较,多级页表的主要优点是什么?

 

b)若采用二级页表,页面大小为16KB,每个页表项为4字节,应该对第一级页

 

表域分配多少位,对第二级页表域分配多少位?

请讲解原因

 

A:

a)防备把全部页表素来保存在内存中。

b)”16KB个页“估计是指这个二

 

级页表的大小是16KB,故页表项有16KB/4B=4K个,二级页表域需要12位,

 

四字节表项说明页面大小是12页面大小16KB,则偏移量需要14位,每个条目

 

4字节

 

18.在

 

3.3.4节的陈述中,奔跑

 

Pro

 

将多级页表中的每个页表项扩展到

 

64位,但

 

仍只能对4GB的内存进行寻址。

请讲解页表项为A:

诚然页表项扩展了,但是虚假内存地址仍旧只有

64位时,为什么这个陈述正确。

 

32位。

 

19.个32位地址的计算机使用两级页表。

虚假地址被分成9位的顶级页表域、

 

11位的二级页表域和一个偏移量,页面大小是多少?

在地址空间中一共有多少个页面?

 

A:

页面大小与偏移量位数有关=2^12Byte=4KB,每个地址对应内存一个字节,

 

地址空间的页面数量=2^20个。

 

20.一个计算机使用32位的虚假地址,4KB大小的页面。

程序和数据都位于最低

 

的页面(0~4095),栈位于最高的页面。

若是使用传统(一级)分页,页表中需

 

要多少个表项?

若是使用两级分页,每部分有10位,需要多少个页表项?

 

A:

32位地址对应4GB内存,有4GB/4KB=2^20个页面,若是使用传统(一级)

 

分页:

需要2^20个页表项;若是使用两级分页,顶级页表有2^10个页表项,

 

其中三项指向二级页表(程序段、数据段、货仓段),二级页表每个也有有2^10

 

个页表项,总合2^12个页表项。

 

21.以下是在页大小为512字节的计算机上,一个程序片段的执行轨迹。

这个程

 

序在1020地址,其栈指针在8192(栈向0生长)。

请给出该程序产生的页面访

 

问串。

每个指令(包括马上常数)占4个字节(1个字)。

指令和数据的接见都

 

要在接见串受骗数。

 

将字6144载入寄存器0

 

寄存器0压栈

 

调用5120处的程序,将返回地址压栈

 

栈指针减去马上数16

 

比较实参和马上数4

 

若是相等,跳转到5152处

 

A:

程序地址范围1020~1532。

页面接见串:

6144-8191——5120——8190—

 

——8184———5152.A:

每个页面512B,1020地址属于512~1023,即页面

 

1;栈指针8192属于8192~8704,即页面16,但是栈向0生长,故寄存器压

 

栈到8191~8188,属于页面15;5152地址属于5120~5631,即页面10.每

 

条指令4个字节,故第一条指令在地址范围1020~1023,属于页面1;第二条

 

指令在地址范围1024~1027,属于页面2;第三条指令地址也在页面2,但是

 

将数据压栈到页面15了。

LOAD6144,R01(I),12(D)PUSHR02(I),15(D)CALL

 

51202(I),15(D)JEQ515210(I)代码(I)指示指令引用,而(D)指示数据引

 

用。

 

22.一台计算机的进度在其地址空间有1024个页面,页表保存在内存中。

从页表

 

中读取一个字的开销是5n。

为了减小这一开销,该计算机使用了TLB,它有32

 

个(虚假页面,物理页框)对,能在1ns内完成查找。

请问把平均开销降到2ns

 

需要的命中率是多少?

 

A:

p·1+(5+1)(·1-p)

 

23.TLB需要的相联储藏设备怎样用硬件实现,这种设计对扩展性意味着什么?

 

A:

相联储藏器本质大将key与多个寄存器的内容同时进行比较。

对于每个寄存

 

器,必定有一组比较器,将寄存器内容中的每个位与正在找寻的键进行比较。

 

现这种设备所需的门(或晶体管)的数量是寄存器数量的线性函数,因此这种设

 

计对扩展性意味着成本变得昂贵。

 

24.一台机器有48位虚假地址和32位物理地址,页面大小是8KB,试问页表中

 

需要多少个表项?

 

A:

物理内存是4GB,页面数量是4GB/8KB=2^19项,页面偏移量需要2^13位,页表域总合35位。

 

25.一个计算机的页面大小为8KB,内存大小为256KB,虚假地址空间为64GB,

 

使用倒排页表实现虚假内存。

为了保证平均散列链的长度小于1,散列表应该多

 

大?

假设散列表的大小为2的幂。

 

A:

(原答案)内存有2^28(256KB)/2^13(8KB)=(2^15)32768页。

32K的哈希

 

表的平均链长为1。

为了使之小于1,必定使用下一个尺寸(2^16)65536项。

 

32768项放入65536格中使其平均链长为0.5,以保证迅速的盘问。

(这个题

 

目有错吧?

内存应该是256MB才对)物理页面数=256MB/8KB=2^15,

 

若散列表为2^15,则平均散列长度为1,为保证平均散列链长度小于1,散列

 

表最少为2^16.

 

26.一个学生在器程中向教授提了一个目:

写一个器,用

 

来生面列表,列表能够用于最面置算法。

可否可能?

 

什么?

有什么方法能够改运行的分效率?

 

A:

是不能能的,除了程序的行程在是完好可的少许状况。

 

果器收集程序有关用代中的地址信息,能够在接使用此信息来重

 

新排列目代,以便程序位于它用的代周边。

将使得程更可能与所

 

用的代在同一个面上。

自然从多地方行用的程序来是无效的。

 

27.假虚索引流中有一些的索引序列的重复,序列此后有会是

 

一个随机的索引。

比方,序列0,1,⋯,511,431,0,1,⋯,511,332,

 

0,1,⋯中就包括了0,1,⋯,511的重复,以及随从在它此后的随机索

 

引431和332。

 

a)在工作比序列短的状况下,准的面置算法(LRU,FIFO,Clock)

 

在理什么收效不好?

b)若是一个程序分配了500个框,描述一

 

个收效于LRU、FIFO或Clock算法的面置方法。

 

A:

a)准的面置算法是已在内存中的面研究的。

当工作比序

 

列短,会出内存容量不而生簸,种状况下LRU、Clock、FIFO算法

 

达不到期的收效,任何都会引起缺除非内存的框数量大于512。

b)

 

若是分配了500个框,那么0~498号框是固定的,只有一个框行面

 

置。

 

28.若是将FIFO页面罝换算法用到4个页框和8个页面上,若初始时页框为空,

 

接见字符串为0172327103,请问会发生多少次缺页中断?

若是使用LRU算法

 

呢?

 

A:

FIFO6LRU7

 

29.考虑图3-15b中的页面序列。

假设从页面B到页面A的R位分别是11011011。

 

使用第二次机遇算法,被移走的是哪个页面?

 

A:

D。

 

30.一台小计算机有4个页框。

在第一个时钟滴答时R位是0111(页面0是0,

 

其他页面是1),在随后的时钟滴答中这个值是1011、1010、1101、0010、1010、

 

1100、0001。

若是使用带有8位计数器的老化算法,给出最后一个滴答后4个

 

计数器的值。

 

A:

0号页框:

01101110;1号页框:

01001001;2号页框:

00110111;3

 

号页框:

10001011。

 

31.请给出一个页面接见序列,使得对于这个接见序列,使用Clock和LRU算法

 

获取的第一个被选择置换的页面不相同。

假设一个进度分配了3个页框,接见串中

 

的页号属于会集0,1,2,3。

 

A:

0130123。

LRU将第3页取代为第2页。

Clock将第0页取代为第2页。

 

32.在图3-21c的工作集时钟算法中,表针指向那个R=0的页面。

若是τ=400,

 

这个页面将被移出吗?

若是τ=1000呢?

(当前时间2204)

 

A:

该页面的生计时间是2204-1213=991。

若是τ=400,它就不在工作集中,

 

近来没有被引用,因此它将被移出。

τ=1000的状况不相同,此时页面在工作集中,

 

因此它不会被删除。

 

34.一个学生声称:

“抽象来看,除了采用取代页面使用的属性不相同外,基本页面

 

置换算法(FIFO,LRU,最优算法)都相同。

”(a)FIFO、LRU、最优算法使用

 

的属性是什么?

(b)请给出这些页面置换算法的通用算法。

 

A:

a)FIFO:

加载时间;LRU:

近来接见时间;OPT:

在未来的近来接见时间

 

b)有标签算法和取代算法。

标记算法用部分a给出的属性从大到小标记每个页

 

面。

取代算法删除标签最小的页面。

 

35.从平均寻道时间10ms、旋转延缓时间10ms、每磁道32KB的磁盘上载入一

 

个64KB的程序,对于以下页面大小分别需要多少时间?

 

a)页面大小为2KB;

 

b)页面大小为4KB。

 

假设页面随机地分布在磁盘上,柱面的数量特别大以致于两个页面在同一个

 

柱面的机遇能够忽略不计。

 

A:

a)页面有64KB/2KB=32个,32·(10+10)=640ms

 

b)页面16个,16·20=320ms

 

原答案:

(很迷啊,怎么算的传输时间啊?

):

 

找寻加旋转等待时间为10毫秒。

对于2-KB页面,传输时间约为0.009766毫

 

秒,总合约10.009766毫秒。

加载这些页面的32将开销大概320.21毫秒。

 

于4-KB页面,传输时间加倍到大概0.01953毫秒,因此每页的总时间是

 

毫秒。

加载这些页面的16需要大概160.3125毫秒。

使用这样快的磁盘,全部

 

重要的是减少传输的数量(也许连续地将页面放在磁盘上)。

 

现在我知道是怎样计算的了,参照《《现代操作系统》中文第四版第4章文件

 

系统4.4.1的例子:

 

假设磁盘每道有

 

单位,读取一个

 

和:

 

1MB,其旋转时间是8.33ms,平均寻道时间为5ms。

以毫秒为

 

k字节的块所需要的时间是寻道时间、旋转延和缓传达时间之

 

 

从中能够得知单位容量传达时间=旋转时间/每道容量

 

故本题中单位容量传达时间=2^3/2^15x10=0.00244ms/KB

 

42.人们已经观察到在两次缺页中断之间执行的指令数与分配给程序的页框数直

 

接成比率。

若是可用内存加倍,缺页中断间的平均间隔也加倍。

假设一条一般指

 

令需要1μm,但是若是发生了缺页中断,就需要2001μ(s即2ms办理缺页中

 

断),若是一个程序运行了60s,期间发生了15000次缺页中断,若是可用内存

 

是原来的两倍,那么这个程序运行需要多少时间?

 

A:

该程序发生了15000次缺页中断,每个缺页中断都需要2ms的额外办理时

 

间。

办理缺页中断的总开销为30s。

这意味着在程序运行的60s内,一半用于缺

 

页中断开销,一半用于运行程序。

若是我们运行程序的内存是内存的两倍,我们

 

会获取一半的内存页错误,只有15秒的页面错误开销,因此总的运行时间将是

 

45秒。

 

43.Frugal计算机公司的一组操作系统设计人员正在考虑在他们的新操作系统中

 

减少对后备储藏数量的需求。

老板建议根本不要把程序正文保存在交换区中,而

 

是在需要的时候直接从二进制文件中调页进来。

在什么条件下(若是有这样的条

 

件话)这种想法适用于程前言本?

在什么条件下(若是有这样的条件话)这种想

 

法适用于数据?

 

A:

这种想法适用于无法更正的程序和不能够被更正的数据。

但是,平时程序不能够

 

更正,数据却极少许无法更正。

若是二进制文件中的数据区被更新的页面覆盖,

 

下一次程序启动时,它将不会有原始数据。

 

44.有一条机器语言指令将要被调入,该指令可把一个32位字装入含有32位字

 

地址的寄存器。

这个指令可能引起的最大缺页中断次数是多少?

 

A:

该指令可能超越页面界线,为了获取指令将以致两个缺页中断。

获取的字也

 

可能超越页界线,产生两个以上的缺页中断,总合四个。

若是字必定在内存中对

 

齐,则数据字只能以致一个缺页中断,但是在某些机器(包括奔跑)上,在拥有

 

4KB页面的机器上的4094地址上加载32位字的指令是合法的。

 

46.像在MULT1CS中那样,当同时使用分段和分页时,第一必定查找段描述符,

 

尔后是页描述符。

TLB也是这样按两级查找

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

当前位置:首页 > 求职职场 > 简历

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

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