考研复习-操作系统-第三章-内存管理
易错点
内存管理
1.需要硬件地址变换机构的有,页式存储管理,动态分区分配,页式虚拟存储管理
动态重定位的硬件即基址-限长寄存器
2.重定位存储管理需要一个重定位寄存器,但是是整个系统中,而不是每个程序
3.分页式管理可能会产生内部碎片,应为一个页里面的数据不会完全的被填满
4.页表存储中分配给用户的内存空间要抛去页表等
5.
6.因为段式存储管理按代码逻辑分段程序,更方便各个模块链接
7.如图所示
8.其中cpu和主存和磁盘等数据交换如图所示关系
9.页表常驻与内存中,某进程的页表的起始地址存储在pcb当中。
如若页表不存储在内存中
那么当进程暂时切换为别的进程的时候页表寄存器里的内容会被切换,那么如果切换回原进程的时候找到原进程就会困难,所以页表常驻与内存
10.分页才是为了实现离散分配
D选项也需要记忆
11.修改页表项实现复制指的是出现p3指向985那也是复制
12.二级页表指的是小的页表
虚拟
1.注意该题问的是最大,而非实际
进程的内存映像
代码中各个部分应该存储在进程的哪个部分
分页存储
易混淆基本概念
我们来详细解释一下以防以后混淆和忘记
我们假定下面的图片中,这是一个用户程序被分成的结构,一个进程对应一个块
假定这个用户程序大小为1GB,一个块大小为24B,操作系统以字节编址
那么地址结构如下所示,注意这是一个逻辑地址,即表明这条指令的位置
地址结构的作用是根据地址去内存中拿去需要的指令和数据,这就是地址结构的作用
那么对于一个1GB的程序,我们需要用30位来表示即
其中这个程序又被分为了若干个块,一个块内又有大小,为24B,那么需要五位来表示
所以地址结构即地址查找对应如下结构
我们假设有一个指令是
我们假设一个有一个指令逻辑地址是100=64+32+4
其地址的二进制表示为
0.......0110 0100
从逻辑上看的话,这个指令它位于
页号为三的页(即第四页)且在这个页的第4个存储单元的位置
这就是一个程序的页的逻辑地址
那么一个程序会拥有1个页表,一个页表里面映射他与主存的块号
因为主存也被划分为了一个一个的块
我们以刚才哪个逻辑地址为100的举例子
我们已知页号为3,块内地址为4
则我们根据页表所给的信息查找到该页所对应的内存块在主存的哪个位置
我们假定页号为3的页他的物理块号是5
则该条指令的真实物理地址是
一页大小×物理块号+业内地址=所要找的存储单元的地址
24B×5+4
就是我们所需要找的该程序的该指令的地址存储位置
块表
流程如下所示
页面置换算法
opt算法做题
当你要淘汰一个页面时找到当前页面含有的所有元素中最后一个出现的哪个换掉就好了
LRU算法做题
从发生缺页中断的地方往前扫描,找到当前元素中最久没有被使用的哪个元素,往前找到四个不同的元素。