中华考试网·阅读新闻
软件水平 > 中级资格 > 嵌入式系统设计师 > 文章内容

计算机软件水平考试嵌入式系统设计师辅导笔记:页式存储管理(重点)

2016-2-15编辑:ljnbset

页式存储管理(重点)

  基本思路:把物理内存划分为许多固定大小的内存块,称为物理页面;把逻辑地址空间也划分为大小相同的块,称为逻辑页面。当一个用户程序被装入内存时,不是以整个程序为单位,把它存放在一整块连续的区域,而是以页面为单位来进行分配的。对于一个大小为N 的页面程序,需要有N 个空闲的物理页面来把它装载。这些物理页面不一定是要连续的。

  在页式存储管理中需要解决三个问题:数据结构、内存分配与回收、地址映射。

  数据结构有两个:页表和物理页面表。

  A. 页表:给出了任务逻辑页面号和内存中物理页面号之间的对应关系。

  B. 物理页面表:描述内存空间中,各个物理页面的使用情况。

  具体的例子请参考《教程》317页(博客中画不了图,有兴趣自己看)。

  内存的分配过程:

  A. 对于一个新来的任务,计算它所需要的页面数N,然后查看位示图,看是否还有N 个空闲的物理页面。

  B. 如果有足够的空闲物理页面,就去申请一个页表,其长度为N,并把页表的起始地址填入到该任务的控制块中。

  C. 分配N 个空闲的物理页面,把他们的变换填到页表中,建立逻辑页面与物理页面直接的对应关系。

  D. 修改位示图,对刚刚被占用的那些物理页面进行标记。

地址映射的基本思路:

  A. 逻辑地址分析:对逻辑地址,找到它所在的逻辑页面,以及它在页面内的偏移地址。

  B. 页表查找:根据逻辑页面号,从页表中找出它对应的物理页面号。

  C. 物理地址合成:根据物理页面号和页内偏移地址,最终确定物理地址。

  逻辑地址分析:

  页面的大小都是2的整数次幂。对于给定的一个逻辑地址,可以直接把它的高位部分作为逻辑页面号,把它的低位部分作为页内偏移地址。例如,假设页面的大小是4KB,即2的12次幂,逻辑地址为32为,那么在一个逻辑地址当中,最低12位为页内偏移地址,而剩下的20位就是逻辑页面号。

  计算方法:

  逻辑页面号=逻辑地址/页面大小

  页内偏移量=逻辑地址%页面大小

  页表查找:

  页表作为操作系统的一个数据结构,通常保存在内核的地址空间中。

  页表基地址寄存器用来指向页表的起始地址;页表长度寄存器用来指示页表的大小,即对于当前任务,它总共包含有多少个页面。

  物理地址合成:

  假设物理页面号为f,页内偏移地址为offset,每个页面大小为2n,那么相应的物理地址为:f×2n+offset。

计算机软考嵌入式系统设计师考试知识点(12)
咨询热线:4000-525-585(免长途费)