存储器管理之段页式管理笔记

      1: 页式管理很好的解决了进程代码离散分布内存的问题,页式分配将程序中的逻辑地址分为两部分,低0~12位为页内地址高13~31位为页数。因此,内存中最大页面数为1M。为了维护页面信息,要建立一张页面表,里面包含了页号,块号。还应当设立一个页地址寄存器,用来存放页表地址页表长度。当进程需要访问数据地址时,通过寄存器进行转换成物理地址。由于页表也存放在内存中,故每进行一次数据的存取都要访问内存两次,这样做使得访问的速度降低了2倍,这非常得不偿失。因此通常将部分页面表存入内存与cpu之间的高速缓存中,每次转换到缓存中查找是否存在该表目,不存在再到内存中查找。这样从快表中查找到的记录几率可达到90%以上,达到了可接受的程度。

缺点:由于现代计算机的逻辑地址空间非常大,每个进程页表的页表数可能占用1M的内存空间,这不现实。

改进方法:将一级页表分为两级页表。将逻辑地址分为三部分:低0~11为页内地址,中12~21为外层页内地址22~31为外层页地址,这样只需将外层页表装入高速缓存,通过外层页表进行逐级转换。


        2: 段式管理将逻辑地址分为两部分,高16为段号,低16位为段内地址。段式管理相比页式管理更加灵活,页式管理由操作系统分配大小,并且固定,且页是信息的物理单位,是操作系统为了管理的需要而不是用户的需求。而段则是信息的逻辑单位,它含有一组意义相对完整的信息。分页的地址是一维的,而分段的地址是二维的。分段管理每个进程也有一个段表,包含了段的基址,段长。在转换成物理地址时,将部分相连的段表信息装入高速缓存,每次通过段寄存器转换时,就从高速cache中查找,若没有找到在从内存中查找完整的段表。


       3:段页组合的方式,利用两种管理的优势。将逻辑地址分为三部分,段号---段内页号--页内地址 。再增设一个高速缓存用来存储页表,在转换时同时进行段和页的查询,若不存在,在去内存查询。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

酒徒词客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值