当前位置:首页 » 存储配置 » 什么是分段存储管理

什么是分段存储管理

发布时间: 2023-05-09 12:40:38

‘壹’ 内存为什么要分段 分成多少种段 段与段寄存器的区别

8086CPU有20根地址线,最大可寻址内存空间为1MB。而8086的寄存器只有16位,指令指针(IP)和变址寄存器(SI、DI)也是16位的。用16位的地址寻址1MB空间是不可能的。所以就要把内存分渗薯顷段,也就是把1MB空间分为若干个段,每段不超过64KB,在8086中丛陆设置4个16位的段寄存器,用于管理4种段:CS是代码段,DS是数据段,SS是堆栈段,ES是附加段。
把内存分段后,每一个段就有一个段基址,段寄存器保存的就是这个段基址的高16位,这个16位的地址左移四位(后面加手埋上4个0)就可构成20位的段基址。

‘贰’ 基本分段存储管理方式的分段系统的基本原理

在分段存储管理方式中,作业的地址空间被划分为若干个段,每个段定义了一组逻辑信息。例如,有主程序段MAIN、子程序段X、数据段D及栈段S等,如图4-17所示。每个段都有自己的名字。为了实现简单起见,通常可用一个段号来代替段名,每个段都从0开始编址,并采用一段连续的地址空间。段的长度由相应的逻辑信息组的长度决定,因而各段长度不等。整个作业的地址空间由于是分成多个段,因而是二维的,亦即,其逻辑地址由段号(段名)和段内地址所组成。
分段地址中的地址具有如下结构:
在该地址结构中,允许一个作业最长有 64 K个段,每个段的最大长度为64 KB。分段方式已得到许多编译程序的支持,编译程序能自动地根据源程序的情况而产生若干个段。例如,Pascal编译程序可以为全局变量、用于存储相应参数及返回地址的过程调用栈、每个过程或函数的代码部分、每个过程或函数的局部变量等等,分别建立各自的段。类似地,Fortran编译程序可以为公共块(Common block)建立单独的段,也可以为数组分配一个单独的段。装入程序将装入所有这些段,并为每个段赋予一个段号。 为了实现从进程的逻辑地址到物理地址的变换功能,在系统中设置了段表寄存器,用于存放段表始址和段表长度TL。在进行地址变换时,系统将逻辑地址中的段号与段表长度TL进行比较。若S>TL,表示段号太大,是访问越界,于是产生越界中断信号;若未越界,则根据段表的始址和该段的段号,计算出该段对应段表项的位置,从中读出该段在内存的起始地址,然后,再检查段内地址d是否超过该段的段长SL。若超过,即d>SL,同样发出越界中断信号;若未越界,则将该段的基址d与段内地址相加,即可得到要访问的内存物理地址。
下图示出了分段系统的地址变换过程。
像分页系统一样,当段表放在内存中时,每要访问一个数据,都须访问两次内存,从而极大地降低了计算机的速率。解决的方法也和分页系统类似,再增设一个联想存储器,用于保存最近常用的段表项。由于一般情况是段比页大,因而段表项的数目比页表项的数目少,其所需的联想存储器也相对较小,便可以显着地减少存取数据的时间,比起没有地址变换的常规存储器的存取速度来仅慢约10%~15%。

‘叁’ 在操作系统中,如何理解分页、分段的定义两者之间的区别又是什么

分页就是将进程的逻辑地址空间分成若物闭干大小相等的片(即页),然后装入内存。
分段就是用户可以把自己的作业按逻辑关系划分为若干个段,每个段都是从0开始编址,并有自己的名字和长度。这就相当于程序里边的主函数段、各个子函数段、数据段、栈段等等。

要知道在引入分页和分段之前,是通过连续分配方式来管理存储器的,就是说一个进程在内存中是连续存放的。
可以这样理解吧,内存中有进程1、2、3……进程2先罩迅裂执行完成了,然后释放了所占有的内存空间,而之后,
如果新调入的进程内存需求大于之前2所占有的内存空间,那么不可能利用这块内存,相对于内存需求更大的进程来说,之前2所占有的内存空间就是不能利用的碎片,
如果新调入的进程内存需求小于之前2所占有的空间就会留下空隙,也会带来碎片。
虽然可以通过“紧凑”的方法进行碎片整理,但开销很大这就产生了与连续分配方式相对的离散分配方式,便先后引入了分页和分段存储管理。

所以相同点就是,两者都属于存储器管理方式中的离散分配方式。都要通过地址映射机构来实现地址变换。

不同点就在于,离散分配方式的基本单位的不同,是页还是段。
页是信息的物理单位,段是信息的逻辑单位。
分页的作业地址空间是一维的,线性的,程序员只需利用一个记忆符表示一个地址;而分段的作业地址空间是二维的,程序员在表示一个地址的时候既要给出段名,又需要给出段内地址。其中,段名可以理解为函数名等,段内地址可以理解程变量等的地址。
值得一提的是其中页的大小昌芦要和物理块或者页框一样,而物理块是操作系统定好了的。也就是说你的操作系统装完之后,物理块的大小是定了的,从而页的大小也是定了的。而段的长度是不定的。

引入分页存储管理方式的目的是提高内存利用率,而引入分段存储是为了满足用户(程序员)在编程和使用上多方面上的要求。还有将两者结合一起的段页式系统。

‘肆’ 分页和分段存储管理相同点是什么

基本分段存储管理方式和基本分页存储管理方式二者的理论基础都是相对差不多的,二者都是建立在内存分区管理思想和程序局部性原理的基础之上。

基本分页存储管理方式在存储器管理中,连续分配方式会形成许多“碎片”,虽然可通过“紧凑”方法将许多碎片拼接成可用的大租扮此块空间,但须为之付出很大开销。

在分段存储管理方式中,作业的地址空间被划分为若干个段,每个段定义了一组逻辑信息。例如,有主程序段MAIN、子程序段X、数据段D及栈段S等。

(4)什么是分段存储管理扩展阅读:

基本分段存储管理弊迅方式和基本分页存储管理方式原理的结合就是段页式系统的基本原理,即先将用户程缺逗序分成若干个段,再把每个段分成若干个页,并为每一个段赋予一个段名。

在段页式系统中,为了便于实现地址变换,须配置一个段表寄存器,其中存放段表始址和段表长TL。进行地址变换时,首先利用段号S,将它与段表长TL进行比较。

‘伍’ 什么是分段存储管理

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

‘陆’ 基本分段存储管理方式的分段存储管理方式的引入

引入分段存储管理方式,主要是为了满足用户和程序员的下述一系列需要:
1) 方便编程
通常,用户把自己的作业按照逻辑关系划分为若干个段,每个段都是从0开始编址,并有自己的名字和长度。因此,希望要访问的逻辑地址是由段名(段号)和段内偏移量(段内地址)决定的。例如,下述的两条指令便是使用段名和段内地址:
LOAD 1,[A] |〈D〉;
STORE 1,[B] |〈C〉;
其中,前一条指令的含义是将分段A中D单元内的值读入寄存器1;后一条指令的含义是将寄存器1的内容存入B分段的C单元中。
2) 信息共享
在实现对程序和数据的共享时,是以信息的逻辑单位为基础的。比如,共享某个例程和函数。分页系统中的“页”只是存放信息的物理单位(块),并无完整的意义,不便于实现共享;然而段却是信息的逻辑单位。由此可知,为了实现段的共享,希望存储管理能与用户程序分段的组织方式相适应。
3) 信息保护
信息保护同样是对信息的逻辑单位进行保护,因此,分段管理方式能更有效和方便地实现信息保护功能。
4) 动态增长
在实际应用中,往往有些段,特别是数据段,在使用过程中会不断地增长,而事先又无法确切地知道数据段会增长到多大。前述的其它几种存储管理方式,都难以应付这种动态增长的情况,而分段存储管理方式却能较好地解决这一问题。
5) 动态链接
动态链接是指在作业运行之前,并不把几个目标程序段链接起来。要运行时,先将主程序所对应的目标程序装入内存并启动运行,当运行过程中又需要调用某段时,才将该段(目标程序)调入内存并进行链接。可见,动态链接也要求以段作为管理的单位。

‘柒’ 为什么8086对存储器要采用分段管理

8086是一个16位的结构,采用分段管理办法可形成超过16位的存储器物理地址,扩大对存储器的寻址范围(1MB,20位地址)。

这两个地址都是16位的,将这两个地址采用相加的方式组成20位地址去访问存储器。在8086系统的地址形成中,当段地址确定后,该段的寻址范围就已经确定,其容量不大于64KB。同时,通过修改段寄存器内容,可达到逻辑段在整个1MB存储空间中浮动。

扩展祥昌资料:

8086处理器的时钟频率介于4.77MHz(在原先的IBM PC频率)和10 MHz之间。8086 没有包含浮点指令部分(FPU),但是可以通过外接数学辅谨改扒助处理器来增强浮点计算能力。Intel 8087 是标准版本。

分歼培段管理是管理若干分段组成的作业,且按分段来进行存储分配。实现分段管理的关键在于,如何保证分段(二维)地址空间中的一个作业在线性(一维)的存储空间中正确运行。也就是说,如何把分段地址结构变换成线性的地址结构。

热点内容
破解访问权限 发布:2025-02-10 07:17:24 浏览:663
庆余年密码多少 发布:2025-02-10 07:16:38 浏览:201
ftp包括有哪两个连接 发布:2025-02-10 07:11:50 浏览:423
压缩模量es 发布:2025-02-10 07:11:47 浏览:115
鸡尾酒配置酒什么意思 发布:2025-02-10 07:01:34 浏览:139
c语言的架构设计 发布:2025-02-10 06:59:59 浏览:747
柯南可以缓存 发布:2025-02-10 06:59:52 浏览:422
电脑做安卓系统哪个好用 发布:2025-02-10 06:27:44 浏览:372
linux转换字符集 发布:2025-02-10 06:20:05 浏览:483
网站的服务器ip有什么用 发布:2025-02-10 06:15:53 浏览:701