分段与分页存储

标签: 操作系统 分段 分页 段页式
19人阅读 评论(0) 收藏 举报
分类:

来自网络的一个比喻

你去听课,带了一个纸质笔记本做笔记。笔记本有100张纸,课程有语文、数学、英语三门,对于这个笔记本的使用,为了便于以后复习方便,你可以有两种选择。

第一种是,你从本子的第一张纸开始用,并且事先在本子上做划分:第2张到第30张纸记语文笔记,第31到60张纸记数学笔记,第61到100张纸记英语笔记,最后在第一张纸做个列表,记录着三门笔记各自的范围。这就是分段管理,第一张纸叫段表。

第二种是,你从第二张纸开始做笔记,各种课的笔记是连在一起的:第2张纸是数学,第3张是语文,第4张英语……最后呢,你在第一张纸做了一个目录,记录着语文笔记在第3、7、14、15张纸……,数学笔记在第2、6、8、9、11……,英语笔记在第4、5、12……。这就是分页管理,第一张纸叫页表。你要复习哪一门课,就到页表里查寻相关的纸的编号,然后翻到那一页去复习。

分段与分页一些比较

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

将用户程序地址空间分成若干个大小不等的段,每段可以定义一组相对完整的逻辑信息。存储分配时,以段为单位,段与段在内存中可以不相邻接,也实现了离散分配。段是信息的逻辑单位

2.设计目的
分页、分段都是可以使程序的地址空间超过存储器的物理空间。
分页主要是为了解决内存碎片问题,采用固定大小的页面,是系统管理的需要。
分段是为了使程序和数据划分为逻辑上独立的地址空间而设计的,这样做有利于管理变长数据结构、过程的链接、过程与数据的共享、设置特定保护类型等,是出于用户需求的设计。

3.地址转换
分页的作业地址空间是一维的,转换是通过MMU实现页号到块号的转换或通过硬件“快表”TLB实现快速转换(详细过程见另外blog)。

分段的作业地址空间是二维的,由段号和段内地址映射到物理地址,具体转换过程:

  • (1). 程序执行时,从PCB中取出段表始址和段表长度,装入段表寄存器。
  • (2). 由分段地址变换机构将逻辑地址自动分成段号和段内地址。
  • (3). 将段号与段表长度进行比较,若段号大于或等于段表长度,则表示本次访问的地址已超越进程的地址空间,产生越界中断。
  • (4). 将段表始址与段号和段表项长度的乘积相加,便得到该段表项在段表中的位置。
  • (5). 取出段描述子得到该段的起始物理地址。
  • (6). 检查段内位移量是否超出该段的段长,若超过,产生越界中断。
  • (7). 对该段的存取控制进行检查。
  • (8). 将该段基址和段内地址相加,得到实际的物理地址。

(另)段页式存储
分页系统能有效地提高内存的利用率,而分段系统能反映程序的逻辑结构,便于段的共享与保护,将分页与分段两种存储方式结合起来,就形成了段页式存储管理方式。

在段页式存储管理系统中,作业的地址空间首先被分成若干个逻辑分段,每段都有自己的段号,然后再将每段分成若干个大小相等的页。对于主存空间也分成大小相等的页,主存的分配以页为单位。

段页式系统中,作业的地址结构:段号、段内地址,其中段内地址又分为:页号和页内偏移量。

程序员按照分段系统的地址结构将地址分为段号与段内位移量,地址变换机构将段内位移量分解为页号和页内位移量。

为实现段页式存储管理,系统应为每个进程设置一个段表,包括每段的段号,该段的页表始址和页表长度。每个段有自己的页表,记录段中的每一页的页号和存放在主存中的物理块号。

查看评论

分页存储和分段存储的一些小问题解答

1.分页存储结构如下:(以下所有图片来自百度百科) 若给定一个逻辑地址空间中的地址为A,页面的大小为L,则页号P和页内地址d可按右图所示公式求得: 其中,INT是整除函数,MOD是取余函...
  • q258523454
  • q258523454
  • 2016-09-02 20:09:13
  • 733

【操作系统面试专题】:分页和分段存储管理有何区别?

分页和分段存储管理有何区别? 答:主要区别表现在以下三个方面:  (1) 页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的利用率。段则是信息的逻辑单位,它含有一组其...
  • shihui512
  • shihui512
  • 2013-08-11 11:02:53
  • 6453

简单分页存储管理和简单分段存储管理了的区别

分页和分段存储管理有何区别? 答:主要区别表现在以下三个方面:  (1) 页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的利用率。段则是信息的逻辑单位,...
  • fhb1922702569
  • fhb1922702569
  • 2017-01-12 21:52:51
  • 520

内存分段与分页机制

系统内存分页和分段地址管理
  • daoer_sofu
  • daoer_sofu
  • 2015-08-19 15:38:13
  • 907

分段和分页 存储管理

一. 分页存储管理 1.基本思想 用户程序的地址空间被划分成若干固定大小的区域,称为“页”,相应地,内存空间分成若干个物理块,页和块的大小相等。可将用户程序的任一页放在内存的任一块中,实现了离散分...
  • hyqsong
  • hyqsong
  • 2016-05-28 08:02:37
  • 443

第三章 存储方式(分页、分段、段页式存储)

这三种存储方式都是将存储的内容按照一定的规则分割。通过指针指向查询自己想要的存储内容。大大方便了收索和理解。         页式存储:是将进程的地址空间按照固定的大小进行分割。         ...
  • lidonglong121
  • lidonglong121
  • 2011-10-14 08:51:57
  • 2733

分段,分页与段页式存储管理

一.  分页存储管理 1.基本思想 用户程序的地址空间被划分成若干固定大小的区域,称为“页”,相应地,内存空间分成若干个物理块,页和块的大小相等。可将用户程序的任一页放在内存的任一块中,实现了离散...
  • hyp1977
  • hyp1977
  • 2016-08-10 10:50:46
  • 2019

操作系统之分页分段介绍

当直接让进程使用直接的物理内存时,当对物理内存操作时会出现混乱。比如进程A装在0-30的物理内层,在29处是一条ADD指令。而进程B装在30-40处第一条指令为JMP 29.没有使用虚拟内存的话,进程...
  • peace1213
  • peace1213
  • 2015-12-22 15:10:02
  • 3995

操作系统课程设计1、分页方式的地址换算2、分段方式的地址换算

  • 2010年01月15日 16:20
  • 488KB
  • 下载

分页存储管理的基本方法(相关计算)

一个32位的逻辑地址,可转化为如下方式:             设有一页式存储管理系统,向用户提供的逻辑地址空间最大为16页,每页2048字节,内存总共有8个存储块,试问逻辑地址至少应为多少位?...
  • qq_38836119
  • qq_38836119
  • 2017-05-19 18:54:21
  • 251
    个人资料
    等级:
    访问量: 2733
    积分: 217
    排名: 33万+