操作系统内存.ppt
《操作系统内存.ppt》由会员分享,可在线阅读,更多相关《操作系统内存.ppt(119页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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.把虚拟页码和链表中每一个元素的第一个域作比较,如果匹配,则第二个域作为物理地址的页码。哈希页表反向页表通常情况,每个进程都有一张页表,需要占用很多内存空间
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 内存
限制150内