存储器管理--分页分段

早期操作系统中,计算机的内存分配方式主要是连续内存分配方式, 所谓连续内存分配方式,是指为一个用户程序分配一个连续的内存空间。然而,连续内存分配方式会产生许多内存碎片,尽管可以通过“紧凑”方式将许多碎片拼接成可用的大块空间,但必须为之付出很大的开销。离散的内存分配方式的出现便解决了这一问题。如果离散分配的基本单位是页,则称为分页存储管理方式;如果离散分配的基本单位是段,则称为分段存储管理方式。

基本分页存储管理方式

基本思想

用户程序的地址空间被划分成若干固定大小的区域,称为“页”,相应地,内存空间分成若干个物理块,页和块的大小相等。可将用户程序的任一页放在内存的任一块中,实现了离散分配。

逻辑地址

系统将程序的逻辑空间按照同样大小也划分成若干页面,称为逻辑页面也称为页。程序的各个逻辑页面从0开始依次编号,称作逻辑页号或相对页号。每个页面内从0开始编址,称为页内地址。程序中的逻辑地址由两部分组成:页号P和页内位移量W(页内地址)。
1252910-20180405085806686-2065404889.png

页表

页表的作用是实现从页号到物理块号的地址映射。
1252910-20180405090051293-1001807660.png

地址变换

1252910-20180405092415871-1163046985.png

具有快表的地址变换机构

分页系统中,CPU每次要存取一个数据,都要两次访问内存(访问页表、访问实际物理地址)。为提高地址变换速度,增设一个具有并行查询能力的特殊高速缓冲存储器,称为“联想存储器”或“快表”,存放当前访问的页表项。

基本分段存储管理方式

基本思想

页面是主存物理空间中划分出来的等长的固定区域。分页方式的优点是页长固定,因而便于构造页表、易于管理,且不存在外碎片。但分页方式的缺点是页长与程序的逻辑大小不相关。例如,某个时刻一个子程序可能有一部分在主存中,另一部分则在辅存中。这不利于编程时的独立性,并给换入换出处理、存储保护和存储共享等操作造成麻烦。

另一种划分可寻址的存储空间的方法称为分段。段是按照程序的自然分界划分的长度可以动态改变的区域。将用户程序地址空间分成若干个大小不等的段,每段可以定义一组相对完整的逻辑信息。存储分配时,以段为单位,段与段在内存中可以不相邻接,也实现了离散分配。

分段地址结构

逻辑地址由段号(段名)和段内地址所组成。
1252910-20180405091032397-1705839572.png

段表

段表是用于实现从逻辑段到物理内存区的映射。
1252910-20180405091234990-199099792.png

地址变换

1252910-20180405091309878-629745263.png
绝对地址=根据段号找到段表中的起始地址+段内地址

分页分段异同

同:
两者都采用离散分配方式,且都要通过地址映射机构来实现地址变换。

异:
1.页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的利用率。或者说,分页仅仅是由于系统管理的需要而不是用户的需要。段则是信息的逻辑单位,分段的目的是为了能更好地满足用户的需要。
2.页的大小固定且由系统决定,由系统把逻辑地址划分为页号和页内地址两部分,是由机器硬件实现的,因而在系统中只能有一种大小的页面;而段的长度却不固定,决定于用户所编写的程序,通常由编译程序在对源程序进行编译时,根据信息的性质来划分。
3.分页的作业地址空间是一维的,即单一的线性地址空间,程序员只需利用一个记忆符,即可表示一个地址;而分段的作业地址空间则是二维的,程序员在标识一个地址时,既需给出段名,又需给出段内地址。

本文主要参考计算机操作系统第三版内容。

转载于:https://www.cnblogs.com/tyson03/p/8721168.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值