软考架构师笔记-存储管理
1.5 存储管理
存储管理
页式存储组织
- 虚地址 = 页号 | 页内地址
- 页表 = 页号 | 块号
- 物理地址 = 块号 | 页内地址
- 访存两次:访问页表得到物理地址,根据物理地址得到数据
- 就是把用户程序的空间分成若干页,把内存空间分成若干块,块和页的大小一致,页表中存放的是页号对应的块号。
段式存储组织
- 虚地址 = 段号 | 段内地址
- 段表 = 段号 | 始址 | 段长
- 物理地址 = 始址 | 段内地址
- 访存两次:访问段表得到物理地址,根据物理地址得到数据
- 把用户的程序分成若干个不同大小的作业,内存空间也分配大小不同的大小段,将作业分配到段中。
段页式组织
- 虚地址 = 段号 | 页号 | 页内地址
- 段表 = 段号 | 页表长度 | 页表地址
- 页表 = 页号 | 块号
- 物理地址 = 块号 | 页内地址
- 访存三次:访问段表得到页表地址和大小,根据页号访问页表得到物理地址,根据物理地址得到数据
快表
- (Translation Look-aside Buffers - TLB,也叫关联存储器)
- 能够直接把逻辑页面映射为物理页面,不需要再去访问内存中的页表。先访问快表得到物理地址,然后直接访问物理地址得到数据,只需要访存一次。
页面置换算法
- OPT(最佳置换算法):最长时间内不在访问的页面。
- FIFO(先进先出算法):淘汰最早进入内存的页面,会出现抖动(分配了更多的资源效果却更低了)。
- LRU(least recently used,最近最久未使用):淘汰的页面是最近最久未使用的页面(逆向扫描最后一个出现的页面就淘汰,即刚刚访问的不会被淘汰出去)
- 习题:有些习题没有指明算法,但是有访问位和修改位。首先置换的是访问位为0的页面。