分页存储的地址空间是一维的,分段存储的地址空间是二维的

本文介绍了分页和分段两种内存管理方式。分页存储中,程序被划分为固定大小的页,相邻页面地址连续,仅需逻辑地址即可确定页号和偏移量。而分段存储依据程序逻辑将代码分为不同段,每段大小不固定,导致段间地址不连续,需要段号和段内偏移量来定位。因此,分页存储地址空间一维,分段存储地址空间二维。
摘要由CSDN通过智能技术生成

分页存储:

一段程序在采取分页存储的方式时,这段程序会被编译成为一大段机器指令,这些指令之间地址是连续的
采用分页机制后,则相邻两页的存储地址是连续的。比如第0页的最后一个地址和第1页的第一个地址是连续的(这里的地址是指逻辑地址)——此时就相当于只需要提供一个地址,就能够得到页号和偏移量
——————————
若采用分段机制,则这段程序就会被编译程序编译成多个段,比如数据段、代码段、附加段等,每个段的段号是编译器自动分配的,每个段的长度不定,因此虽然数据段、代码段的段号是0-1连续的,但是数据段的最后一个地址和代码段的第一个地址是不连续的,所以我们在提供此时的地址时,即需要提供段号,又需要提供段内的偏移地址。所以称分段存储的地址空间是二维的
——————————
若不能理解,可这样理解:
因为分页存储的页的大小是相同的。所以我们只需要提供一个逻辑地址就能够求出其所在的页号和页内偏移地址。如逻辑地址为2049,页的大小的1k,则此逻辑地址所指向的位置在第(2049/2)=2页,偏移地址为(2049➗2)=1处。
而分段存储的段大小是在程序员进行编程时认为设定的。比如编辑时设置main函数和其他作用函数,则把main函数和其他作用函数分别作为一个段。这些段的大小自然不会是相同的。如果我们只给定一个逻辑地址时。我们并不能够求出其所在的段号和段偏移量。所以可以理解为我们需要提供两个逻辑地址,分别表示其段号和段偏移量,在计算机给出这个逻辑地址时将其合二为一形成我们最后所看到的逻辑地址。(这是为了记忆方便的理解,不是准确原理!)所以分段存储的地址空间是二维的,分页存储的地址空间是一维的。当然的,段页式存储的地址空间是二维的。

2020-10-16 OS复习内存管理处

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值