您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 操作系统原理第6章存储器管理
操作系统原理OperatingSystemPrinciples四川大学计算机学院段磊leiduan@scu.edu.cn2014Spring第6章存储器管理计算机的存储系统主要包括内存储器和外存储器。外存储器保存的信息必须进入内存储器后才能被处理器运行。存储器管理是操作系统的主要功能之一。内存管理分为连续管理方式和离散管理方式。2020/2/24《计算机操作系统》-第6章3/130知识点分布难点高级知识中级知识基础知识进程同步信号量虚存页面分配页面置换分页分段文件系统I/O磁盘管理实践教学2020/2/24《计算机操作系统》-第6章4/130讲在前面-存储管理目的操作系统的“方便”性便于用户装入程序,无须了解底层细节可实现动态的存储空间伸缩,适应不同程序的需要操作系统的“合理”性合理分配内存空间,保证多道程序的顺利运行合理保护内存空间,防止各种可能的破坏泄漏操作系统的“有效”性有效保持内存空间的可用性,防止对资源的浪费有效实现“小空间大容量”,提高计算机的适应性有效配合CPU的调度过程,实现系统运行的稳定2020/2/24《计算机操作系统》-第6章5/130讲在前面-存储管理目的使得用户和用户程序不涉及内存物理的细节。为用户程序完成程序的装入。提高内存的利用率,弥补用户对内存容量的需求与内存实际容量之间的差距。解决内存速度与CPU速度不匹配的问题。实现内存共享。2020/2/24《计算机操作系统》-第6章6/130讲在前面-存储管理的功能内存的管理、分配与回收空间的使用情况记录—位图、分配表、分区表空间的分配与回收—定长与不定长、静态与动态地址重定位(地址映射)物理地址与逻辑地址的差别实模式与保护模式共享与保护内存共享:进程与线程、中间件应用内存保护:如何防止地址越界或操作越权?内存的扩充虚拟存储:如何使用小内存空间来运行大的程序?2020/2/24《计算机操作系统》-第6章7/130讲在前面-地址空间程序的名空间用户编程所用的地址称为逻辑地址(或程序地址,或虚地址)。由逻辑地址组成的空间称为逻辑地址空间(或程序地址空间)。内存的每个存储单元都有一个编号,这种编号称为内存地址(或称为物理地址,绝对地址)。内存地址的集合称为内存空间(或物理地址空间)。2020/2/24《计算机操作系统》-第6章8/130地址映射LoadA2003456。。物理地址空间LoadAdata1data13456源程序LoadA2003456编译连接逻辑地址空间源程序经过汇编或编译后,形成目标程序,每个目标程序都是以0为基址顺序进行编址的,原来用符号名访问的单元用具体的数据——单元号取代。这样生成的目标程序占据一定的地址空间,称为作业的逻辑地址空间,简称逻辑空间。在逻辑空间中每条指令的地址和指令中要访问的操作数地址统称为逻辑地址。讲在前面-地址空间2020/2/24《计算机操作系统》-第6章9/130地址映射LoadA2003456。。1200物理地址空间LoadAdata1data13456源程序LoadA20034560100200编译连接逻辑地址空间BA=1000把内存分成若干个大小相等的存储单元,每个单元给一个编号,这个编号称为内存地址(物理地址、绝对地址、实地址),存储单元占8位,称作字节(byte)。物理地址的集合称为物理地址空间(主存地址空间),它是一个一维的线性空间。讲在前面-地址空间2020/2/24《计算机操作系统》-第6章10/130讲在前面-存储管理的方案分区存储管理段式存储管理页式存储管理段页式存储管理交换和覆盖技术是一种连续存储管理方案,但需要一次性全部装入内存。是一种不连续存储管理方案,段和段之间可以不连续,但需要一次性全部装入内存。是一种不连续存储管理方案,也需要一次性全部装入内存。是一种不连续存储方案,如果采用纯分页和分段思想,需要一次性全部装入内存;如果采用虚拟存储思想,则不需要一次性全部装入内存。是存储扩充的两种技术,其中交换技术的优点是编写程序时不需要特殊的控制,也不会影响程序的结构。2020/2/24《计算机操作系统》-第6章11/130本章目录6.1存储器管理概述存储器的层次程序准备执行覆盖技术紧凑技术对换技术6.2连续存储空间管理6.3分页式存储管理6.4分段式存储管理2020/2/24《计算机操作系统》-第6章12/1306.1.1存储器的层次高速缓冲存储器主存储器辅助存储器存储速度递增存储容量递增存储空间的分类与性质2020/2/24《计算机操作系统》-第6章13/130计算机系统存储层次示意寄存器高速缓存主存磁盘缓存磁盘可移动存储介质CPU寄存器主存辅存解决主存访问速度vsCPU指令执行速度的矛盾减少访存次数,提高程序执行速度减少访问磁盘的次数,并提供对主存空间的扩充2020/2/24《计算机操作系统》-第6章14/1306.1.2程序的准备执行相关知识回顾进程创建高级调度(作业调度)程序的执行过程编译:源代码形成(多个)目标模块链接:链接相关库函数,形成装入模块装入:装入内存运行2020/2/24《计算机操作系统》-第6章15/130编译程序产生的目标模块库链接程序装入模块装入程序内存第一步第二步第三步程序的准备执行2020/2/24《计算机操作系统》-第6章16/130程序的准备执行--链接静态链接对相对地址的修改变换外部调用符号装入时链接便于修改和更新便于实现对目标模块的共享运行时动态链接形成一个完整的装入模块,即可执行文件,运行时直接装入内存。边装入,边链接,即在装入过程中发生调用事件,由装入程序找到对应模块,装入内存。执行过程中发生调用事件,找到对应模块装入内存并链接到调用模块上。统称“动态链接”,被链接的共享代码称为动态链接库DLL(DynamicLinkLibrary)或共享库(sharedlibrary)。2020/2/24《计算机操作系统》-第6章17/130模块ACALLB;RETURN模块BCALLC;RETURN模块CRETURN0L-10M-10N-1(a)目标模块模块AJSRL;RETURN模块BJSRL+M;RETURN模块CRETURN0L-1LL+M-1L+ML+M+N-1(b)装入模块程序的准备执行--静态链接2020/2/24《计算机操作系统》-第6章18/130程序的准备执行--动态链接动态链接优点共享:多个进程可以共用一个DLL,比较节省内存,从而可以减少文件的交换。缺点部分装入:一个进程可以将多种操作分散在不同的DLL中实现,而只将当前操作的DLL装入内存。便于局部代码修改:即便于代码升级和代码重用;只要函数的接口参数(输入和输出)不变,则修改函数及其DLL时,无需对可执行文件重新编译或链接。便于适应运行环境:调用不同的DLL,就可以适应多种使用环境并提供不同的功能。•增加了程序执行时的链接开销。•程序由多个文件组成,因此增加了管理复杂度。2020/2/24《计算机操作系统》-第6章19/130程序的准备执行--装入绝对装入方式静态重定位装入方式动态重定位装入方式LoadA2003456。。物理地址空间LoadA2003456逻辑地址空间逻辑地址与实际内存地址一致适用于单道程序环境2020/2/24《计算机操作系统》-第6章20/130程序的准备执行--装入绝对装入方式静态重定位装入方式动态重定位装入方式地址映射/地址重定位把用户程序装入内存时对有关指令的地址部分的修改定义为从程序地址到内存地址的地址映射,或称为地址重定位。静态地址映射动态地址映射2020/2/24《计算机操作系统》-第6章21/130程序的准备执行--装入静态地址映射(静态重定位)程序被装入内存时,由操作系统的连接装入程序完成程序的逻辑地址到内存地址的转换。假定程序装入内存的首地址为BR,程序地址为VR,内存地址为MR,则地址映射按下式进行:MR=BR+VR。例如,程序装入内存的首地址为1000,则装配程序就按MR=1000+VR对程序中所有地址部分进行修改,修改后指令LoadA,200就变为LoadA,1200优点:不需要硬件的支持。缺点:程序必须占用连续的内存空间,一旦程序装入后不能移动。2020/2/24《计算机操作系统》-第6章22/130程序的准备执行--装入动态地址映射(动态重定位)动态地址重定位是在程序执行的过程中,每次访问内存之前,将要访问的程序地址转换为内存地址。一般来说这种转换是由专门的硬件机构来完成的。最简单的硬件机构是重定位寄存器。在地址重定位机构中,有一个基地址寄存器BR和一个程序地址寄存器VR,一个内存地址寄存器MR。03456......LOADA200......0100200300.........LOADA2003456110012001300200VR+1000BR2020/2/24《计算机操作系统》-第6章23/130程序的准备执行--装入动态地址映射(动态重定位)动态地址重定位是在程序执行的过程中,每次访问内存之前,将要访问的程序地址转换为内存地址。一般来说这种转换是由专门的硬件机构来完成的。最简单的硬件机构是重定位寄存器。在地址重定位机构中,有一个基地址寄存器BR和一个程序地址寄存器VR,一个内存地址寄存器MR。2020/2/24《计算机操作系统》-第6章24/130程序的准备执行--装入动态地址映射(动态重定位)过程描述:1.程序装入内存后,它所占用的内存区的首地址由系统送入基地址寄存器BR中。2.在程序执行的过程中,若要访问内存,将访问的逻辑地址送入VR中。3.地址转换机构把VR和BR中的内容相加,并将结果送入MR中,作为实际访问的地址。2020/2/24《计算机操作系统》-第6章25/130load1,2500365load1,25003650100250050002500100001000010100+1250015000作业J处理机一侧存储器一侧重定位寄存器相对地址2020/2/24《计算机操作系统》-第6章26/130程序的准备执行-装入动态地址映射(动态重定位)优点:程序占用的内存空间是动态可变的,当程序从某个存储区移到另一个区域时,只需要修改相应的寄存器BR的内容即可。一个程序不一定要求占用一个连续的内存空间。可以部分地装入程序运行。便于多个进程共享同一个程序的代码。2020/2/24《计算机操作系统》-第6章27/130程序的准备执行-装入动态地址映射(动态重定位)缺点:需要硬件的支持。实现存储管理的软件算法较为复杂。2020/2/24《计算机操作系统》-第6章28/1306.1.3覆盖技术当内存空间有限时,某些大的用户程序不能一次全部装入内存时,系统需要采取覆盖技术解决这一问题。1.将大的用户程序划分为一个个相对独立的程序单位2.将程序执行时不需要同时装入内存的程序单位组成覆盖段。3.覆盖段的长度不能超过已有内存空间大小,每个覆盖段分先后顺序进入到所分配的内存空间,后进入内存空间的段将先进入内存空间的段覆盖。2020/2/24《计算机操作系统》-第6章29/130覆盖技术采用了覆盖的程序执行比没有采用覆盖的程序执行慢采用覆盖程序执行过程中增加了读覆盖段的过程(输入操作),需要花费相当多的时间。覆盖技术要求程序员具有完整的程序指令、代码和数据结构方面的知识。覆盖仅限于微型计算机和物理内存有限而又不支持更先进技术的系统2020/2/24《计算机操作系统》-第6章30/1306.1.4紧凑技术紧凑技术通过改变进程在内存中的位置,移动存储器中某些已分配分区中的信息,使分散在内存中的“碎片”能够汇集成一片,再分配给进程使用,达到充分利用内存的目的。提高内存的利用率2020/2/24《计算机操作系统》-第6章31/130操作系统用户程序1用户程序3用户程序6用户程序910kb操作系统用户程序1用户程序3用户程序6用户
本文标题:操作系统原理第6章存储器管理
链接地址:https://www.777doc.com/doc-3968924 .html