《孙钟秀操作系统第四章存储管理.ppt》由会员分享,可在线阅读,更多相关《孙钟秀操作系统第四章存储管理.ppt(22页珍藏版)》请在金锄头文库上搜索。
1、1第四章第四章 存储管理存储管理/?2n存储管理是操作系统的重要组成部分存储管理是操作系统的重要组成部分, ,负责管负责管理计算机系统的主存储器理计算机系统的主存储器. .n由于任何程序和数据必须占用主存空间才能由于任何程序和数据必须占用主存空间才能得以执行和处理得以执行和处理, ,因此存储管理的优劣直接影因此存储管理的优劣直接影响系统的性能响系统的性能. .34.1 4.1 存储器存储器存储器(存储器(storage, memmorystorage, memmory)n能接收数据和保存数据、而且能根据命令能接收数据和保存数据、而且能根据命令提提供这些供这些数据的数据的装置。装置。一、存储器的
2、层次一、存储器的层次n目前计算机系统采用层次结构的存储系统。目前计算机系统采用层次结构的存储系统。4寄存器高速缓存主存储器磁盘缓存固定磁盘可移动存储介质访问速度越快访问速度越快价格越高价格越高存储容量越小存储容量越小n主存储器用于保存进程运行时的程序和数据。主存储器用于保存进程运行时的程序和数据。n由于主存储器的访问速度远低于由于主存储器的访问速度远低于CPUCPU执行指令的速度,为缓和执行指令的速度,为缓和这一矛盾,引入了寄存器和高速缓存。这一矛盾,引入了寄存器和高速缓存。n为了扩充主存储器的存储空间,在磁盘上建立磁盘缓存,操作为了扩充主存储器的存储空间,在磁盘上建立磁盘缓存,操作系统自动实
3、现主存储器和磁盘缓存之间的程序和数据的调进调系统自动实现主存储器和磁盘缓存之间的程序和数据的调进调出,从而面向用户提供比实际主存容量大得多的存储空间。出,从而面向用户提供比实际主存容量大得多的存储空间。寄存器寄存器主存主存辅存辅存5n寄存器、高速缓存、主存储器、磁盘缓存属寄存器、高速缓存、主存储器、磁盘缓存属于操作系统存储管理范畴,掉电后所存储的于操作系统存储管理范畴,掉电后所存储的信息不复存在。信息不复存在。n固定磁盘和可移动介质属于设备管理的对象,固定磁盘和可移动介质属于设备管理的对象,所存储的信息将被持久保存。所存储的信息将被持久保存。6二、地址转换二、地址转换1.1.程序的编译、链接、
4、装入程序的编译、链接、装入n源程序是不能直接执行的,源程序要经过编译、链接、装入源程序是不能直接执行的,源程序要经过编译、链接、装入这这3 3个阶段处理后才能装入主存运行。个阶段处理后才能装入主存运行。链接动态重定位静态重定位源程序模块1源程序模块2源程序模块n目标代码1目标代码2目标代码n可重定位目标代码(装载代码)(辅存)编译装入执行程序名字空间逻辑地址空间物理地址空间可执行二进代码(主存)库代码可执行二进代码(主存) 7n编译:编译:将源程序翻译成等价的若干目标代码将源程序翻译成等价的若干目标代码(目标模块)。(目标模块)。n链接:链接:把多个目标模块链接在一起,形成一把多个目标模块链接
5、在一起,形成一个完整的可重定位目标程序(装载代码模块)。个完整的可重定位目标程序(装载代码模块)。n装入:装入:将装载代码模块装入系统分配的主存将装载代码模块装入系统分配的主存区。区。82.2.地址转换地址转换(1 1)目标程序的逻辑结构)目标程序的逻辑结构n逻辑地址:逻辑地址:目标程序所使用的地址称为逻辑地址,目标程序所使用的地址称为逻辑地址,也称为程序地址也称为程序地址 、虚地址、虚地址 。n逻逻辑辑地地址址空空间间:逻逻辑辑地地址址集集合合称称为为逻逻辑辑地地址址空空间间,也也称称为为程程序序地地址址空空间间、虚虚地地址址空空间间。它它的的编编址址总总是是从从0 0开始的,可以是一维的,
6、也可以是二维的。开始的,可以是一维的,也可以是二维的。01.n01.i01.j目标程序目标程序1目标程序目标程序29(2) 内存内存的物理组织的物理组织n物理地址:物理地址: 把把内内存存分分成成若若干干个个大大小小相相等等的的存存储储单单元元,每每个个存存储储单单元元占占8 8位位,称称作作字字节节(bytebyte)。每每个个单单元元给给一一个个编编号号,这这个个编编号号称称为为物物理理地地址址(内内存存地地址址、绝对地址、实、绝对地址、实地址),地址),n物理地址空间:物理地址空间: 物物理理地地址址的的集集合合称称为为物物理理地地址址空空间间(主主存存地地址址空空间间),它是一个它是一
7、个一维空间。一维空间。10(3 3)地址转换)地址转换n将将程程序序使使用用的的逻逻辑辑地地址址变变换换成成主主存存中中的的物物理理地地址址的的过程过程称为地址转换,也称为地址转换,也称为称为地址重定位、地址映射。地址重定位、地址映射。内存内存地址转换地址转换Load A 200 3456 。 。1200物理地址空间物理地址空间Load A 2003456 0100200逻辑地址空间逻辑地址空间BA=1000目标程序目标程序011地址重定位有两种地址重定位有两种方式:方式:n静态地址重定位静态地址重定位n动态地址重定位动态地址重定位12静态地址重定位静态地址重定位n目目标标程程序序被被装装入入
8、内内存存时时完完成成程程序序的的逻逻辑辑地地址址到到内内存存物理地址物理地址的的转换。转换。 n物理地址物理地址= =装入内存首地址装入内存首地址+ +逻辑地址逻辑地址n例如例如,程序装入内存的首地址为,程序装入内存的首地址为10001000,则装入程序则装入程序就就按物理地址按物理地址=1000+=1000+逻辑地址对逻辑地址对程序中所有地址部程序中所有地址部分进行修改,修改后指令分进行修改,修改后指令Load ALoad A,200200就变为就变为Load ALoad A,12001200优点:不需要优点:不需要硬件支持,易于实现。硬件支持,易于实现。 缺点:程序必须占用连续的内存空间;
9、一旦程序装入后缺点:程序必须占用连续的内存空间;一旦程序装入后不能不能移动位置。移动位置。这种技术只在早期单用户单任务系统中使用过。这种技术只在早期单用户单任务系统中使用过。 13动态地址重定位动态地址重定位n目标程序装入内存时,不进行地址转换。目标程序装入内存时,不进行地址转换。程序装入主存的起始地址置入重定位寄存程序装入主存的起始地址置入重定位寄存器中,程序执行过程器中,程序执行过程中,每次访问内存之中,每次访问内存之前,将要访问前,将要访问的逻辑地址加上重定位寄存的逻辑地址加上重定位寄存器的值,从而转换为内存物理地址。器的值,从而转换为内存物理地址。14 03456.LOAD A 200
10、.0100200300.LOAD A 2003456110012001300200逻辑地址逻辑地址+1000重定位寄存器重定位寄存器逻辑地址空间逻辑地址空间物理地址空间物理地址空间1000物理地址物理地址15优点优点:n允允许许程程序序在在主主存存中中移移动动,当当程程序序从从某某个个存存储储区区移移到到另另一一个个区区域域时时,只只需需要要修修改改相相应应的的寄寄存存器器BRBR的的内内容容即可。即可。n便于多个进程共享同一个程序的代码。便于多个进程共享同一个程序的代码。n一一个程序不一定要求占用一个连续的内存个程序不一定要求占用一个连续的内存空间。空间。动态地址重定位的代价:动态地址重定位
11、的代价:n需要硬件的支持。需要硬件的支持。n实现存储管理的软件算法较为实现存储管理的软件算法较为复杂。复杂。n现代计算机系统中都采用现代计算机系统中都采用动态地址重定位。动态地址重定位。16三、 存储保护n在在多多道道程程序序设设计计的的环环境境下下,内内存存中中有有系系统统程程序序和和多多个个用用户户程程序序同同时时存存在在,系系统统程程序序和和多多个个应应用用程程序序在在主主存存中中各各有有自自己己的的存存储储区区域域,如如何何保保证证用用户户程程序序不不破破坏坏系系统统程程序序,用用户户程程序序之之间间不不相相互互干干扰扰?这这就就是是存储保护所要解决的问题。存储保护所要解决的问题。n界
12、界地址寄存器被广泛使用的一种存储保护技术机制地址寄存器被广泛使用的一种存储保护技术机制比较简单,易于实现比较简单,易于实现. .n实现实现方法方法有两种:有两种:上下界保护,基址、限长寄存器上下界保护,基址、限长寄存器保护。保护。171.1.上上下界保护下界保护下界寄存器:存放下界寄存器:存放程序装入内存后程序装入内存后的首地址的首地址上界寄存器:存放上界寄存器:存放程序装入内存后的末地址程序装入内存后的末地址判别式:判别式:(下界寄存器)下界寄存器) 物理地址物理地址 (上界寄存器)(上界寄存器)18例:例: 有有一一程程序序装装入入内内存存的的首首地地址址是是500,末末地地址址是是150
13、0,访访问内存的逻辑地址是问内存的逻辑地址是500、345、1005。 下界寄存器下界寄存器:500 上届寄存器:上届寄存器:1500 逻辑逻辑地址装入内存的首地地址装入内存的首地 物理地址物理地址 1、500500 1000 500 1000 1500 2、345500 845 500 845 1500 3、1000500 1505 500 1505 1500192.2.基址基址、限长寄存器保护、限长寄存器保护基址寄存器:存放程序的起始地址。基址寄存器:存放程序的起始地址。限长寄存器:程序的长度(单位:字节)限长寄存器:程序的长度(单位:字节)判别式:判别式:0 逻辑地逻辑地址址(限长寄存器
14、)(限长寄存器) 如果未越界,则按此地址访问主存,否则将产生程如果未越界,则按此地址访问主存,否则将产生程序中断序中断越界中断越界中断(存储保护(存储保护中断)中断)20例:例: 有有一一程程序序装装入入内内存存的的首首地地址址是是500,末末地地址址是是1500,访问内存的逻辑地址是,访问内存的逻辑地址是500、345、1005。 基址寄存器基址寄存器:500 限长寄存器:限长寄存器:1000 1、 0 500 1000 2、 0 345 1000 3、 0 1005 1000213.3.两种两种存储保护技术的区别存储保护技术的区别 (1)寄存器)寄存器的设置不同;的设置不同;(2)判别式)
15、判别式中用的判别条件不同中用的判别条件不同 上上下界寄存器保护法用的是物理地址下界寄存器保护法用的是物理地址 基址基址、限长寄存器保护法用的是程序的逻辑地址、限长寄存器保护法用的是程序的逻辑地址 对对于于合合法法的的访访问问地地址址这这两两者者的的效效率率是是相相同同的的,对对不不合合法法的的访访问问地地址址来来说说,上上下下界界存存储储保保护护浪浪费费的的CPU时间相对来说要多些。时间相对来说要多些。22四、存储管理四、存储管理的功能的功能(1)(1)地址转换地址转换 将将程序地址空间中使用的逻辑地址变换成主存中程序地址空间中使用的逻辑地址变换成主存中的物理的物理地址地址的过程的过程. .(
16、2(2) )存储保护存储保护 保证用户程序保证用户程序( (或进程映象或进程映象) )在各自的存储区域内操作,在各自的存储区域内操作,互不干扰。互不干扰。(3)(3)主存分配和回收主存分配和回收 按照按照一定的算法把某一空闲的主存区分一定的算法把某一空闲的主存区分配给进程,进程配给进程,进程终止后回收主存区。终止后回收主存区。(4) (4) 存储扩充存储扩充 向向用户提供一种不受物理存储器大小和结构限制的用户用户提供一种不受物理存储器大小和结构限制的用户编程时使用编程时使用的存储器,的存储器,称为虚拟存储器。称为虚拟存储器。 现现代代计计算算机机操操作作系系统统都都采采用用了了虚虚拟拟存存储储技技术术,使使得得用用户户编编程程序序时时不不需需要要考考虑虑物物理理内内存存的的结结构构和和容容量量,极极大大地地方方便便了了用户。用户。