基本分段存储管理方式

基本分段存储管理方式

分段

分段管理方式的提出则考虑了用户和程序员,把通常的程序分成若干个段,如主程序段、子程序段A、子程序B……、数据段及栈段等,每个段大多是一个相对独立的逻辑单位,方便于程序员的操作;也满足了方便编程、信息保护和共享、动态增长及动态链接等多方面的需要。

分段系统的逻辑地址结构由段号(段名)和段内地址(段内偏移量)所组成。如:

段表

程序分多个段,各段离散地装入内存,为了保证程序能正常运行,就必须能从物理内存中找到各个逻辑段的存放位置。为此,需为每个进程建立一张段映射表,简称“段表”。

地址变换

先经过一系列判断是否越界,若均不越界,根据逻辑地址A中段号S找到基址b,段基址b+段内地址w 就是物理地址

分段、分页管理的对比

分段比分页更容易实现信息的共享和保护。不能被修改的代码称为纯代码或可重入代码(不属于临界资源),这样的代码是可以共享的(比如,有一个代码段,只是简单的输出 “Hello World!”)。可修改的代码是不能共享的(比如,有一个代码段中有很多变量,各进程并发地同时访问可能造成数据不一致)。如按照分段管理方式将进程分段的话,如下图所示:

补充(访问次数)

访问一个逻辑地址需要几次访存?
分页(单级页表):第一次访存——查内存中的页表,第二次访存——访问目标内存单元。总共两次访存。
分段:第一次访存——查内存中的段表,第二次访存——访问目标内存单元。总共两次访存。
与分页系统类似,分段系统中也可以引入快表机构,将近期访问过的段表项放到快表中,这样可以少一次访问,加快地址变换速度。

段页式管理方式

页式存储管理能有效地提高内存利用率,而分段存储管理能反映程序的逻辑结构并有利于段的共享。将这两种存储管理方法结合起来,便形成了段页式存储管理方式。

先分段再分页

将进程按逻辑模块分段,再将各段分页(先分段再分页,如每个页面4KB)。再将内存空间分为大小相同的内存块/页框/页帧/物理块,将各页面分别装入各内存块中。

段页式管理的逻辑地址结构

先进行越界判断,若均不越界,根据页号对照页表,找到对应的内存块号,物理地址=内存块号*页面大小+页内偏移量

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值