页式存储管理的特点
❶ 页式存储管理和段式存储管理的区别
段式与页式存储管理的比较如下表所示。
段式
页式
分段由用户设计划分,每段对应一个相应的的程序模块,有完整的逻辑意义。
分页用户看不见,由操作系统为内存管理划分。
段面是信息的逻辑单位
页面是信息的物理单位
便于段的共享,执行时按需动态链接装入。
页一般不能共享
段长不等,可动态增长,有利于新数据增长。
页面大小相同,位置不能动态增长。
二维地址空间:段名、段中地址;段号、段内单元号
一维地址空间
管理形式上象页式,但概念不同
往往需要多次缺页中断才能把所需信息完整地调入内存
实现页(段)的共享是指某些作业的逻辑页号(段号)对应同一物理页号(内存中该段的起始地址)。页(段)的保护往往需要对共享的页面(段)加上某种访问权限的限制,如不能修改等;或设置地址越界检查,对于页内地址(段内地址)大于页长(段长)的存取,产生保护中断。
❷ 在页式系统中,用户程序中的页面大小可以不同是对的吗
存储管理的基本原理内存管理方法 内存管理主要包括内存分配和回收、地址变换、内存扩充、内存共享和保护等功能。 下面主要介绍连续分配存储管理、覆盖与交换技术以及页式与段式存储管理等基本概念和原理。 1. 连续分配存储管理方式 连续分配是指为一个用户程序分配连续的内存空间。连续分配有单一连续存储管理和分区式储管理两种方式。 (1)单一连续存储管理 在这种管理方式中,内存被分为两个区域:系统区和用户区。应用程序装入到用户区,可使用用户区全部空间。其特点是,最简单,适用于单用户、单任务的操作系统。CP/M和DOS 2.0以下就是采用此种方式。这种方式的最大优点就是易于管理。但也存在着一些问题和不足之处,例如对要求内存空间少的程序,造成内存浪费;程序全部装入,使得很少使用的程序部分也占用-定数量的内存。 (2)分区式存储管理 为了支持多道程序系统和分时系统,支持多个程序并发执行,引入了分区式存储管理。分区式存储管理是把内存分为一些大小相等或不等的分区,操作系统占用其中一个分区,其余的分区由应用程序使用,每个应用程序占用一个或几个分区。分区式存储管理虽然可以支持并发,但难以进行内存分区的共享。 分区式存储管理引人了两个新的问题:内碎片和外碎片。前者是占用分区内未被利用的空间,后者是占用分区之间难以利用的空闲分区(通常是小空闲分区)。为实现分区式存储管理,操作系统应维护的数据结构为分区表或分区链表。表中各表项一般包括每个分区的起始地址、大小及状态(是否已分配)。 分区式存储管理常采用的一项技术就是内存紧缩(compaction):将各个占用分区向内存一端移动,然后将各个空闲分区合并成为一个空闲分区。这种技术在提供了某种程度上的灵活性的同时,也存在着一些弊端,例如:对占用分区进行内存数据搬移占用CPU~t寸间;如果对占用分区中的程序进行“浮动”,则其重定位需要硬件支持。 1)固定分区(nxedpartitioning)。 固定式分区的特点是把内存划分为若干个固定大小的连续分区。分区大小可以相等:这种作法只适合于多个相同程序的并发执行(处理多个类型相同的对象)。分区大小也可以不等:有多个小分区、适量的中等分区以及少量的大分区。根据程序的大小,分配当前空闲的、适当大小的分区。这种技术的优点在于,易于实现,开销小。缺点主要有两个:内碎片造成浪费;分区总数固定,限制了并发执行的程序数目。 2)动态分区(dynamic partitioning)。 动态分区的特点是动态创建分区:在装入程序时按其初始要求分配,或在其执行过程中通过系统调用进行分配或改变分区大小。与固定分区相比较其优点是:没有内碎片。但它却引入了另一种碎片--外碎片。动态分区的分区分配就是寻找某个空闲分区,其大小需大于或等于程序的要求。若是大于要求,则将该分区分割成两个分区,其中一个分区为要求的大小并标记为“占用”,而另一个分区为余下部分并标记为“空闲”。分区分配的先后次序通常是从内存低端到高端。动态分区的分区释放过程中有一个要注意的问题是,将相邻的空闲分区合并成一个大的空闲分区。 下面列出了几种常用的分区分配算法: 首先适配法(nrst-fit):按分区在内存的先后次序从头查找,找到符合要求的第一个分区进行分配。该算法的分配和释放的时间性能较好,较大的空闲分区可以被保留在内存高端。但随着低端分区不断划分会产生较多小分区,每次分配时查找时间开销便会增大。 下次适配法(next-fit):按分区在内存的先后次序,从上次分配的分区起查找(到最后{区时再从头开始},找到符合要求的第一个分区进行分配。该算法的分配和释放的时间性能较好,使空闲分区分布得更均匀,但较大空闲分区不易保留。 最佳适配法(best-fit):按分区在内存的先后次序从头查找,找到其大小与要求相差最小的空闲分区进行分配。从个别来看,外碎片较小;但从整体来看,会形成较多外碎片优点是较大的空闲分区可以被保留。 最坏适配法(worst- fit):按分区在内存的先后次序从头查找,找到最大的空闲分区进行分配。基本不留下小空闲分区,不易形成外碎片。但由于较大的空闲分区不被保留,当对内存需求较大的进程需要运行时,其要求不易被满足。 2.覆盖和交换技术 引入覆盖(overlay)技术的目标是在较小的可用内存中运行较大的程序。这种技术常用于多道程序系统之中,与分区式存储管理配合使用。覆盖技术的原理很简单,一个程序的几个代码段或数据段,按照时间先后来占用公共的内存空间。将程序必要部分(常用功能)的代码和数据常驻内存;可选部分(不常用功能)平时存放在外存(覆盖文件)中,在需要时才装入内存。不存在调用关系的模块不必同时装入到内存,从而可以相互覆盖。覆盖技术的缺点是编程时必须划分程序模块和确定程序模块之间的覆盖关系,增加编程复杂度;从外存装入覆盖文件,以时间延长换取空间节省。覆盖的实现方式有两种:以函数库方式实现或操作系统支持。 交换(swapping)技术在多个程序并发执行时,可以将暂时不能执行的程序送到外存中,从而获得空闲内存空间来装入新程序,或读人保存在外存中而处于就绪状态的程序。交换单位为整个进程的地址空间。交换技术常用于多道程序系统或小型分时系统中,与分区式存储管理配合使用又称作“对换”或“滚进/滚出”(roll-in/roll-out)。其优点之一是增加并发运行的程序数目,并给用户提供适当的响应时间;与覆盖技术相比交换技术另一个显着的优点是不影响程序结构。交换技术本身也存在着不足,例如:对换人和换出的控制增加处理器开销;程序整个地址空间都进行对换,没有考虑执行过程中地址访问的统计特性。 3.页式和段式存储管理 在前面的几种存储管理方法中,为进程分配的空间是连续的,使用的地址都是物理地址。如果允许将一个进程分散到许多不连续的空间,就可以避免内存紧缩,减少碎片。基于这一思想,通过引入进程的逻辑地址,把进程地址空间与实际存储空间分离,增加存储管理的灵活性。地址空间和存储空间两个基本概念的定义如下: 地址空间:将源程序经过编译后得到的目标程序,存在于它所限定的地址范围内,这个范围称为地址空间。地址空间是逻辑地址的集合。 存储空间:指主存中一系列存储信息的物理单元的集合,这些单元的编号称为物理地址存储空间是物理地址的集合。 根据分配时所采用的基本单位不同,可将离散分配的管理方式分为以下三种 段式存储管理和段页式存储管理。其中段页式存储管理是前两种结合的产物。 (1)页式存储管理 1)基本原理。将程序的逻辑地址空间划分为固定大小的页(page),而物理内存划分为同样大小的页框(pageframe)。程序加载时,可将任意一页放人内存中任意一个页框,这些页框不必连续,从而实现了离散分配。该方法需要CPU的硬件支持,来实现逻辑地址和物理地址之间的映射。在页式存储管理方式中地址结构由两部构成,前一部分是页号,后一部分为页内地址,如图4-2所示。 这种管理方式的优点是,没有外碎片,每个内碎片不超过页大比前面所讨论的几种管理方式的最大进步是,一个程序不必连续存放。这样就便于改变程序占用空间的大小(主要指随着程序运行,动态生成的数据增多,所要求的地址空间相应增长)。缺点是仍旧要求程序全部装入内存,没有足够的内存,程序就不能执行。 2)页式管理的数据结构。在页式系统中进程建立时,操作系统为进程中所有的页分配页框。当进程撤销时收回所有分配给它的页框。在程序的运行期间,如果允许进程动态地申请空间,操作系统还要为进程申请的空间分配物理页框。操作系统为了完成这些功能,必须记录系统内存中 实际的页框使用情况。操作系统还要在进程切换时,正确地切换两个不同的进程地址空间到物理内存空间的映射。这就要求操作系统要记录每个进程页表的相关信息。为了完成上述的功能,-个页式系统中,一般要采用如下的数据结构。 进程页表:完成逻辑页号(本进程的地址空间)到物理页面号(实际内存空间)的映射。 每个进程有一个页表,描述该进程占用的物理页面及逻辑排列顺序。 物理页面表:整个系统有一个物理页面表,描述物理内存空间的分配使用状况,其数据结构可采用位示图和空闲页链表。 请求表:整个系统有一个请求表,描述系统内各个进程页表的位置和大小,用于地址转换也可以结合到各进程的PCB(进程控制块)里。 3)页式管理地址变换 在页式系统中,指令所给出的地址分为两部分:逻辑页号和页内地址。CPU中的内存管理单元(MMU)按逻辑页号通过查进程页表得到物理页框号,将物理页框号与页内地址相加形成物理地址(见图4-3)。上述过程通常由处理器的硬件直接完成,不需要软件参与。通常,操作系统只需在进程切换时,把进程页表的首地址装入处理器特定的寄存器中即可。一般来说,页表存储在主存之中。这样处理器每访问一个在内存中的操作数,就要访问两次内存。第一次用来查找页表将操作数的逻辑地址变换为物理地址;第二次完成真正的读写操作。这样做时间上耗费严重。为缩短查找时间,可以将页表从内存装入CPU内部的关联存储器(例如,快表)中,实现按内容查找。此时的地址变换过程是:在CPU给出有效地址后,由地址变换机构自动将页号送人快表,并将此页号与快表中的所有页号进行比较,而且这种比较是同时进行的。若其中有与此相匹配的页号,表示要访问的页的页表项在快表中。于是可直接读出该页所对应的物理页号,这样就无需访问内存中的页表。由于关联存储器的访问速度比内存的访问速度快得多。 (2)段式存储管理 1)基本原理。 在段式存储管理中,将程序的地址空间划分为若干个段(segment),这样每个进程有一个二维的地址空间。在前面所介绍的动态分区分配方式中,系统为整个进程分配一个连续的内存空间。而在段式存储管理系统中,则为每个段分配一个连续的分区,而进程中的各个段可以不连续地存放在内存的不同分区中。程序加载时,操作系统为所有段分配其所需内存,这些段不必连续,物理内存的管理采用动态分区的管理方法。在为某个段分配物理内存时,可以采用首先适配法、下次适配法、最佳适配法等方法。在回收某个段所占用的空间时,要注意将收回的空间与其相邻的空间合并。段式存储管理也需要硬件支持,实现逻辑地址到物理地址的映射。程序通过分段划分为多个模块,如代码段、数据段、共享段。这样做的优点是:可以分别编写和编译源程序的一个文件,并且可以针对不同类型的段采取不同的保护,也可以按段为单位来进行共享。总的来说,段式存储管理的优点是:没有内碎片,外碎片可以通过内存紧缩来消除;便于实现内存共享。缺点与页式存储管理的缺点相同,进程必须全部装入内存。 2)段式管理的数据结构。 为了实现段式管理,操作系统需要如下的数据结构来实现进程的地址空间到物理内存空间的映射,并跟踪物理内存的使用情况,以便在装入新的段的时候,合理地分配内存空间。 ·进程段表:描述组成进程地址空间的各段,可以是指向系统段表中表项的索引。每段有段基址(baseaddress)。 ·系统段表:系统所有占用段。 ·空闲段表:内存中所有空闲段,可以结合到系统段表中。 3)段式管理的地址变换。 在段式管理系统中,整个进程的地址空间是二维的,即其逻辑地址由段号和段内地址两部分组成。为了完成进程逻辑地址到物理地址的映射,处理器会查找内存中的段表,由段号得到段的首地址,加上段内地址,得到实际的物理地址(见图4-4)。这个过程也是由处理器的硬件直接完成的,操作系统只需在进程切换时,将进程段表的首地址装入处理器的特定寄存器当中。这个寄存器一般被称作段表地址寄存器。 4.页式和段式系统的区别 页式和段式系统有许多相似之处。比如,两者都采用离散分配方式,且都通过地址映射机构来实现地址变换。但概念上两者也有很多区别,主要表现在: ·页是信息的物理单位,分页是为了实现离散分配方式,以减少内存的外零头,提高内存的利用率。或者说,分页仅仅是由于系统管理的需要,而不是用户的需要。段是信息的逻辑单位,它含有一组其意义相对完整的信息。分段的目的是为了更好地满足用户的需要。 ·页的大小固定且由系统决定,把逻辑地址划分为页号和页内地址两部分,是由机器硬件实现的。段的长度不固定,且决定于用户所编写的程序,通常由编译系统在对源程序进行编译时根据信息的性质来划分。 ·页式系统地址空间是一维的,即单一的线性地址空间,程序员只需利用一个标识符,即可表示一个地址。分段的作业地址空间是二维的,程序员在标识一个地址时,既需给出段名,又需给出段内地址。 原理作业10. 页式存储管理和段式存储管理的工作原理特点、特点 及优劣。 答:页式管理的基本思想是:为了更好地利用分区存储管理中 所产生的"零头"问题,允许把一个作业存放在不连续的内存块中, 又可以连续运行,它允许只调入用户作业中常用部分,不常用部分 不长期驻留内存,有效提高了内存的利用率。 页式存储管理的工作原理: A、划分实页:将物理内存划分成位置固定、大小相同的"块"(实页 面)。 B、划分虚页:将用户逻辑地址空间也分成同样大小的页面,成为虚 拟空间的虚页面。 C、建立页表:有时称为页面表或页面映射表(PMT)。每个作业一 张,按虚页号进行登记,其基本的内容有特征位(表示该页是否 在内存、实页号以及对应外存的地址。 D、地址变换:将虚页面的逻辑地址转化为实页面的物理地址,在程 序执行时改变为物理地址,属于作业的动态重定位,一般由地址 转换机构(硬件)完成。 特点: 允许一个作业存放在不连续的内存块中而又能保证作业连续得以运行 ,既不需要移动内存中的信息,又可较好地解决零头。 优点: a、不要求作业存放在连续的内存块中,有效地解决零头。 b、允许用户作业不是一次集中装入内存而是根据需要调入,作业中 不常用部分不长期驻留内存,而本次运行的不用部分根本就不装 入内存。 c、提供了虚存,使用户作业地址空间不再受内存可用空间大小的限 制。 缺点: a、页式管理在内存的共享和保护方面还欠完善。 b、页面大小相同,位置不能动态增加。 c、往往需要多次缺页中断才能把所需的信息完整地调入内存。 段式存储管理的基本思想是:把程序按内容或过程(函数)关系 分成段,每段有自己的名字。一个用户作业或进程所包含的段对应于 一个二维线性虚拟空间,也就是一个二维虚拟存储器。段式管理程序 以段为单位分配内存,然后通过地址映射机构把段式虚拟存储地址转 化为内存中的实际地址。和页式管理一样,段式管理也采用只把那些 经常访问的段驻留内存,而把那些在将来一段时间内不被访问的段放 在外存,待需要时自动调入内存的方法实现二维虚拟存储器。按照作 业的逻辑单位--段,来分配内存,适合程序的逻辑结构,方便用户设 计程序。 段式存储管理的工作原理: A、采用二维地址空间,如段号(S)、页号(P)和页内单元号(D); B、系统建两张表格每一作业一张段表,每一段建立一张页表,段表 指出该段的页表在内存中的位置; C、地址变换机构类似页式机制,只是前面增加一项段号。 特点: a、每一段分成若干页,再按页式管理,页间不要求连续; b、用分段方法分配管理作业,用分页方法分配管理内存; 优点: 便于段的共享和保护、段的动态增长以及动态连接。 缺点: 为了消除零头和允许段的动态增长,需要花费CPU的大量时间在内存 中移动作业的分段,而且段的大小也给外存管理带来困难。
❸ 操作系统中的分区存储管理和分页存储管理的优点和缺点各是什么
一、分区存储管理
1、固定分区:
优点:易于实现、开销小
缺点:存在内部碎片(分区内未被利用空间)、分区总数固定,限制了并发执行的程序数量。
2、动态创建分区:按照程序申请要求分配。
优点: 没有内部碎片
缺点:有外部碎片(难以利用的小空闲分区)
二、页式存储管理
优点: 没有外部碎片,最后一页可能有内碎片但不大; 程序不必连续存放;便于改变程序占用空间大小。
缺点: 程序仍需要全部装入内存。
❹ 页式存储管理和段式存储管理的区别是什么
内存管理主要包括内存分配和回收、地址变换、内存扩充、内存共享和保护等功能。
下面主要介绍连续分配存储管理、覆盖与交换技术以及页式与段式存储管理等基本概念和原理。
1.连续分配存储管理方式
连续分配是指为一个用户程序分配连续的内存空间。连续分配有单一连续存储管理和分区式储管理两种方式。
(1)单一连续存储管理
在这种管理方式 中,内存被分为两个区域:系统区和用户区。应用程序装入到用户区,可使用用户区全部空间。其特点是,最简单,适用于单用户、单任务的操作系统。CP/M和 DOS 2.0以下就是采用此种方式。这种方式的最
❺ 简述段式存储管理技术和页式存储管理技术的不同之处
存储管理的基本原理
内存管理方法
内存管理主要包括内存分配和回收、地址变换、内存扩充、内存共享和保护等功能。
下面主要介绍连续分配存储管理、覆盖与交换技术以及页式与段式存储管理等基本概念和原理。
1.连续分配存储管理方式
连续分配是指为一个用户程序分配连续的内存空间。连续分配有单一连续存储管理和分区式储管理两种方式。
(1)单一连续存储管理
在这种管理方式 中,内存被分为两个区域:系统区和用户区。应用程序装入到用户区,可使用用户区全部空间。其特点是,最简单,适用于单用户、单任务的操作系统。CP/M和 DOS 2.0以下就是采用此种方式。这种方式的最
❻ 帮帮我 页式存储和段式存储的定义和为什么要这些功能
页式存储分配
页式存储分配是基于这样一种概念,把到来的作业分成相等大小的页。一些操作系统选择页的大小,是根据存储块的大小和作业所存储的磁盘的一些区域的大小来分配的,一般它们是相等的。
磁盘上的一些区域叫做扇区(或者有时候叫块),主存中的这些区域叫做页面。当页面、扇区和主存中的页面都一样大小的时候,上述策略可以很有效的工作。页面的精确大小(每个页面所存储的字节数)通常由磁盘扇区的大小来决定。所以,一个扇区将保存一页作业指令,和内存的一个页面相匹配。
在执行一个程序之前,内存管理器需要的准备工作:
1. 确定程序的页数
2. 在主存中留出足够的空闲页面
3. 将程序的所有页面载入主存里。(静态的分页,页面无需连续)
当程序准备好载入,其页面是一个逻辑序列——第一页保存了程序的第一部分指令,最后一页是最后的一部分指令。为此我们可以假设程序的指令是一行一行的代码,也可以想象成是一些字节。
载入的过程和我们在第二章所学习到的策略是不同的,这是因为页面不用保存在相邻的存储块。实际上,每一页可以保存在主存页面的任何有效的位置(Madnick& Donovan,1974)。
不连续存储方法的首要优点是主存可以更有效的使用,因为一个空闲页面可以被任何作业的任何页使用。另外,用于重新定位的压缩策略可以被消除了,因为页面之间没有外部碎片了。(在很多页中也没有内部碎片)
然而,新的方法会带来新的问题。因为一个作业的页可以保存在主存的任何位置,内存管理需要一个机制来保存它们的情况——这意味着必须增加操作系统软件的大小和复杂度,也就是增加了开支。
段式存储分配
分段的概念是建立在最通常被程序员结构化他们的程序所用的模块的基础上的——逻辑上的一组代码。用段式存储分配方法,每一个作业被分为很多个不同尺寸的段,每一个模块都包含很多相关的功能。一个子分支程序就是这样一个逻辑组的例子。这是和分页策略的本质上的不同,分页策略把作业分成了很多页,都是一样的尺寸,都包含了程序模块的一些部分。
第二个重要的不同是主存不需要再分成页面了,因为每个段的大小都不一样——有的大,有的小。所以,和第二章中讨论的动态分区一样,内存也是动态模式下分配的。
当一个程序被编译后,段就根据程序的结构模块所建立起来。每一个段都编了号并且生成了一个段映射表(SMT);它包含了段序号,它的长度,访问权限,状态和(如果在内存中)内存中的位置。图3-11和图3-12给出了同一个作业,作业1,有一个主程序和两个分支程序组成,还有它的段映射表和实际的主存分配。
就像请求页式一样,引用,分段里也使用页修改和状态位,但是图3-11和图3-12没有给出。
内存管理器需要跟踪段在内存中的情况。这是通过将动态分区和请求页式存储管理都有的3个表格的合并来实现的:
1. 作业表,列出了处理的每一个作业(整个系统一个表)
2. 段映射表列出了每个段的具体情况(每个作业一个表)
3. 内存映射表监视了主存的分配情况(整个系统一个表)
就像请求页式,每个段中的指令顺序排列,但是在内存中段不用连续存储。我们只要知道每个段保存在哪里了。每一个段里的内容是连续的。
http://teach.ycit.cn:8070/kj/jsj/jsjczxt/main/study/xx/kcxx-3-4.htm
http://teach.ycit.cn:8070/kj/jsj/jsjczxt/main/study/xx/kcxx-3-1.htm
上面有更为详细的解释和图例
❼ 内存管理页式管理和段式管理、段页式管理的区别
一 页式管理
1 页式管理的基本原理将各进程的虚拟空间划分成若干个长度相等的页(page),页式管理把内存空间按页的大小划分成片或者页面(page frame),然后把页式虚拟地址与内存地址建立一一对应页表,并用相应的硬件地址变换机构,来解决离散地址变换问题。页式管理采用请求调页或预调页技术实现了内外存存储器的统一管理。
它分为
1 静态页式管理。静态分页管理的第一步是为要求内存的作业或进程分配足够的页面。系统通过存储页面表、请求表以及页表来完成内存的分配工作。静态页式管理解决了分区管理时的碎片问题。但是,由于静态页式管理要求进程或作业在执行前全部装入内存,如果可用页面数小于用户要求时,该作业或进程只好等待。而且作业和进程的大小仍受内存可用页面数的限制。
2 动态页式管理。动态页式管理是在静态页式管理的基础上发展起来的。它分为请求页式管理和预调入页式管理。
优点: 没有外碎片,每个内碎片不超过页大小。一个程序不必连续存放。便于改变程序占用空间的大小(主要指随着程序运行而动态生成的数据增多,要求地址空间相应增长,通常由系统调用完成而不是操作系统自动完成)。
缺点:程序全部装入内存。
要求有相应的硬件支持。例如地址变换机构,缺页中断的产生和选择淘汰页面等都要求有相应的硬件支持。这增加了机器成本。增加了系统开销,例如缺页中断处理机,请求调页的算法如选择不当,有可能产生抖动现象。 虽然消除了碎片,但每个作业或进程的最后一页内总有一部分空间得不到利用果页面较大,则这一部分的损失仍然较大。
二 段式管理的基本思想
把程序按内容或过程(函数)关系分成段,每段有自己的名字。一个用户作业或进程所包含的段对应一个二维线形虚拟空间,也就是一个二维虚拟存储器。段式管理程序以段为单位分配内存,然后通过地址影射机构把段式虚拟地址转换为实际内存物理地址。
程序通过分段(segmentation)划分为多个模块,如代码段、数据段、共享段。其优点是: 可以分别编写和编译。 可以针对不同类型的段采取不同的保护。 可以按段为单位来进行共享,包括通过动态链接进行代码共享。
三 段页式管理的实现原理
1 虚地址的构成
一个进程中所包含的具有独立逻辑功能的程序或数据仍被划分为段,并有各自的段号s。这反映相继承了段式管理的特征。其次,对于段s中的程序或数据,则按照一定的大小将其划分为不同的页。和页式系统一样,最后不足一页的部分仍占一页。这反映了段页式管理中的页式特征。从而,段页式管理时的进程的虚拟地址空间中的虚拟地址由三部分组成:即段号s,页号P和页内相对地址d。虚拟空间的最小单位是页而不是段,从而内存可用区也就被划分成为着干个大小相等的页面,且每段所拥有的程序和数据在内存中可以分开存放。分段的大小也不再受内存可用区的限制。
2 段表和页表
为了实现段页式管理,系统必须为每个作业或进程建立一张段表以管理内存分配与释放、缺段处理、存储保护相地址变换等。另外,由于一个段又被划分成了若干页,每个段又必须建立一张页表以把段中的虚页变换成内存中的实际页面。显然,与页式管理时相同,页表中也要有相应的实现缺页中断处理和页面保护等功能的表项。另外,由于在段页式管理中,页表不再是属于进程而是属于某个段,因此,段表中应有专项指出该段所对应页表的页表始址和页表长度。
3 动态地址变换过程
在一般使用段页式存储管理方式的计算机系统中,都在内存中辟出一块固定的区域存放进程的段表和页表。因此,在段页式管理系统中,要对内存中指令或数据进行一次存取的话,至少需要访问三次以上的内存:
第一次是由段表地址寄存器得段表始址后访问段表,由此取出对应段的页表在内存中的地址。
第二次则是访问页表得到所要访问的物理地址。
第三次才能访问真正需要访问的物理单元。
显然,这将使CPU的执行指令速度大大降低。为了提高地址转换速度,设置快速联想寄存器就显得比段式管理或页式管理时更加需要。在快速联想寄存器中,存放当前最常用的段号s、页号p和对应的内存页面与其它控制用栏目。当要访问内存空间某一单元时,可在通过段表、页表进行内存地址查找的同时,根据快速联想寄存器查找其段号和页号。如果所要访问的段或页在快速联想寄存器中,则系统不再访问内存中的段表、页表而直接把快速联想寄存器中的值与页内相对地址d拼接起来得到内存地址。
总之,因为段页式管理是段式管理的页式管理方案结合而成的,所以具有它们二者的优点。但反过来说,由于管理软件的增加,复杂性和开销也就随之增加了。另外,需要的硬件以及占用的内存也有所增加。更重要的是,如果不采用联想寄存器的方式提高CPU的访内速度,将会使得执行速度大大下降。
❽ 操作系统的内存分配一般有哪几种方式,各有什么优缺点
变长:内存时比较灵活,但是易产生内存碎片。
定长:灵活性差,但分配效率较高,不会产生内存碎片。