存储管理,设备管理
1.CPU中的缓存和操作系统的缓存分别是什么?
解答:
1)在操作系统中,为提高系统存取速度,在地址映射机制中增加一个小容量的联想寄存器(相联寄存器),即块表,用来存放当前访问最频繁的少数活动页面的页号。当某用户需要存取数据时,根据数据所在的逻辑页号在块表中找到其对应的内存块号,再联系页内地址,形成物理地址。如果在快表中灭有相应的逻辑页号,则地址映射仍可以通过内存中的也表进行,得到空闲块号后须将该块号填入快表的空闲块中。如果快表中没有空闲块,则根据淘汰算法淘汰某一行,再填入新的页号和块号。快表查找内存块的物理地址消耗的时间大大减低,提高了系统效率。
2)高速缓冲存储器(Cache)是位于CPU与内存之间的临时存储器,它的容量比内存小但交换速度快。在Cache中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的。当CPU调用大量数据时,就可以避开内存直接从Cache中调用,从而加快读取速度。由此可见,在CPU中加入Cache是一种高校的解决方案,这样整个内存储器(Cache+内存)就变成了既有Cache的高速度又有内存的大容量的存储系统了。Cache对CPU性能的影响很大,这主要是由CPU的数据交换顺序和CPU与Cache间的带宽引起的。
2.某虚拟内存的用户编程空间共32页,每页的大小为1 KB,内存为16 KB,假设某时刻系统为用户的第0、1、2、3页分配的物理块为5、10、4、7,而该用户作业的长度为6页,试将16进制的虚拟地址0A5C、093C、1A5C转换成物理地址。
解:
- 虚拟地址为0A5C,对应的二进制数为:0000 1010 0101 1100。其中,页内偏移量占10位地址码,为25C。页号占6位地址码,为2号页。因第2页存储在4号块中,其基地址为:0001 0000 0000 0000,即十六进制的1000H。这样,其物理地址为十六进制的125C。
- 虚拟地址为093C,对应的二进制数为:0000 1001 0011 1100。其中,页内偏移量占10位地址码,为13C。页号占6位地址码,为2号页。因第2页存储在4号块中,其基地址为:0001 0000 0000 0000,即十六进制的1000H。这样,其物理地址为十六进制的113C。
- 虚拟地址为1A5C,对应的二进制数为:0001 1010 0101 1100。页内偏移量占10位地址码,为25C。页号占6位地址码,为6号页。因为该用户作业的长度为6页,最大的页号为5号。因为虚拟地址为1A5C对应的6号页超出了地址范围,所以属于越界。
3.
假设有下面的段表:
下面逻辑地址的物理地址分别是多少?
① [0,430]; ② [1,12]; ③ [2,500]; ④ [3,400]; ⑤ [4,122]
段 |
基址 |
长度 |
0 |
219 |
600 |
1 |
2300 |
14 |
2 |
90 |
100 |
3 |
1327 |
580 |
4 |
1952 |
96 |
解:
①: 649;②:2312;③:越界;④:1727;⑤:越界
4.
考虑下面存储访问序列,该程序的大小为460字(以下数字均为十进制数字):
10、11、104、170、73、309、185、245、246、434、458、364
该页面的大小为100字,该程序的基本可用内存为200字,计算采用FIFO、LRU和OPT置换算法的缺页次数。
解:
因为页面的大小为100字,该程序的基本可用内存为200字,即可用内存为2块。程序的存储访问序列可转换为如下页面访问序列:
1、1、2、2、1、4、2、3、3、5、5、4
采用FIFO、LRU和OPT置换算法的访问序列如下:
由图可知FIFO算法的缺页次数为6次,LRU的缺页次数为7次,OPT的缺页次数为5次。
5.在某个系统的某个运行时刻,有如下表示的磁盘访问的请求序列,假设磁头当前在15柱面,磁臂方向为从小到大。
15、20、9、16、24、13、29
请给出最短查找时间优先算法和电梯调度算法的柱面移动数,并分析为何通常情况下,操作系统并不采用效率更高的最短查找时间优先算法。
解:
1) 按照最短查找时间优先算法,柱面的访问次序是:
15、16、13、9、20、24、29
令磁臂移动方向从小到大为正向,从大到小的方向为反向,那么,最短查找时间优先算法的柱面移动次数为:1+|-3|+|-4|+11+4+5=28。
2) 按照电梯调度算法,柱面的访问次序是:
15、16、20、24、29、13、9
电梯调度算法的柱面移动数为:1+4+4+5+|-16|+|-4|=34。
3) 从本题给的例子看,最短查找时间优先算法比电梯调度算法的柱面移动数少6。因此说前者的效率更高一些。但是,由于磁头在访问操作中,可能不断有新的柱面请求加入,使磁头忙于应付一些距离较近的柱面请求,冷落了对远距离柱面的响应。长此以往,将可能造成某些远距离柱面处于“饥饿”状态。这就是通常情况下操作系统并不采用最短查找时间优先算法的原因。