一. 页式存储
概念:
- 不是一个程序运行起来都需要加载到内存中,而是需要哪些就加载哪些,因此才可以分页。
- 分页是指把程序切成等大小的页,内存也切成等大小的页。
优点:
利用率高,碎片小,分配及管理简单。
缺点:
增加了系统开销;可能产生抖动现象。
考点:
逻辑地址到物理地址的转换(逻辑地址是程序从0开始的编号,物理地址是内存中的真实地址)
注意: 页内地址是相同的(因为是相对的),页号和页帧号是不同的,页号和页帧号可查对应表。
例子:
答案:D B
说明:访问位为0,说明很久没有被访问过来,根据局部性原理,因此在下一段时间也不会被访问,所以淘汰它。
二. 段式存储
概念:
把程序分段,然后调入到内存中,一个段往往对应的是一个函数。
页式和段式的区别:
- 页式是硬生生的按大小划分的,不管你的逻辑是怎么样的。而段是是按逻辑划分的,比如一个段对应一个函数,这样再调用这个段的时候进入内存的就是一个完整的逻辑,而不是再去调用剩余的逻辑程序。
- 段有长有短,而页的大小是固定的。
图示:
基址:某个段调到内存的起始地址。
考点:
某个段地址是否正确(即能否正常转成物理地址),如果越界显然不能转成物理地址。
例子:
某段地址为: (2,100k)
其中2代表段号
,100k代表偏移量
根据上面图示中可以看到:段号为2对应段基址为120k,偏移量为100k,而段长只有15k,所以100k偏到了别人家里了,所以这个段地址是错误的。
三. 段页式存储
概念:
先分段、后分页,这样可以把段页的优势结合起来。
注意: 段内页的数量是可以变化的。
补充:快表
快表是一块小容量的相联存储器(按内容存取),由高速缓存器组成,速度快,并且可以从硬件上保证按内容并行查找,一般用来存放当前访问量最频繁的少数活动的页面的页号。