好文档 - 专业文书写作范文服务资料分享网站

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

天下 分享 时间: 加入收藏 我要投稿 点赞

第三章 内存管理 习题

1.IBM360 有一个设计,为了对 2KB 大小的块进行加锁,会对每个块分配一个 4bit 的密钥,这个密钥存在 PSW(程序状态字)中,每次内存引用时, CPU 都 会

进行密钥比较。 但该设计有诸多缺陷, 除了描述中所言, 请另外提出至少两条 缺点。

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

较,同时保证操作迅速。

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

相等?如果这只是巧合,为什么在这个例子里它们是相等的? A:巧合。基地址寄存器的值是进程在内存上加载的地址;界限寄存器指示存储 区的长度。

3. 交换系统通过紧缩来消除空闲区。假设有很多空闲区和数据段随机分布,并且

读或写 32 位长的字需要 10ns 的时间,紧缩 128MB 大概需要多长时间?为了简 单起见,假设空闲区中含有字 0,内存中最高地址处含有有效数据。

A:32bit=4Byte===> 每字节 10/4=2.5ns 128MB=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:转换为二进制分别为 : 0100111000100000 虚拟地址应该是 16 位

1000000000000000 1110101001100000 4KB 页面偏移量范围 0~4027 ,需要 12

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

| 0100 111000100000 | 010 0111000100000 32768 | 1000 000000000000 | 100 0000000000000 60000 | 1110 101001100000 | 111 0101001100000

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. Inlel 8086 处理器不支持虚拟内存,然而一些公司曾经设计过包含未作任何改 动

的 8086 CPU 的分页系统。猜想一下,他们是如何做到这一点的。 (提示:考 虑

MMU 的逻辑位置。)

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

线, 映射 到内存中。

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

A:需要一个 MMU 能够将虚拟页面重新映射到物理页面。 此外,当缺页中断时,

需要对操作系统设置陷阱,以便可以获取页面。

10. 写时复制是使用在服务器系统上的好方法,它能否在手机上起作用。 A: “写时复制 “技术,也就是只有进程空间的各段的内容要发生变化时, 才会

将 父进程的内容复制一份给子进程。 如果智能手机支持多重编程, iPhone 、

Android 和 Windows 手机都支持多重编程,那么支持多个进程。如果进程发出 fork() 系统调用和页面在父进程和子进程之间共享,则复制对写是有意义的。智

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

11. 考虑下面的 C 程序: int X[N];

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

for (int i = 0; i < N; i += step) X[i] = X[i] + 1;

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/k ns

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

表项为一个 32 位字。进程启动时,以每个字 100ns 的速度将页表从内存复制到 硬件中。如果每个进程运行 100ms(包含装入页表的时间) 用来装人页表的 CPU 时间的比例是多少?

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

页表大小 512 · 32=2^14 bit复, 制页表的时间 =2^14/2^5*10ns = 5120 ns, 时间 比例5120ns/100ms=5120 · -190)^ (/ 100

·-31)0 =^(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 的 效果如何?

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

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

第三章内存管理习题1.IBM360有一个设计,为了对2KB大小的块进行加锁,会对每个块分配一个4bit的密钥,这个密钥存在PSW(程序状态字)中,每次内存引用时,CPU都会进行密钥比较。但该设计有诸多缺陷,除了描述中所言,请另外提出至少两条缺点。A:密钥只有四位,故内存只能同时容纳最多十六个进程;需要
推荐度:
点击下载文档文档为doc格式
8cuqr4wkem570pk9t8239nplx1m5bx00ano
领取福利

微信扫码领取福利

微信扫码分享