《现代操作系统第四版》第三章答案Word文档格式.docx

上传人:b****3 文档编号:13677590 上传时间:2022-10-12 格式:DOCX 页数:9 大小:26.17KB
下载 相关 举报
《现代操作系统第四版》第三章答案Word文档格式.docx_第1页
第1页 / 共9页
《现代操作系统第四版》第三章答案Word文档格式.docx_第2页
第2页 / 共9页
《现代操作系统第四版》第三章答案Word文档格式.docx_第3页
第3页 / 共9页
《现代操作系统第四版》第三章答案Word文档格式.docx_第4页
第4页 / 共9页
《现代操作系统第四版》第三章答案Word文档格式.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

《现代操作系统第四版》第三章答案Word文档格式.docx

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

《现代操作系统第四版》第三章答案Word文档格式.docx

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

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

32bit=4Byte===>

每字节10/4=2.5ns128MB=1282A20=2A27Byte对每个

字节既要读又要写,22.5*2A27=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;

下次适配算法:

9MB;

5.物理地址和虚拟地址有什么区别?

实际内存使用物理地址。

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

虚拟地址

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

因此,具有32位字的机器可以生成高达

4GB的虚拟地址,而不管机器的内存是否多于或少于4GB。

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

和偏移量:

20000,32768,60000。

转换为二进制分别为:

0100111000100000虚拟地址应该是16位100000000000000011101010011000004KB页面偏移量范围0〜4027,需要12位来存储偏移量,剩下4位作为页号;

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

所以,4KB|8KB页号|偏移量|页号|偏移量20000|0100111000100000|010011100010000032768|1000000000000000|100000000000000060000|1110101001100000|1110101001100000

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

(a)20

(b)4100

(c)8300

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

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

8.Inlel8086处理器不支持虚拟内存,然而一些公司曾经设计过包含未作任何改动的8086CPU的分页系统。

猜想一下,他们是如何做到这一点的。

(提示:

考虑MMU的逻辑位置。

他们制作了MMU,并连接在CPU与地址总线之间,这样从处理器进入MMU的地址全部被视为虚拟地址,并被转换为物理地址,然后被送到地址总线,映射到内存中。

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

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

此外,当缺页中断时,需要对操作系统设置陷阱,以便可以获取页面。

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

“写时复制“技术,也就是只有进程空间的各段的内容要发生变化时,才会将父进程的内容复制一份给子进程。

如果智能手机支持多重编程,iPhone、Android和Windows手机都支持多重编程,那么支持多个进程。

如果进程发出

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

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

11.考虑下面的C程序:

intX[N];

intstep=M;

//M是某个预定义的常量

for(inti=0;

i<

N;

i+=step)X[i]=X[i]+1;

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

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

b)如果循环重复很多遍,结果会和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,给出最坏情况下磁盘空间需求的表达式。

这个数量的真实性如何?

所有进程的整个虚拟地址空间为nv,这就是页面存储所需的。

不过,可以在RAM中存储量为r,因此需要的磁盘存储量仅为nv-r。

该量比实际所需的要大得多,因为极少有n个进程实际运行,而且这些进程也极少需要其最大允许的虚

拟内存

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

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

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

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

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

如果每个进程运行100ms(包含装入页表的时间)用来装人页表的CPU时间的比例是多少?

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

页表大小512•32=2X4bit复制页表的时间=2A14/2A5*10ns=5120ns,时间比例5120ns/100ms=5120•-10)A(100•-3)0=51.2%8KB页面大小,需要

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

位字。

2A19•100ns/100ms=52.4288%

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

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

解释。

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

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

在这种情况下TLB的效果如何?

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

b)TLB访问的命中率达100%。

在指令访问下一个页面之前读取数据的命中率是100%,一个4KB大小的页面包含1024个长整型数据,每访问1024个数据就会有一次TLB失效。

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

(a)TLB有1024项,可以在1个时钟周期(1ns)内访问。

(b)页表项可以在100时钟周期(100ns)内访问。

(c)平均页面替换时间是6ms。

如果TLB处理的页面访问占99%并且0.01%勺页面访问会发生缺页中断,那么有效地址转换时间是多少?

99%・1ns+1%・99.99%•100ns+1%・0.01%・6ms=7.99991ns+0.99%・100ns+0.01%•6ms601.98ns

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

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

b)若采用二级页表,页面大小为16KB,每个页表项为4字节,应该对第一级页表域分配多少位,对第二级页表域分配多少位?

请解释原因

a)避免把全部页表一直保存在内存中。

b)”16KB个页估计是指这个二级页表的大小是16KB,故页表项有16KB/4B=4K个,二级页表域需要12位,四字节表项说明页面大小是12页面大小16KB,则偏移量需要14位,每个条目

4字节

18.在3.3.4节的陈述中,奔腾Pro将多级页表中的每个页表项扩展到64位,但仍只能对4GB的内存进行寻址。

请解释页表项为64位时,为何这个陈述正确。

虽然页表项扩展了,但是虚拟内存地址依然只有32位。

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

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

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

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

页面大小与偏移量位数有关=2A12Byte=4KB,每个地址对应内存一个字节,地址空间的页面数量=2八20个。

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

程序和数据都位于最低的页面(0~4095),栈位于最高的页面。

如果使用传统(一级)分页,页表中需要多少个表项?

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

32位地址对应4GB内存,有4GB/4KB=2A20个页面,如果使用传统(一级)分页:

需要2A20个页表项;

如果使用两级分页,顶级页表有2A10个页表项,其中三项指向二级页表(程序段、数据段、堆栈段),二级页表每个也有有2A10个页表项,总共2A12个页表项。

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

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

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

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

指令和数据的访问都

要在访问串中计数将字6144载入寄存器0

寄存器0压栈

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

栈指针减去立即数16

比较实参和立即数4

如果相等,跳转到5152处

程序地址范围1020〜1532。

页面访问串:

6144-8191——5120——8190———81845152.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)CALL51202

(1),15(D)JEQ515210

(1)代码(I)指示指令

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

当前位置:首页 > 工程科技 > 能源化工

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

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