没有合适的资源?快使用搜索试试~ 我知道了~
《现代操作系统第四版》 第三章 答案 (2).pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 104 浏览量
2023-03-06
20:43:38
上传
评论
收藏 1.19MB PDF 举报
温馨提示
试读
16页
。。。
资源推荐
资源详情
资源评论
第三章 内存管理 习题
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 个进程实际运行,而且这些进程也极少需要其最大允许的虚拟
剩余15页未读,继续阅读
资源评论
苦茶子12138
- 粉丝: 1w+
- 资源: 6万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功