【操作系统复习】内存分页 分段 段页式管理
创始人
2025-05-30 05:47:40
0

分页管理是将进程逻辑空间进行划分,对物理内存也进行划分。进程划分称为页,内存划分称为页框、内存块。

页表

进程、内存进行划分之后,就需要有一个数据结构记录进程的哪一个页被放到了内存的哪一个页框去了。操作系统通过页表来进行记录。
页表根据页号按顺序进行存储。因为物理内存进行划分后,每一块大小固定,那么数额也就是固定的。所以块号的位数就是固定的。那么就可以利用数组的思维方式进行记录。
下标为0的存储0号页存放到哪一个物理块号。
所以页表大致基础的数据结构为一个线性表,下标为页号,内容为页框号的线性表。

如何实现地址转换

虽然分页进行了离散存放,但离散是对于页来说的,但是每一个页内的地址都是连续存放的。
所以一个逻辑地址可以理解为
逻辑地址=页号∗页大小+页内偏移量逻辑地址 = 页号*页大小 + 页内偏移量 逻辑地址=页号∗页大小+页内偏移量
那么将这个逻辑地址转为物理地址可以采取以下步骤

  1. 给出一个进程的逻辑地址,确定逻辑地址的页号。
  2. 查页表确定在内存的块号,就可以求出内存块的起始地址。
  3. 内存块起始地址加上偏移地址就是对应的物理地址。

页号=逻辑地址/页面长度页内地址=逻辑地址%页面长度页号 = 逻辑地址 / 页面长度\\ 页内地址 = 逻辑地址 \% 页面长度 页号=逻辑地址/页面长度页内地址=逻辑地址%页面长度
而如果页面大小为2的整数幂,那么就相当于高位为逻辑地址,低位为页内地址。那么就可以直接取前面几位就是页号,后面几位就是页内地址。
同时
物理块号=页框号∗页面长度+页内地址物理块号 = 页框号 * 页面长度 + 页内地址 物理块号=页框号∗页面长度+页内地址
所以如果页大小为2的整数次幂,可以让页表查询出的页框号直接代替高位,就可以得到物理地址。

快表

正常情况下,对于一个地址的访问需要访问两次内存。第一次去内存中查询页表,第二次取真正的数据/指令。
通过快表可以优化第一次访问内存。
快表是类似于cache的存储设备,存储速度在内存之上。
可以将近期访问的页表项放入快表之中,在进行逻辑页表到物理页框的转换时候,可以先访问页表。如果快表命中就不需要访问内存页表。只要访问一次内存,寻找真实的数据即可。
运用原理:时间局部性原理,空间局部性原理。

二级页表

  • 一级页表的问题
    如果进程较大的话,可能会占用多个页框,那么会导致页表过大。而进程在近期常常使用的区域可能只是一小部分。所以常驻内存的页表内大部分最近暂时用不到的。

所以可以进行一个二级划分。将页表进行等大拆分,常驻内存的为页目录表。页目录表存放二级页号存放的页框号。然后调二级页表进入内存,查询页框号,得到最终的物理地址。
那么驻留内存只需要为页目录表。
注意点:各级页表不应该超过一页。

分段管理

进程的地址空间按照程序自身逻辑关系划分为若干个段。每个段从0编址。每个段在内存中占据各个连续空间,段之间可以互不相连。
那么一个逻辑地址就可以表示为高位段号,低位段内地址。
而段号位数决定进程最多可以有几个段号,段内地址位数决定一个段最大的大小。

段表

与页表类似,进程分为一个一个段,也需要有数据结构对于每个段进行记录。
段表结构为段长与基址。基址表示这个段在内存当中的起始地址为多少。段长表示这个段有多长。因为每一个段的段长不固定。

逻辑地址的转换

PCB中会有段表的起始地址与段表长度,在进程调入CPU运行时候,会将这个值加载进CPU的段表寄存器。

  1. 根据段号与段表寄存器中的段表长度进行检查,如果越界,发生中断
  2. 根据段号到内存段表查询,比较段内地址与段表中保存的段长,如果越界也发生中断。
  3. 根据段表查找内存中这个段的起始地址,最终得到物理地址。

分页与分段

  • 页是物理单位,分页的目的是离散分配,提高内存利用率。分页完全只是为了系统的需要,对用户不可见。
  • 段是逻辑单位,分段是为了更好满足用户需求,分段用户是可见的。
  • 分页进程地址空间为一维,
  • 分段进程地址空间为二维
  • 分段比分页容易实现信息共享和保护。因为分页跟逻辑没有关系,可能会将多个逻辑块放在一个页面。而分段会将一个逻辑块为一个段。每个逻辑块都是独立的。

段页式管理

分段有利于用户逻辑维护,分页能够提高内存利用率。
如果单纯使用分段管理,与动态分区分配很类似,对内存空间的利用率并不好。
可以先对进程进行分段,然后对于一个段进行分页管理,就可以让进程即保持逻辑性,也能保证内存利用率较高。

段页式地址转换

段页式地址转换改变为先进行段号转换,再进行页转换。

  1. 先从逻辑地址中的段号与段寄存器里的段长进行比较,越界发生中断
  2. 然后根据段寄存器中的段表地址找到段表,这时候段表存储内容发生改变,每一个内容应该为页表项的长度,以及页表起始地址。
  3. 然后根据页号与该段进行比较,如果越界就发生中断。
  4. 进入内存查询页表,查询页框。
  5. 最后获得物理地址
    总共访问三次内存:第一次访问段表,第二次访问页表,第三次访问数据。

相关内容

热门资讯

融创回血“上岸” 作者 | 周智宇编辑 | 张晓玲近日,久未公开露面的孙宏斌低调现身重庆,视察了融创在当地的重点项目—...
招股书里的MiniMax:当聪... 如果说,去年是国内大模型的应用元年,那么2025年无疑是行业的分化之年。此刻你选择的叙事,决定了你看...
美国消费者信心连续五个月下滑,... 消费者信心指数已连续第五个月下滑,追平2008年金融危机以来的最长连跌纪录,持续反映出家庭对高物价、...
金银再创历史新高,势创1979... 在地缘政治紧张局势升级、以及美国可能进一步降息的预期推动下,黄金和白银价格双双上涨,刷新历史新高。纽...
美联储主席候选人哈塞特:美国降... 被视为美联储主席热门人选的哈塞特认为,人工智能繁荣在推动经济增长的同时压低了通胀,美国在降息节奏上远...
港股IPO风头正劲,平安证券依... 编者按:随着中国资本市场双向开放向纵深推进,中资券商化身“金融航海家”,驶向更广阔的全球市场。它们以...
大利好疯狂来袭,别再怀疑牛市!... 近期市场非常热闹! 12月18日,海南自贸港封关运作,海南板块全线狂飙; 12月21日,王力宏成都演...
创业板指涨超1%,宁德时代涨4... 11月13日消息,指数探底回升,创业板指拉升涨逾1%,上午一度跌近2%;沪指现涨0.52%,深成指涨...
海南推进全岛封关准备工作专班第... 11月13日消息,据海南自贸港消息,11月12日,推进全岛封关准备工作专班第18次领导小组会议在海口...
小米布局AI眼镜:与歌尔股份合... 11月13日消息,据报道,小米计划推出新一代AI眼镜,并已与歌尔股份合作,预计于2025年Q2发布。...