《操作系统内存.ppt》由会员分享,可在线阅读,更多相关《操作系统内存.ppt(119页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、5、内存内存存储器的层次结构程序的装入和链接连续分配存储管理方式对换分页存储管理方式分段存储管理方式虚拟存储器概述请求分页存储管理方式页面置换算法“抖动”与工作集请求分段存储管理方式存储器的多层结构多层结构存储器系统产生的原因:无法同时满足三个条件:存储器的速度与处理机的速度相匹配(因为许多指令涉及存储器访问)存储器具有非常大的容量存储器的价格很便宜存储器的层次结构存储器的层次结构寄存器、高速缓存:少量的、非常快速、昂贵、易变;高速缓存是介于寄存器和存储器之间的存储器主存储器:GB级、中等速度、中等价格、易变磁盘缓存:依托于固定磁盘,提供对主存储器存储空间的扩充寄存器和主存(包括高速缓存、主存
2、储器、磁盘缓存)又被称为可执行存储器磁盘、可移动存储介质:GB级到PB级、低速、价廉、不易变内存存储器的层次结构程序的装入和链接连续分配存储管理方式对换分页存储管理方式分段存储管理方式虚拟存储器概述请求分页存储管理方式页面置换算法“抖动”与工作集请求分段存储管理方式对用户程序的处理步骤绝对装入方式程序中的逻辑地址和实际内存地址一致适用于仅能运行单道程序的小系统程序中的绝对地址可由程序员直接给出要求熟悉内存使用数据结构或程序修改后可能要改程序中的很多处地址绝对地址也可由程序编译器转换得出静态重定位装入方式程序中的逻辑地址从0地址开始适用于多道程序环境地址转换在程序装入时一次完成,不再改变动态重定
3、位装入方式静态装入不适用于进程切换,每次换入的内存位置可能不同程序装入时保留相对地址,程序执行时进行地址转换需要重定位寄存器加速地址转换程序的静态链接方式在程序运行之前,先将各目标模块及它们所需的库函数,链接成一个完整的装配模块,以后不再拆开。程序的静态链接方式1.修改各模块的起始地址2.修改模块中所有涉及相对地址的指令程序装入时的动态链接方式程序编译后所得到的一组目标模块,装入目标模块时,若发生外部模块调用,装入程序将外部模块调入内存,同时修改目标模块中的相对地址。优点:1.便于修改和更新:因为各目标模块是分开存放的。2.便于实现对目标模块的共享:OS很容易将一个目标模块,链接到几个应用模块
4、上,实现多个应用程序对该模块的共享。程序运行时的动态链接方式某些模块有时不需要运行,如异常处理模块。需要用到的模块才进行链接。优点:1.加快程序的装入过程:凡在执行过程中未被用到的目标模块,都不会被调入内存和被链接到装入模块上。2.节省内存空间:仅装入运行所需要的模块。内存存储器的层次结构程序的装入和链接连续分配存储管理方式对换分页存储管理方式分段存储管理方式虚拟存储器概述请求分页存储管理方式页面置换算法“抖动”与工作集请求分段存储管理方式连续分配存储管理方式连续分配指为一个程序分配一个连续的内存空间。连续分配方式分为四类:单一连续分配固定分区分配动态分区分配动态重定位分区分配单一连续分配单道
5、程序环境下内存分为系统区和用户区系统区仅提供给OS使用,在内存的低址部分用户区仅装有一道用户程序,即整个内存的用户空间由该程序独占缺点:不支持多道 主存利用率不高 程序的运行受主存容量限制 固定分区分配多道程序环境下整个用户空间划分为若干个固定大小的区域每个分区中只装入一道作业固定分区分配1.划分分区的方法分区大小相等:所有的内存分区大小相等,缺点是缺乏灵活性.分区大小不等:存储器分区划分为若干个大小不等的分区.固定分区分配2.内存分配建立分区使用表,记录每个分区的起始地址、大小及状态(是否已分配)。当用户程序装入时,由内存分配程序依据程序大小检索该表,从中找出一个能满足要求的、尚未分配的分区
6、,将之分配给该程序,然后将该表项中的状态置为“已分配”。若未找到大小足够的分区,则拒绝为该用户程序分配内存。若每个分区的大小固定,会造成存储空间浪费。固定分区分配动态分区分配根据进程的实际需要动态分配内存空间1.动态分区分配中的数据结构 2.动态分区分配算法 3.分区分配操作动态分区分配1.动态分区分配中的数据结构 空闲分区表或空闲分区链动态分区分配2.动态分区分配算法传统的顺序式搜索算法索引式搜索算法动态分区分配3.分区分配操作分配内存:根据分配算法,从空闲分区表中找到合适的分区。若分区大小比请求空间大(超过分区最小极限值),则对分区进行分割。回收内存:当进程运行完毕释放内存时,系统根据回收
7、区的首地址,合并回收进空闲分区表回收区与插入点的前一个空闲分区F1相邻接回收分区与插入点的后一空闲分区F2相邻接回收区同时与插入点的前、后两个分区邻接回收区既不与F1邻接,又不与F2邻接基于顺序搜索的分区分配算法为了实现动态分区分配,通常是将系统中的空闲分区链接成一个链。顺序搜索,是指依次搜索空闲分区链上的空闲分区,寻找一个大小能满足要求的分区。首次适应算法:选择分区时总是按地址从高到低搜索。循环首次适应算法:类似首次适应法每次分区时,总是从上次查找结束的地方开始。最佳适应算法:在空闲块表中找到一个不小于请求的最小空块进行分配 最坏适应算法:在空闲块表中找到一个不小于请求的最大空块进行分配基于
8、索引搜索的分区分配算法当系统很大时,系统中的内存分区可能会很多,相应的空闲分区链就可能很长,这时采用顺序搜索分区方法可能会很慢。1.快速适应算法:相同容量的分区使用一个空闲分区链表,所有链表的头指针通过一张管理索引表访问。根据进程长度从索引表中找到合适的空闲分区链表从链表中取第一块分区进行分配,不对分区进行分割时间性能比顺序搜索高,空间利用存在浪费基于索引搜索的分区分配算法2.伙伴系统:初始内存是一个大小为2m的空闲分区,分区可以对半分割,分区大小均为2 的k次幂。若申请长度为n的内存空间(2i-1i,则把空闲块分为2j-1、2j-2、2i、2i的块,并把其中2i的块分配给进程。若回收大小为2
9、i的空闲块,要查询是否存在另一个大小为2i的空闲块,若有则需合并成2i+1的空闲块。时间性能高于顺序搜索,低于快速适应算法。空间利用率优于快速适应算法,低于顺序搜索。多处理机系统中广泛应用。基于索引搜索的分区分配算法3.哈希算法:改良上述两种索引搜索方法。原因:“根据申请空间查找对应的空闲分区链表表头指针”这个操作当表项多时速度慢算法先构造一张以空闲分区大小为关键字的哈希表,再根据所需空闲分区大小,通过哈希函数计算,得到在哈希表中的位置,从而得到响应的空闲分区链表。可重定位分区分配连续分配方式的特点:一个程序必须装入一片连续的内存空间。当计算机运行一段时间后,内存空间将会分割成许多小分区,缺乏
10、大的空闲空间。装入大作业的方法:移动内存中的所有作业使之相邻。这样把原来分散的多个小分区拼接成一个大分区,就可把大作业装入。技术需求:紧凑、动态重定位、动态重定位分区分配算法 可重定位分区分配紧凑可重定位分区分配动态重定位可重定位分区分配 返回分区号和首地址动态重定位分区分配算法 内存存储器的层次结构程序的装入和链接连续分配存储管理方式对换分页存储管理方式分段存储管理方式虚拟存储器概述请求分页存储管理方式页面置换算法“抖动”与工作集请求分段存储管理方式对换又称为交换技术,在内存和外存间交换数据,用于解决内存太小的问题。早期的分时系统中的对换技术:所有的用户作业放在磁盘上,每次调一个作业进内存,
11、当时间片用完后再调至外存的后备队列,再从后备队列中调另一个作业进内存。已废弃。多道程序环境多道程序环境:内存中的某些进程由于某事件尚未发生而被阻塞运行,但占用大量内存空间,甚至可能出现内存中所有进程都被阻塞。某些进程因内存空间不足,一直不能运行把内存中暂时不能运行的进程或者暂时不用的程序和数据换出到外存上;再把已具备运行条件的进程或进程所需要的程序和数据换入内存。对换的类型 1.整体对换:即处理机中级调度。以进程为对换单位。2.页面(分段)对换:以进程的“页面”或“分段”为单位进行对换。为实现进程对换,系统必须实现的功能:1.对换空间管理2.进程的换出3.进程的换入对换空间管理在具有对换功能的
12、OS中,通常把硬盘空间分为文件区和对换区两部分。文件区占大部分,访问频率低。交换区占小部分,用于存放内存中换出的进程。对换空间管理的主要目标:文件区管理的主要目标:首先是提高文件存储空间的利用率,然后才是提高对文件的访问速度对换空间管理的主要目标:是提高进程换入和换出的速度,然后才是提高文件存储空间的利用率.对换空间管理对换区空闲盘块管理中的数据结构与内存在动态分区分配方式中所用数据结构相似,即同样可以用空闲分区表或空闲分区链。在空闲分区表的每个表目中,应包含两项:对换区的首址及其大小,分别用盘块号和盘块数表示。对换空间管理对换空间的分配与回收由于对换分区的分配采用的是连续分配方式,因而对换空
13、间的分配与回收,与动态分区方式时的内存分配与回收方法雷同。分配算法可以是首次适应算法、循环首次适应算法或最佳适应算法等.进程的换出1.选择被换出的进程 首先选择处于阻塞状态或睡眠状态的进程其次选择优先级最低的进程 2.进程换出过程 申请对换空间。若申请成功就启动磁盘,将该进程的程序和数据传送到磁盘的对换区上。若传送过程未出现错误,则回收进程所占用的内存空间,并对进程控制块和内存分配表等数据结构做相应的修改。若内存中还有阻塞进程,则继续执行换出过程。进程的换入 对换进程将定时执行换入操作查看PCB集合中所有进程的状态,为“就绪”已换出且换出时间最久的进程申请内存;如果申请成功,则将进程调入内存;
14、如果失败,则需先将内存中的某些进程换出,腾出足够的内存空间后,再将进程调入。若还有可换入的进程,则继续执行换入过程,直到再无“就绪且换出”状态的进程,或已无足够的内存来换入进程。内存存储器的层次结构程序的装入和链接连续分配存储管理方式对换分页存储管理方式分段存储管理方式虚拟存储器概述请求分页存储管理方式页面置换算法“抖动”与工作集请求分段存储管理方式离散存储管理方式连续分配的存储管理方式 存在碎片问题。使用“紧凑”技术可以解决这个问题,但时间代价较高。离散分配:给一个进程分配许多不相邻的分区。离散分配的类型分页:内存空间分成固定大小的物理块(frame,如1KB)。用户程序的地址空间分为同样大
15、小的区域,称为页。从0开始编制页号,页内地址是相对于0编址。分段:用户程序分成大小不同的段,每段定义一组相对完整的信息。存储器分配以段为单位。段页式:目前的主流方式,具有两者的优点。分页存储管理的基本方法页:用户程序的地址空间,分为若干个固定大小的区域,称为“页”物理块:内存空间分为若干个物理块或页框,页和块的大小相同页面大小:小的页面可以减少内存碎片,增加进程的页表长度,占用大量内存,降低页面换进换出的效率。大的页面可以减少页表长度,提高页面换进换出的效率,增加页内碎片。建议的大小:4KB或8KB分页存储管理的基本方法地址结构31 12 11 0对某特定机器,其地址结构是一定的。若给定一个逻
16、辑地址空间中的地址为A,页面的大小为L,则页号P和页内地址d可按下式求得:页号P位移量W操作系统的内存寻址能力操作系统操作系统内存寻址内存寻址普通32位Windows3GB使用PAE技术的32位Windows2003Standard:32GBEnterprise:64GB64位WindowsXPEdition:128GB64位Windows2008Standard:32GBEnterprise:2TB64位Windows7/Vista 旗舰版:192GB64位操作系统理论值264B(1T=240)分页存储管理的基本方法页表列出了作业的逻辑地址与其在主存中的物理地址间的对应关系。一个页表中包含若
17、干个表目,表目的自然序号对应于用户程序中的页号,表目中的块号是该页对应的物理块号。页表的每一个表目除了包含指向页框的指针外,还包括一个存取控制字段。分页存储管理的基本方法基本的地址变换机构分页存储管理的基本方法具有快表的地址变换机构两级页表对于32位的分页系统,设页面大小为4KB,则每个进程的页表中,最多可以有1M个页表项,占1MB连续内存空间。可采用两个方法来解决这一问题:采用离散分配方式来解决难以找到一块连续的大内存空间的问题只将当前需要的部分页表项调入内存,其余的页表项仍驻留在磁盘上,需要时再调入两级页表两级页表结构两级页表若要减少页表占用的内存空间,仅把当前需要的一批列表调入内存。两级
18、列表下,外层列表调入内存,页表只需调入几页,外层列表增加状态位S,0表示页表不在内存,需要的情况下产生中断并将页表调入内存。多级页表64位计算机若按两级列表,则外层页号占用42位,需要占用16384G连续内存空间。使用多级页表将外层页表再次分页,将各页离散地装入到不相邻的物理块中,再利用二级外层页表映射关系。64位计算机即使使用三级页表也不适合,目前寻址的存储器空间减少为45位。哈希页表1.虚拟地址中的虚拟页码通过哈希函数转换到哈希表中。2.把虚拟页码和链表中每一个元素的第一个域作比较,如果匹配,则第二个域作为物理地址的页码。哈希页表反向页表通常情况,每个进程都有一张页表,需要占用很多内存空间
19、。反向页表对于每个物理内存页只有一个条目,包含了保存在内存页中的虚拟页码和所属进程号。64MB的机器,若页面大小为4KB,则反置页表只占用64KB空间。针对查询速度慢的问题,可以使用哈希表和快表加速。反向页表内存存储器的层次结构程序的装入和链接连续分配存储管理方式对换分页存储管理方式分段存储管理方式虚拟存储器概述请求分页存储管理方式页面置换算法“抖动”与工作集请求分段存储管理方式分段式存储管理在分页存储系统中,作业的地址空间是一维线性的,这破坏了程序内部天然的逻辑结构,造成共享、保护困难。引入分段存储管理方式,主要是为了满足用户和程序员的下述需要:方便编程信息共享 信息保护动态增长 动态链接
20、分段系统的基本原理分段地址中的地址具有如下结构:段表段号段内地址31 16 15 0段号012段首址段长度58K20K100K110K260K140K分段系统的基本原理分段管理中作业与段表、存储空间的关系分段系统的基本原理地址变换机构分页和分段的区别页是信息的物理单位,与操作系统管理有关,与用户无关。段是信息的逻辑单位,包含程序中相对完整的信息。每个系统中页的大小固定且由系统决定,由硬件直接实现。段的长度不固定,决定于每个程序,通常由编译程序根据源程序信息划分。信息共享分页和分段系统都能实现信息共享,即多个进程共享一个或多个分段。一个多用户系统,同时接纳40个用户,他们都执行一个文本编辑程序(
21、Text Editor)。文本编辑程序包含160KB的代码和40KB的数据区。如果160KB的代码是可重入的,则只需1760KB内存。分页系统中的共享分段系统中的共享段页式存储管理方式分页系统以页面作为内存分配的基本单位,能有效提高内存利用率分段系统是以段作为内存分配的基本单位,能更好地满足用户需要段页式存储管理方式既具有分段系统的便于实现、分段可共享、易于保护、可动态链接等一系列优点,又能像分页系统那样,很好地解决内存的外部碎片问题。地址映射地址变换过程内存存储器的层次结构程序的装入和链接连续分配存储管理方式对换分页存储管理方式分段存储管理方式虚拟存储器概述请求分页存储管理方式页面置换算法“
22、抖动”与工作集请求分段存储管理方式常规存储器管理方式的特征一次性:作业必须全部装入内存后才能开始运行。这一特征导致了:当作业要求的内存空间超过内存总容量,会导致该作业无法运行当大量作业要求运行时,由于每次只能装入少量作业,导致多道程序度下降。驻留性:作业被装入内存后,一直驻留在内存中,直至作业运行结束。局部性原理大多数情况下(除转移和过程调用),程序顺序执行。过程调用将会使程序的执行轨迹,由一部分区域转至另一部分区域。程序中存在许多循环结构,这些虽然只由少数指令构成,但是它们将多次执行。程序中包括许多对数据结构的处理,如对数组进行操作,它们往往都局限于很小的范围内。局部性原理的表现时间局部性:
23、程序中的某条指令被执行,不久以后可能再次执行;某数据被访问,不久以后可能再次被访问。空间局部性:程序访问某个存储单元,不久之后附近的存储单元也将被访问。即程序在一段时间内所访问的地址,可能集中在一定的范围之内。虚拟存储器的基本工作情况程序运行前,仅须将当前需要的少数页面或段装入内存,其余部分暂留在硬盘上。程序运行时,若需要的页(段)尚未调入内存(称为缺页或缺段),就发出中断请求,把页(段)调入内存。若内存已满,先利用页(段)的置换功能,将内存中暂时不用的页(段)调至硬盘上,再将要访问的页(段)调入内存。虚拟存储器的定义具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。其
24、逻辑容量由内存容量和外存容量之和所决定,其运行速度接近于内存速度,而每位的成本却又接近于外存。虚拟存储器的特征多次性:程序和数据分多次调入内存对换性:暂不使用的程序和数据换出内存虚拟性:逻辑上扩充内存容量虚拟存储器的实现方法1.请求分页系统用户程序只需装入少数页面即可运行,通过调页功能及页面置换功能把即将要运行的页面调入内存,把暂不运行的页面换到外存中2.请求分段系统 类似请求分页系统,置换以段为单位。由于段的长度可变,故实现比请求分页系统难。Intel80386以上CPU芯片支持段页式虚拟存储器系统。内存存储器的层次结构程序的装入和链接连续分配存储管理方式对换分页存储管理方式分段存储管理方式
25、虚拟存储器概述请求分页存储管理方式页面置换算法“抖动”与工作集请求分段存储管理方式硬件支持1.请求页表机制状态位P:1bit,用于指示该页是否已调入内存访问字段A:记录本页在一段时间内被访问的次数,或本页最近已有多长时间未被访问修改位M:标识该页在调入内存后是否被修改外存地址:用于指出该页在外存上的地址,通常是物理块号页号页号物理块号物理块号状态位状态位P P访问字段访问字段A A修改位修改位M M外存地址外存地址硬件支持2.缺页中断机构在指令执行期间,若请求的页面不在内存时触发缺页中断一条指令在执行期间,可能产生多次缺页中断硬件支持3.地址变换机构内存分配1.最小物理块数的确定进程多时,进程
26、在内存中能分配到的物理块少,缺页率上升,会降低进程的执行速度。最小物理块数:能保证进程正常运行所需的最小物理块数。每条指令需要的物理块数与指令的复杂程度有关。直接寻址MOV AX,2000H 2块寄存器间接寻址MOV EAX,EBX3块内存分配2.内存分配策略进程分配的物理进程分配的物理块数量块数量缺页时的置换策缺页时的置换策略略固定分配局部置换固定与本进程的页面交换可变分配全局置换可变与空闲块和所有进程页面交换可变分配局部置换可变与本进程的页面交换,若频繁缺页则增加物理块内存分配3.物理块分配算法平均分配算法按比例分配算法:根据进程的大小考虑优先权的分配算法:内存物理块一部分按比例分配,另一
27、部分根据进程优先权分配页面调入策略1.页面调入时机预调页策略:将要访问的页面预先调入内存。若命中率高(目前只有50%),则一次预调多页的效率高于请求调页策略。请求调页策略:需要的页面调入内存。一次调入一页,主流选择。页面调入策略2.页面调入过程保留CPU环境。若内存足够,将缺页调入内存,并修改页表。若内存已满,则按照某种置换算法,从内存中选出待换页,若该页修改位为1,则写回磁盘。再把缺页调入内存,并修改存在位为1,将页表项写入快表。缺页调入内存后,即可通过页表读取其在内存中的物理地址。页面的调入过程对用户透明。内存存储器的层次结构程序的装入和链接连续分配存储管理方式对换分页存储管理方式分段存储
28、管理方式虚拟存储器概述请求分页存储管理方式页面置换算法“抖动”与工作集请求分段存储管理方式最佳置换算法理论算法,最低的缺页率。无法实现。换出的页面是以后永不使用的,或者是在最长时间内不再被访问的页面。先进先出置换算法(FIFO)换出的页面在内存中驻留时间最长最近最久未使用算法(LRU)换出的页面是最后一次访问时间距离当前时间最长的一页。需要用硬件来实现最久未使用页的搜索。实际效果比较好。LRU置换算法的硬件支持方法一:寄存器为内存中的每个页面配置移位寄存器,把n位寄存器上的数看成一个整数,定期右移,置换数值最小的寄存器对应的页。LRU置换算法的硬件支持方法二:栈堆栈中保存最近访问的页号。当进程
29、访问某页时,把该页号从栈中取出,放在栈顶。需要换出时,取栈底的页面。Clock置换算法LRU算法需要硬件支持,成本较高Clock算法是LRU的近似算法,又称为最近未用算法(NRU,Not Recently Used)算法原理:内存中所有页面以指针相连每个页面都有一位访问标志进程访问页面则把页面的访问标志置为1选择换出页面时,按指针顺序访问,若为0则换出,若为1则置为0。Clock置换算法改进的Clock置换算法考虑换出成本:若换出页面已被修改,则需写回磁盘。优先换出未使用过且未修改过的页面。页面包含访问位A和修改位M。替换优先级:(0,0)(0,1)(1,0)(1,1)改进的Clock置换算法
30、算法步骤:1.根据指针顺序寻找A=0且M=0的页面,将满足条件的第一个页面作为淘汰页。2.若未找到合适页面,则重新开始寻找A=0且M=1的页面,将满足条件的第一个页面作为淘汰页,将所有扫描过页面的访问位都置0。3.若未找到合适页面,则跳转至1。页面缓冲影响页面置换开销的因素:页面置换算法:降低缺页率写回磁盘的频率:需要写回的页面暂存在已修改换出页面链表中,积累到一定数量后一起写磁盘已修改换出页面的重新利用:处于已修改换出页面链表的页面若再次访问,可直接从链表中读取内存存储器的层次结构程序的装入和链接连续分配存储管理方式对换分页存储管理方式分段存储管理方式虚拟存储器概述请求分页存储管理方式页面置
31、换算法“抖动”与工作集请求分段存储管理方式抖动现象系统同时运行太多进程时,分配给每个进程的物理块太少,运行时频繁缺页,导致进程大多数时间用于页面切换,处理机利用率趋于0。这种现象称为颠簸或抖动。工作集进程发生缺页率的时间间隔,与进程获得的物理块数有关。工作集基于程序运行时的局部性原理,程序在一段时间内会局限于访问较少的一些页面,这些页面被称为活跃页面。工作集w(t,)指进程在时间间隔(t-,t)中引用页面的集合。抖动的预防方法进程缺页时,只能与本进程的页面切换。利用工作集,在处理机调入新进程前,检测内存页面是否够用。“L=S”准则:L是两次缺页事件之间的平均时间,S是平均缺页服务时间,L=S时
32、,存储器和处理机都可达较高利用率。暂停优先级低的进程、大进程或者执行时间长的进程。内存存储器的层次结构程序的装入和链接连续分配存储管理方式对换分页存储管理方式分段存储管理方式虚拟存储器概述请求分页存储管理方式页面置换算法“抖动”与工作集请求分段存储管理方式请求分段存储管理以分段为单位进行换入换出程序只需要调入几个分段即可运行当访问段不在内存中时,可请求系统将缺的段调入内存请求分段中的硬件支持1.请求段表机制存取方式:应用程序中段是信息的逻辑单位,可根据信息的属性实施保护,如只执行、只读、允许读/写访问字段A:记录该段被访问的频繁程度,供置换页面时参考修改位M:记录该段进入内存后是否被修改,供置
33、换页面时参考存在位P:记录该段是否已调入内存,供程序访问时参考增补位:表示该段在运行过程中是否动态增长外存始址:表示该段在外存中的起始地址,即起始盘块号段名段名段长段长段的段的基址基址存取存取方式方式访问字访问字段段A A修改修改位位M M存在存在位位P P增补增补位位外存始址外存始址请求分段中的硬件支持2.缺页中断机构请求分段中的硬件支持3.地址变换机构分段的共享与保护1.共享段表各共享段在共享段表中占有一表项,记录了共享此分段的每个进程的情况。共享进程计数:记录有多少进程正在共享该分段。存取控制字段:进程对共享段的存取权限。段号:每个进程可用自己进程的段号访问共享段。分段的共享与保护2.共
34、享段的分配与回收分配:当第一个进程请求使用共享段时,系统负责给共享段分配内存。其它进程需要调用共享段时,无须再分配内存。回收:当最后一个共享此段的进程不再需要该段时,由系统回收共享段的物理内存,否则只取消进程在共享段表中的记录。分段的共享与保护3.分段保护越界检查:地址变换时,由地址变换机构检查,保证每个进程只在自己的地址空间内运行。存取控制检查:以段为基本单位,在段表的每个表项中设置了“存取控制”字段,用于规定对该段的访问方式。通常的访问方式有:只读、只执行、读/写。环保护机构:低编号的环具有高优先权。在环系统中,程序的访问和调用应遵循以下规则:一个程序可以访问驻留在相同环或较低特权环(外环
35、)中的数据;一个程序可以调用驻留在相同环或较高特权环(内环)中的服务。环保护机制习题1.在伙伴系统中,某块的地址为i-j,求其伙伴块的地址。2.描述分页、分段、段页式存储的寻址方法3.段页式存储是否存在空间浪费?说明原因4.内存太大或太小分别会带来什么问题?5.在使用虚拟内存的系统中,若内存的缺页率达到5%,则内存的访问效率会降低多少?6.编代码做实验:用不同的页面置换算法(FIFO、LRU、Clock)的缺页率。随机生成对10个不同页面的访问序列,内存空间为4个页面。1.块首地址为i,尾地址为j,根据伙伴系统的特点,j-i+1=2k,若i用二进制表示从低位(第0位)起的第k位上为1,则说明该
36、块是右伙伴,其左伙伴的尾地址为i-1,首地址为2i-j-1。若i的第k位是0,则说明该块是左伙伴,其右伙伴的首地址为j+1,尾地址为2j+1-i。3.内部碎片4.内存太大:性价比高。内存太小:页面交换频繁。5.内存带宽=内存工作频率*内存总线宽度/8,DDR2内存的总线带宽是64BIT,DDR2可以在时钟信号的上升沿和下降沿都传送数据,因此计算得到的相应带宽要*2DDR2 800,运行频率为400MHz,带宽为400*2*64/8=6400MB/s=6.4GB/s希捷500GB平均读写速度120MB/s内存硬盘速度比约50:15%缺页率将导致2次I/O1*0.95+50*2*0.05=5.95