操作系统 | 《操作系统设计与实现》课后习题 存储管理

教材:《操作系统设计与实现》(第三版)

2、在一个使用交换技术的系统中,按地址顺序排列的内存中的空闲块大小是10KB,4KB,20KB,18KB,7KB,9KB,12KB,15KB。对于连续的段请求:
a)12KB
b)10KB
c)9KB
使用最先匹配算法,哪个空闲块将被选中?对最佳匹配法、最坏匹配法和下次匹配法回答同样的问题。

解:
(1)最先匹配法
被选中的块依次是:20KB 10KB 18KB
(2)最佳匹配法
被选中的块依次是:12KB 10KB 9KB
(3)最坏匹配法
被选中的块依次是:20KB 18KB 15KB
(4)下次匹配法
被选中的块依次是:20KB 18KB 9KB

6、使用图4.8中的页表,计算出下列虚拟地址所对应的物理地址:
a)20
b)4100
c)8300

解:
a)虚拟地址20位于第0个虚拟页面中,页面内的偏移地址是20,其被映射到第2个物理页面,起始地址为8192,所以最后的物理地址为8192+20=8212。
b)虚拟地址4100位于第1个虚拟页面中,页面内的偏移地址是4100-4096=4,其被映射到第1个物理页面,起始地址为4096,所以最后的物理地址为4096+4=4100。
c)虚拟地址8300位于第2个虚拟页面中,页面内的偏移地址是8300-8192=108,其被映射到第6个物理页面,起始地址为24576,所以最后的物理地址为24576+108=24684。

11、一台32位地址的计算机使用了两级页表。虚拟地址被划分为三部分:9位的顶级页表字段、11位的二级页表字段和页内偏移。请问页面的大小是多少?在地址空间中总共有多少个页面?
解:
页内偏移地址:32-9-11=12位
页面大小: 2 12 = 4 K B 2^{12}=4KB 212=4KB
地址空间中总共有: 2 20 = 1048576 2^{20}=1048576 220=1048576个页面

【实际在内存中不会存这么大】

12、以下是一小段汇编语言程序(用文字来描述),用在一台页面大小为512字节的计算机上。该程序位于地址1020,它的栈指针位于8192(向0的方向增长)。请给出这个程序所产生的页面访问序列。假设每条指令占用4个字节(1个字),对指令和数据的访问都应该包含在访问序列之中。
将地址为6144的字装入寄存器0
把寄存器0压入栈中
调用起始地址为5120的函数,把返回地址入栈
5120把栈指针的值减去16
5124将实参与常量4进行比较
5126如果相等,跳转到5152

解:
页面序列:
1(指令)+12(数据)
2(指令)+15(数据)
2(指令)+15(数据)
10(指令)
10(指令)+ 15(数据)
10(指令)

栈指针是一个寄存器,第四条只是访问了寄存器,而没有对栈进行访问
实参值在栈中
(跳转后,下一条指令才会从5152开始执行)

14、在一台计算机上,进程的地址空间有1024个页面,页表被保存在内存中。从页表中读取一个字的开销是500ns。为了减小开销,这台计算机使用了TLB,它能存放32对(虚拟页面号,物理页面号),查找时间为100ns。为了把页表的平均访问开销降到200ns,需要的TLB命中率是多少?
解:
假设TLB的命中率为r。
100 n s × r + 500 n s × ( 1 − r ) ≤ 200 n s 100ns\times r+500ns\times(1-r)\leq200ns 100ns×r+500ns×(1r)<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值