计算机操作系统_第4章(2016-2017-1)_第1页
计算机操作系统_第4章(2016-2017-1)_第2页
计算机操作系统_第4章(2016-2017-1)_第3页
计算机操作系统_第4章(2016-2017-1)_第4页
计算机操作系统_第4章(2016-2017-1)_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第四章存储器管理 第四章存储器管理 4.1 存储器的层次结构存储器的层次结构 4.2程序的装入和链接程序的装入和链接 4.3连续分配存储管理方式连续分配存储管理方式4.4对换对换(Swapping)4.5分页存储管理方式分页存储管理方式4.6分段存储管理方式、分段存储管理方式、第四章存储器管理 4.1 存储器的层次结构存储器的层次结构 4.1.1 多级存储器结构多级存储器结构存储层次至少应具有三级:最高层为CPU寄存器,中间为主存,最底层是辅存。 根据具体的功能分工可细为:寄存器、高速缓存、主存储器、磁盘缓存、固定磁盘、可移动存储介质等6层。 在存储层次中越往上,存储介质的访问速度越快,价格也

2、越高,相对存储容量也越小。第四章存储器管理 图图4-1 计算机系统存储层次示意计算机系统存储层次示意 寄存器高速缓存主存磁盘缓存磁盘可移动存储介质CPU寄存器主存辅存u寄存器、高速缓存、主存储器和磁盘缓存均属于操作系统存储管理的管辖范畴,掉电后它们存储的信息不再存在。固定磁盘和可移动存储介质属于设备管理的管辖范畴,它们存储的信息将被长期保存。u寄存器和主存储器称为可执行存储器uOS的存储管理负责对可执行存储器的分配、回收,以及数据移动的管理机制。第四章存储器管理 4.1.2 主存储器与寄存器主存储器与寄存器1 1主存储器主存储器 简称内存或主存,用于保存进程运行时的程序和数据。 CPU的控制部

3、件只能从主存储器中取得指令和数据,数据能够从主存储器读取并将它们装入到寄存器中,或者从寄存器存入到主存储器。 CPU与外围设备交换的信息一般也依托于主存储器地址空间。由于主存储器的访问速度远低于CPU执行指令的速度,为缓和这一矛盾,在计算机系统中引入了寄存器和高速缓存。 第四章存储器管理 2 2寄存器寄存器寄存器访问速度最快,完全能与CPU协调工作,但容量不大。寄存器的数目,对于当前的微机系统和大中型机,可能有几十个甚至上百个;而嵌入式计算机系统一般仅有几个到几十个。寄存器用于加速存储器的访问速度。寄存器的长度一般以字(word)为单位。4.1.2 主存储器与寄存器主存储器与寄存器第四章存储器

4、管理 1高速缓存高速缓存介于寄存器和存储器之间,主要用于备份主存中较常用的数据,以减少处理机对主存的访问次数。高速缓存的容量大于或远大于寄存器,访问速度快于主存储器。4.1.3 高速缓存和磁盘缓存高速缓存和磁盘缓存 根据程序执行的局部性原理(即程序在执行时将呈现出局部性规律,在一较短的时间内,程序的执行仅局限于某个部分),将主存中一些经常访问的信息存放在高速缓存中,减少访问主存储器的次数,可大幅度提高程序执行速度。第四章存储器管理 由于磁盘的I/O速度远低于对主存的访问速度,因此将频繁使用的一部分磁盘数据和信息,暂时存放在磁盘缓存中。4.1.3 高速缓存和磁盘缓存高速缓存和磁盘缓存2磁盘缓存磁

5、盘缓存 磁盘缓存本身并不是一种实际存在的存储介质,是利用主存中的存储空间,来暂存从磁盘中读出(或写入)的信息。主存也可以看做是辅存的高速缓存。 一个文件的数据可能出现在存储器层次的不同级别中。第四章存储器管理 4.2程序的装入和链接程序的装入和链接 将一个用户源程序变为内存中的一个可执行程序,通常有以下几个步骤:l 编译,由编译程序(Compiler)将用户源代码编译成若干个目标模块(Object Module);l 链接,由链接程序(Linker)将编译后形成的一组目标模块,以及它们所需要的库函数链接在一起,形成一个完整的装入模块(Load Module);l 装入,由装入程序(Loader

6、)将装入模块装入内存。第四章存储器管理 图4-2对用户程序的处理步骤 库链接程序装入模块装入程序编译程序产生的目标模块第一步第二步第三步内存第四章存储器管理 1绝对装入方式绝对装入方式( (Absolute Loading Mode) )在编译时,编译程序产生绝对地址的目标代码。绝对装入程序按照装入模块中的地址,将程序和数据装入内存。这时,逻辑地址与实际内存地址完全相同。 4.2.1程序的装入程序的装入 程序中所使用的绝对地址,既可在编译或汇编时给出,也可由程序员直接赋予。绝对装入方式只适用于单道程序环境。第四章存储器管理 2可重定位装入方式可重定位装入方式(Relocation Loadin

7、g Mode) 根据内存的当前情况,将装入模块装入到内存的适当位置。 4.2.1程序的装入程序的装入LOAD 1,2500365LOAD 1,2500365100001100012500150005000250010000作业地址空间内存空间第四章存储器管理 3动态运行时装入方式动态运行时装入方式( (Dynamic Run-time Loading) )可重定位装入方式不允许程序运行时在内存中移动位置。然而,程序在运行过程中,它在内存中的位置可能经常要改变,此时就应采用动态运行时装入的方式。 4.2.1程序的装入程序的装入 动态运行时的装入程序在把装入模块装入内存后,并不立即把装入模块中的逻

8、辑地址转换为物理地址,而是把这种地址转换推迟到程序真正要执行时才进行。第四章存储器管理 4.2.2程序的链接程序的链接根据链接时间的不同,可把链接分成如下三种: (1)静态链接。在程序运行之前,先将各目标模块及它们所需的库函数,链接成一个完整的装配模块。 (2)装入时动态链接。一组目标模块在装入内存时,采用边装入边链接的链接方式。 (3) 运行时动态链接。对某些目标模块的链接,是在程序执行中需要该(目标)模块时,才对它进行的链接。 源程序经过编译后得到一组目标模块。链接程序将这组目标模块以及它们所需要的库函数装配成一个完整的装入模块。第四章存储器管理 1静态链接方式静态链接方式(Static

9、Linking)(1)对相对地址进行修改。在由编译程序所产生的所有目标模块中,使用的都是相对地址,其起始地址都为0,每个模块中的地址都是相对于起始地址计算的。4.2.2程序的链接程序的链接 (2) 变换外部调用符号。将每个模块中所用的外部调用符号变换为相对地址。这种先进行链接所形成的一个完整的装入模块,又称为可执行文件。通常都不再拆开它,要运行时可直接将它装入内存。这种事先进行链接,以后不再拆开的链接方式,称为静态链接方式。 第四章存储器管理 图 4-4程序链接示意图 模块 ACALL B;Return;0L-1模块 BCALL C;Return;0M-1模块 CReturn;0N-10模块

10、AJSR“L”Return;L-1模块 BJSR“LM”Return;LL+M-1L+ML+M+N-1模块 CReturn;(a) 目标模块(b) 装入模块1静态链接方式静态链接方式(Static Linking)第四章存储器管理 2装入时动态链接装入时动态链接(Load-time Dynamic Linking)用户源程序经编译后所得的目标模块,是在装入内存时边装入边链接的,即在装入一个目标模块时,若发生一个外部模块调用事件,将引起装入程序去找出相应的外部目标模块,并将它装入内存,同时修改目标模块中的相对地址。4.2.2程序的链接程序的链接第四章存储器管理 3运行时动态链接运行时动态链接(R

11、un-time Dynamic Linking)这种链接方式是将对某些模块的链接推迟到程序执行时才进行链接,亦即,在执行过程中,当发现一个被调用模块尚未装入内存时,立即由OS去找到该模块并将之装入内存,把它链接到调用者模块上。凡在执行过程中未被用到的目标模块,都不会被调入内存和被链接到装入模块上,这样不仅可加快程序的装入过程,而且可节省大量的内存空间。4.2.2程序的链接程序的链接第四章存储器管理 4.3连续分配方式连续分配方式 4.3.1单一连续分配单一连续分配用于单用户、单任务的操作系统中。这种存储管理方式把内存分为系统区和用户区两部分,系统区仅提供给OS使用,通常是放在内存的低址部分;用

12、户区是指除系统区以外的全部内存空间,提供给用户使用。 连续分配方式是最早出现的一种存储器分配方式。该分配方式为一个用户程序分配一个连续的内存空间,即程序中代码或数据的逻辑地址相邻。第四章存储器管理 4.3.2固定分区分配固定分区分配 将整个用户空间划分为若干个固定大小的区域。1 1划分分区的方法划分分区的方法 (1) 分区大小相等,即使所有的内存分区大小相等。(2) 分区大小不等。把内存区划分成含有多个较小的分区、适量的中等分区及少量的大分区。这样,便可根据程序的大小为之分配适当的分区。 第四章存储器管理 2内存分配内存分配通常将分区按大小进行排队,并为之建立一张分区使用表,其中各表项包括每个

13、分区的起始地址、大小及状态。当有一用户程序要装入时,由内存分配程序检索该表,从中找出一个能满足要求的、尚未分配的分区,将之分配给该程序,然后将该表项中的状态置为“已分配”;若未找到大小足够的分区,则拒绝为该用户程序分配内存。4.3.2固定分区分配固定分区分配第四章存储器管理 图 4-5固定分区使用表 操作系统作业A作业B作业C24 KB32 KB64 KB128 KB256 KB分区号大小/KB起址/KB状态11220已分配23232已分配36464已分配4128128未分配(b) 存储空间分配情况(a) 分区说明表第四章存储器管理 4.3.3动态分区分配动态分区分配动态分区分配是根据进程的实

14、际需要,动态地为之分配内存空间。1分区分配中的数据结构分区分配中的数据结构前向指针0N个字节可用后向指针0N+2N+2常用的分区分配数据结构:(1)空闲分区表(2)空闲分区链 在每个分区的起始部分设置一些控制分区分配的信息,以及链接各分区的前向、后向指针。第四章存储器管理 3分区分配操作分区分配操作从头开始查表检索完否?m.sizeu.size?m.size-u.sizesize?从该分区中划出u.size大小的分区将该分区分配给请求者修改有关数据结构返回返回继续检索下一个表项将该分区从链中移出YNNYYN1) 分配分配内存内存第四章存储器管理 2) 回收内存回收内存 当进程运行完毕释放内存时

15、,系统根据回收区的首址,从空闲区链(表)中找到相应的插入点,此时可能出现以下四种情况之一:回收区与插入点的前一个空闲分区F1相邻接; 回收分区与插入点的后一空闲分区F2相邻接;回收区同时与插入点的前、后两个分区邻接; (1)回收区既不与F1邻接,又不与F2邻接。 3分区分配操作分区分配操作第四章存储器管理 图 4-8内存回收时的情况 第四章存储器管理 4.3.4基于顺序搜索的动态分区分配算法基于顺序搜索的动态分区分配算法 顺序搜索指依次搜索空闲分区链上的空闲分区,去寻找一个其大小能满足要求的分区。 基于顺序搜索的动态分区分配算法有:首次适应算法、循环首次适应算法、最佳适应算法和最坏适应算法。第

16、四章存储器管理 FF算法要求空闲分区链以地址递增的次序链接。在分配内存时,从链首开始顺序查找,直至找到一个大小能满足要求的空闲分区为止;然后再按照作业的大小,从该分区中划出一块内存空间分配给请求者,余下的空闲分区仍留在空闲链中。若从链首直至链尾都不能找到一个能满足要求的分区,则此次内存分配失败,返回。1.首次适应首次适应(first fit,FF)算法算法4.3.4基于顺序搜索的动态分区分配算法基于顺序搜索的动态分区分配算法第四章存储器管理 在为进程分配内存空间时,不再是每次都从链首开始查找,而是从上次找到的空闲分区的下一个空闲分区开始查找,直至找到一个能满足要求的空闲分区,从中划出一块与请求

17、大小相等的内存空间分配给作业。该算法应设置一起始查寻指针,用于指示下一次起始查寻的空闲分区,并采用循环查找方式。 2. 循环首次适应循环首次适应(next fit ,NF)算法算法4.3.4基于顺序搜索的动态分区分配算法基于顺序搜索的动态分区分配算法第四章存储器管理 每次为作业分配内存时,总是把能满足要求、又是最小的空闲分区分配给作业。为了加速寻找,该算法要求将所有的空闲分区按其容量以从小到大的顺序形成一空闲分区链。4.3.4基于顺序搜索的动态分区分配算法基于顺序搜索的动态分区分配算法3.最佳适应最佳适应 (best fit ,BF)算法算法第四章存储器管理 该算法扫描整个空闲分区表或链表,总

18、是挑选一个最大的空闲区分割给作业使用,要求将所有的空闲分区按其容量以从大到小的顺序形成一空闲分区链,查找时只要看第一个分区能否满足作业要求。4.3.4基于顺序搜索的动态分区分配算法基于顺序搜索的动态分区分配算法4. 最坏适应最坏适应(worst fit ,WF)算法算法第四章存储器管理 1. 快速适应快速适应(quick fit)算法算法 该算法又称为分类搜索法,是将空闲分区根据其容量大小进行分类,对于每一类具有相同容量的所有空闲分区,单独设立一个空闲分区链表,同时在内存中设立一张管理索引表,该表的每一个表项对应了一种空闲分区类型,并记录了该类型空闲分区链表表头的指针。4.3.5基于索引搜索的

19、动态分区分配算法基于索引搜索的动态分区分配算法 系统根据进程的长度,寻找到能容纳它的最小空闲区链表,并取下第一块进行分配即可。第四章存储器管理 该算法规定:无论已分配分区或空闲分区,其大小均为2的k次幂(k为整数),2m表示分配的最大分区的大小,通常是整个可分配内存的大小。 4.3.5基于索引搜索的动态分区分配算法基于索引搜索的动态分区分配算法2.伙伴系统伙伴系统 假设系统的可利用空间容量为2m个字,则系统开始运行时,整个内存区是一个大小为2m的空闲分区。 当需要为进程分配一个长度为n的存储空间时,首先计算一个i值,使2i1n2i,然后在空闲分区大小为2i的空闲分区链表中查找。若找到,即把该空

20、闲分区分配给进程。第四章存储器管理 否则,则在分区大小为2i1的空闲分区链表中寻找。若存在2i1的一个空闲分区,则把该空闲分区分为相等的两个分区,其中的一个分区用于分配,而把另一个加入分区大小为2i的空闲分区链表中。若大小为2i1的空闲分区也不存在,则需要查找大小为2i2的空闲分区,若找到,则对其进行两次分割:第一次,将其分割为大小为2i1的两个分区,一个用于分配,一个加入到大小为2i1的空闲分区链表中;第二次,将第一次用于分配的空闲区分割为2i的两个分区,一个用于分配,一个加入到大小为2i的空闲分区链表中,以此类推。2.伙伴系统伙伴系统第四章存储器管理 3. 哈希算法哈希算法4.3.5基于索

21、引搜索的动态分区分配算法基于索引搜索的动态分区分配算法 该算法利用哈希快速查找的优点,以及空闲分区在可利用空间表中的分布规律,建立哈希函数,构造一张以空闲分区大小为关键字的哈希表,该表的每一个表项记录了一个对应的空闲分区链表表头指针。 当进行空闲分区分配时,根据所需空闲分区大小,通过哈希函数计算,即得到在哈希表中的位置,从中得到相应的空闲分区链表,实现最佳分配策略。 第四章存储器管理 4.3.6动态可重定位分区分配动态可重定位分区分配1. 紧凑紧凑操作系统用户程序1用户程序310 KB30 KB用户程序614 KB用户程序926 KB操作系统用户程序1用户程序3用户程序6用户程序980 KB(

22、a) 紧凑前(b) 紧凑后u紧凑:移动内存中作业的位置,以把原来多个分散的小分区拼接成一个大分区的方法。第四章存储器管理 地址变换过程是在程序执行期间,随着对每条指令或数据的访问自动进行的,故称为动态重定位。4.3.6动态可重定位分区分配动态可重定位分区分配2动态重定位的实现动态重定位的实现LOAD1,25003650100250050002500相对地址10000重定位寄存器LOAD1,250036510000101001250015000作业J处理机一侧存储器一侧主存图图 4-12动态动态重定位重定位示意图示意图 第四章存储器管理 3. 动态重定位分区分配算法动态重定位分区分配算法请求分配

23、u.size分区检索空闲分区链(表)找到大于u.size的可用区否?按动态分区方式进行分配修改有关的数据结构返回分区号及首批空闲分区总和u.size?进行紧凑形成连续空闲区修改有关的数据结构否是无法分配返回否图图4-13动态分区分配算法流程图动态分区分配算法流程图 第四章存储器管理 4.4对换对换(Swapping)4.4.1多道程序环境下的对换技术多道程序环境下的对换技术1.1.对换的引入对换的引入 所谓“对换”,是指把内存中暂时不能运行的进程或者暂时不用的程序和数据调出到外存上,以便腾出足够的内存空间,再把已具备运行条件的进程或进程所需要的程序和数据调入内存。对换是提高内存利用率的有效措施

24、。第四章存储器管理 (1)整体对换。以整个进程为单位的对换,这种对换被广泛地应用于分时系统中。 (2)页面(分段)对换。对换是以“页”或“段”为单位进行的,则分别称之为“页面对换”或“分段对换”。这种对换方法是为了支持虚拟存储系统。4.4.1多道程序环境下的对换技术多道程序环境下的对换技术2.2.对换的类型对换的类型 在每次对换时,是将一定数量的程序或数据换入或换出内存。第四章存储器管理 4.4.2对换空间的管理对换空间的管理 在具有对换功能的OS中,通常把外存分为文件区和对换区。前者用于存放文件,后者用于存放从内存换出的进程。文件区管理的主要目标是提高文件存储空间的利用率,对文件区采取离散分

25、配方式;对换空间管理的主要目标是提高进程换入和换出的速度,采取的是连续分配方式。 为了对对换区中的空闲盘块进行管理,在系统中配置有相应的数据结构,以记录外存的使用情况。其形式与内存在动态分区分配方式中所用数据结构相似。第四章存储器管理 1.1.进程的换出进程的换出 分两步,(1) 选择被换出的进程。选择处于阻塞状态或睡眠状态的进程,当有多个这样的进程时,选择优先级最低的进程作为换出进程。 4.4.3进程的换出与换入进程的换出与换入 (2) 进程换出过程。在选择换出进程后,只能换出非共享的程序和数据段。在进行换出时,先申请对换空间,若申请成功,启动磁盘,将该进程的程序和数据传送到磁盘的对换区上。

26、第四章存储器管理 系统定时查看所有进程的状态,从中找出“就绪”状态但已换出的进程,将其中换出时间最久(换出到磁盘上)的进程作为换入进程,将之换入,直至已无可换入的进程或无可换出的进程为止。 4.4.3进程的换出与换入进程的换出与换入2.2.进程的换入进程的换入第四章存储器管理 4.5分页存储管理方式分页存储管理方式 连续分配方式会形成“碎片”,因此提出了离散分配方式。该分配方式允许将一个进程直接分散地装入许多不相邻接的分区中,无须再进行“紧凑”。离散分配方式有三种:分页存储管理方式、分段存储管理方式、段页式存储管理方式。第四章存储器管理 4.5分页存储管理方式分页存储管理方式 1.1.页面和物

27、理块页面和物理块分页存储管理是将一个进程的逻辑地址空间分成若干个大小相等的片,称为页面或页。相应地,内存空间分成与页面相同大小的若干个存储块,称为(物理)块或页框(frame)。在为进程分配内存时,以块为单位将进程中的若干个页分别装入到多个可以不相邻接的物理块中。页面的大小选择适中,且页面大小是2的幂。4.5.1分页存储管理的基本办法分页存储管理的基本办法第四章存储器管理 4.5.1分页存储管理的基本办法分页存储管理的基本办法2. 地址结构地址结构 机器的地址结构是一定的。若给定一个逻辑地址空间中的地址为A,页面的大小为L,则页号P和页内地址d可按下式求得: AMODLdLAINTP第四章存储

28、器管理 3页表页表在分页系统中,将进程的各个页离散地存储在内存不同的物理块中,系统为每个进程建立了一张页面映像表,称页表。4.5.1分页存储管理的基本办法分页存储管理的基本办法用户程序0 页1 页2 页3 页4 页5 页n 页页表页号块号02132638495内存012345678910图图4-14页表的作用页表的作用 第四章存储器管理 进程在运行期间,采用硬件实现用户地址空间中的逻辑地址变换为内存中的物理地址。即,页表的功能由一组专门的寄存器来实现,页表大多驻留在内存中。在系统中只设置一个页表寄存器 PTR(Page-Table Register),其中存放着页表在内存的始址和页表的长度。进

29、程未执行时,页表的始址和页表长度存放在本进程的PCB中。当某进程被调度时,才将它们装入页表寄存器中。4.5.2地址变换机构地址变换机构u 基本任务:实现从逻辑地址到物理地址的转换,借助于页表完成。1. 基本的地址变换机构基本的地址变换机构第四章存储器管理 图图4-15分页系统的地址变换机构分页系统的地址变换机构 页表寄存器页表始址页表长度页号(3)页内地址逻辑地址L越界中断1块号b页表页号012物理地址3第四章存储器管理 2.2.具有快表的地址变换机构具有快表的地址变换机构为了提高地址变换速度,在地址变换机构中增设一个具有并行查寻能力的特殊高速缓冲寄存器,称为快表。4.5.2地址变换机构地址变

30、换机构页表寄存器页表始址页表长度页号页内地址逻辑地址L越界中断块号b页表页号页号输入寄存器块号bb快表d物理地址思考:访问内存的有效时间?思考:访问内存的有效时间?第四章存储器管理 非常大的逻辑地址空间产生非常大的页表,存储页表要占用相当大的内存空间,而且还要求是连续的。可以采用下述两个方法来解决:采用离散分配方式,以解决难以找到一块连续的大内存空间的问题;只将当前需要的部分页表项调入内存,其余的页表项仍驻留在磁盘上,需要时再调入。 4.5.4两级和多级页表两级和多级页表第四章存储器管理 4.5.4两级和多级页表两级和多级页表1. 两级页表两级页表(Two-Level Page Table)外

31、层页号外层页内地址页内地址P1P2d3122 2112 110 将大页表拆分成与内存物理块大小相同的若干个页面,然后离散地将各个页面分别存放在不同的物理块中。为离散分配的页表再建立一张外层页表,在每个页表项中记录了页表页面的物理页号。两级页表结构两级页表结构第四章存储器管理 图图4-18具有两级页具有两级页表的地址变换结构表的地址变换结构 101110780121742n第0页页表1460121023第1页页表114115011023外部页表012345671141151468第n页页存空间第四章存储器管理 图4-18具有两级页表的地址变换机构 外部页号P1P2外部页

32、内地址 页内地址d逻辑地址外部页表寄存器外部页表db页表页表物理地址第四章存储器管理 对于32位的机器,采用两级页表结构是合适的;但对于64位的机器,采用两级页表是否仍可适用的问题(自自行分析行分析)? 4.5.4两级和多级页表两级和多级页表2. 多级页表多级页表第四章存储器管理 4.6分段存储管理方式分段存储管理方式 1.方便编程方便编程 通常,用户把作业按照逻辑关系划分为若干个段。为了满足用户在编程和使用上的要求,提出分段管理方式4.6.1分段存储管理方式的引入分段存储管理方式的引入为什么要引入分段式存储管理方式?第四章存储器管理 2. 信息共享、信息保护信息共享、信息保护在实现对程序和数

33、据的共享时,是以信息的逻辑单位为基础的,而段是信息的逻辑单位。另外,信息保护是对信息的逻辑单位进行保护。4.6.1分段存储管理方式的引入分段存储管理方式的引入 3. 3.动态增长动态增长分段存储管理方式却能较好地解决数据段动态增长问题。 4. 4.动态链接动态链接第四章存储器管理 1. 1. 分段分段在分段存储管理方式中,作业的地址空间被划分为若干个段,每个段定义了一组逻辑信息。其逻辑地址由段号(段名)和段内地址所组成。 4.6.2分段系统的基本原理分段系统的基本原理 分段方式已得到许多编译程序的支持,编译程序能自动地根据源程序的情况而产生若干个段。第四章存储器管理 在系统中为每个进程建立一张

34、段映射表,简称“段表”。4.6.2分段系统的基本原理分段系统的基本原理2. 段表段表作业空间(MAIN)=0030 K(X)=1020 K(D)=2015 K(S)=3010 K30 K20 K15 K10 K40 K80 K段长基址段号(MAIN)=030 K(X)=120 K(D)=215 K(S)=310 K040 K80 K120 K150 K段表内存空间0123120 K150 K第四章存储器管理 4.6.2分段系统的基本原理分段系统的基本原理3.3.地址变换机构地址变换机构控制寄存器段表始址段表长度2100段号S越界1 K段长600段号01236 K4 K5002008 K9200

35、基址位移量W82928K82928692主存物理地址有效地址图图4-20分段系统的地址变换过程分段系统的地址变换过程 第四章存储器管理 (1)页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的利用率。或者说,分页仅仅是由于系统管理的需要而不是用户的需要。段则是信息的逻辑单位,它含有一组其意义相对完整的信息。分段的目的是为了能更好地满足用户的需要。 4.6.2分段系统的基本原理分段系统的基本原理4.4.分页和分段的主要区别分页和分段的主要区别第四章存储器管理 (3)分页的作业地址空间是一维的,即单一的线性地址空间,程序员只需利用一个记忆符,即可表示一个地址;而分段的作业

36、地址空间则是二维的,程序员在标识一个地址时,既需给出段名,又需给出段内地址。 4.4.分页和分段的主要区别分页和分段的主要区别 (2)页的大小固定且由系统决定,由系统把逻辑地址划分为页号和页内地址两部分,是由机器硬件实现的,因而在系统中只能有一种大小的页面;而段的长度却不固定,决定于用户所编写的程序,通常由编译程序在对源程序进行编译时,根据信息的性质来划分。第四章存储器管理 分段系统的一个突出优点,是易于实现段的共享,即允许若干个进程共享一个或多个分段,且对段的保护也十分简单易行。在分页系统中,虽然也能实现程序和数据的共享,但远不如分段系统来得方便。我们通过一个例子来说明这个问题。例如,有一个多用户系统,可同时接纳40个用户,他们都执行一个文本编辑程序(Text Editor)。如果文本编辑程序有16

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论