蒲晓蓉操作系统原理—存储管理.pptx

上传人:莉*** 文档编号:87358829 上传时间:2023-04-16 格式:PPTX 页数:66 大小:216.11KB
返回 下载 相关 举报
蒲晓蓉操作系统原理—存储管理.pptx_第1页
第1页 / 共66页
蒲晓蓉操作系统原理—存储管理.pptx_第2页
第2页 / 共66页
点击查看更多>>
资源描述

《蒲晓蓉操作系统原理—存储管理.pptx》由会员分享,可在线阅读,更多相关《蒲晓蓉操作系统原理—存储管理.pptx(66页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、内存OS 外存外存第1页/共66页本章要点本章要点存储管理的任务存储管理的任务存储管理的任务存储管理的任务 内存划分与分配技术内存划分与分配技术内存划分与分配技术内存划分与分配技术 程序装入技术程序装入技术程序装入技术程序装入技术 简单存储管理技术简单存储管理技术简单存储管理技术简单存储管理技术 虚拟存储管理技术虚拟存储管理技术虚拟存储管理技术虚拟存储管理技术 第2页/共66页3.1 3.1 3.1 3.1 存储管理的任务存储管理的任务存储管理的任务存储管理的任务 第3页/共66页存储分配存储分配存储分配存储分配 基本任务:管理内存空间的分配与回收基本任务:管理内存空间的分配与回收基本任务:管

2、理内存空间的分配与回收基本任务:管理内存空间的分配与回收(1)(1)(1)(1)分配基本内存空间分配基本内存空间分配基本内存空间分配基本内存空间 (2)(2)(2)(2)增加新的内存空间增加新的内存空间增加新的内存空间增加新的内存空间 动态申请或释放内存空间动态申请或释放内存空间动态申请或释放内存空间动态申请或释放内存空间 (3)(3)(3)(3)回收内存空间回收内存空间回收内存空间回收内存空间第4页/共66页用于内存管理的数据结构用于内存管理的数据结构用于内存管理的数据结构用于内存管理的数据结构如位示图、空闲页框表等。如位示图、空闲页框表等。如位示图、空闲页框表等。如位示图、空闲页框表等。记

3、记记记载载载载哪哪哪哪些些些些内内内内存存存存被被被被分分分分配配配配给给给给了了了了哪哪哪哪个个个个进进进进程程程程,哪哪哪哪些些些些内内内内存存存存空空空空间间间间是是是是空空空空闲闲闲闲的的的的等等等等信息。信息。信息。信息。若若若若系系系系统统统统采采采采用用用用虚虚虚虚拟拟拟拟存存存存储储储储管管管管理理理理技技技技术术术术,还还还还需需需需要要要要登登登登记记记记进进进进程程程程的的的的程程程程序序序序和和和和数数数数据据据据中,哪些部分在内存,哪些部分尚在外存等信息。中,哪些部分在内存,哪些部分尚在外存等信息。中,哪些部分在内存,哪些部分尚在外存等信息。中,哪些部分在内存,哪些部

4、分尚在外存等信息。这这这这些些些些数数数数据据据据结结结结构构构构自自自自身身身身需需需需要要要要占占占占用用用用一一一一定定定定的的的的内内内内存存存存空空空空间间间间,也也也也需需需需要要要要系系系系统统统统花花花花费费费费额外的时间进行维护。额外的时间进行维护。额外的时间进行维护。额外的时间进行维护。第5页/共66页存储分配步骤存储分配步骤存储分配步骤存储分配步骤 首首首首先先先先,根根根根据据据据系系系系统统统统的的的的内内内内存存存存分分分分配配配配算算算算法法法法,在在在在空空空空闲闲闲闲的的的的内内内内存存存存分分分分区区区区中中中中寻寻寻寻找找找找到到到到一一一一块块块块满满满

5、满足足足足进进进进程程程程需需需需要要要要的的的的内内内内存存存存空空空空间间间间,将将将将其其其其分分分分配配配配给给给给进程。进程。进程。进程。然后,更新进程的资源分配清单、内存分配情况清单等数据结构。然后,更新进程的资源分配清单、内存分配情况清单等数据结构。然后,更新进程的资源分配清单、内存分配情况清单等数据结构。然后,更新进程的资源分配清单、内存分配情况清单等数据结构。第6页/共66页内存的回收内存的回收内存的回收内存的回收 更新相应的数据结构,将回收的内存空间标识为更新相应的数据结构,将回收的内存空间标识为更新相应的数据结构,将回收的内存空间标识为更新相应的数据结构,将回收的内存空间

6、标识为“空闲可用空闲可用空闲可用空闲可用”就行了。就行了。就行了。就行了。?该内存空间是否可以被回收该内存空间是否可以被回收该内存空间是否可以被回收该内存空间是否可以被回收?被其他进程共享被其他进程共享被其他进程共享被其他进程共享?属于相应的进程属于相应的进程属于相应的进程属于相应的进程?与相临的空闲空间进行合并与相临的空闲空间进行合并与相临的空闲空间进行合并与相临的空闲空间进行合并第7页/共66页地址映射地址映射地址映射地址映射 逻辑地址,或相对地址:一般从逻辑地址,或相对地址:一般从逻辑地址,或相对地址:一般从逻辑地址,或相对地址:一般从0 0 0 0开始编址开始编址开始编址开始编址 物理

7、地址,或绝对地址:标识内存中的每个存储单物理地址,或绝对地址:标识内存中的每个存储单物理地址,或绝对地址:标识内存中的每个存储单物理地址,或绝对地址:标识内存中的每个存储单元。元。元。元。图图3.1 3.1 进程执行时的寻址进程执行时的寻址当前栈顶当前栈顶进程控制信息进程控制信息程序入口点程序入口点地址值增加地址值增加进程控制块进程控制块程序程序栈栈数据数据访问数据访问数据分支指令分支指令进程映像进程映像第8页/共66页?逻辑地址逻辑地址逻辑地址逻辑地址 高级语言或汇编语言使用符号地址:变量名或标号高级语言或汇编语言使用符号地址:变量名或标号高级语言或汇编语言使用符号地址:变量名或标号高级语言

8、或汇编语言使用符号地址:变量名或标号 源程序经过编译、链接以后,其中的符号地址就会变成数字式的逻辑地址。源程序经过编译、链接以后,其中的符号地址就会变成数字式的逻辑地址。源程序经过编译、链接以后,其中的符号地址就会变成数字式的逻辑地址。源程序经过编译、链接以后,其中的符号地址就会变成数字式的逻辑地址。编译编译编译编译/链接程序会自动计算每一个变量或标号所对应的逻辑地址是多少。链接程序会自动计算每一个变量或标号所对应的逻辑地址是多少。链接程序会自动计算每一个变量或标号所对应的逻辑地址是多少。链接程序会自动计算每一个变量或标号所对应的逻辑地址是多少。第9页/共66页静态映射:静态重定位静态映射:静

9、态重定位静态映射:静态重定位静态映射:静态重定位地地地地址址址址映映映映射射射射:程程程程序序序序装装装装入入入入内内内内存存存存以以以以后后后后,由由由由操操操操作作作作系系系系统统统统将将将将逻逻逻逻辑辑辑辑地地地地址址址址改改改改为为为为逻逻逻逻辑地址加上起始地址,得到实际的物理地址。辑地址加上起始地址,得到实际的物理地址。辑地址加上起始地址,得到实际的物理地址。辑地址加上起始地址,得到实际的物理地址。重重重重定定定定位位位位(Relocation)(Relocation):对对对对目目目目标标标标程程程程序序序序中中中中的的的的指指指指令令令令和和和和数数数数据据据据地地地地址址址址进

10、进进进行行行行修修修修改的过程。改的过程。改的过程。改的过程。静静静静态态态态映映映映射射射射实实实实现现现现简简简简单单单单。地地地地址址址址变变变变换换换换只只只只在在在在程程程程序序序序装装装装入入入入时时时时一一一一次次次次完完完完成成成成,程程程程序序序序运行时不再改变。运行时不再改变。运行时不再改变。运行时不再改变。但但但但不不不不适适适适合合合合多多多多道道道道程程程程序序序序系系系系统统统统;不不不不允允允允许许许许系系系系统统统统执执执执行行行行内内内内存存存存的的的的碎碎碎碎片片片片整整整整理理理理;无无无无法实现虚拟存储法实现虚拟存储法实现虚拟存储法实现虚拟存储第10页/

11、共66页动态映射:动态重定位动态映射:动态重定位动态映射:动态重定位动态映射:动态重定位操作系统将程序装入内存以后,并不立即把目标程序中的逻辑操作系统将程序装入内存以后,并不立即把目标程序中的逻辑操作系统将程序装入内存以后,并不立即把目标程序中的逻辑操作系统将程序装入内存以后,并不立即把目标程序中的逻辑地址转换为物理地址,而是在处理机执行每一条指令时进行地地址转换为物理地址,而是在处理机执行每一条指令时进行地地址转换为物理地址,而是在处理机执行每一条指令时进行地地址转换为物理地址,而是在处理机执行每一条指令时进行地址转换。址转换。址转换。址转换。复杂且费时。复杂且费时。复杂且费时。复杂且费时。

12、为了系统效率,处理机中设置了专门的高速硬件,自动完成地为了系统效率,处理机中设置了专门的高速硬件,自动完成地为了系统效率,处理机中设置了专门的高速硬件,自动完成地为了系统效率,处理机中设置了专门的高速硬件,自动完成地址转换,这样的硬件被称作地址管理部件,如图址转换,这样的硬件被称作地址管理部件,如图址转换,这样的硬件被称作地址管理部件,如图址转换,这样的硬件被称作地址管理部件,如图3.23.23.23.2所示。所示。所示。所示。第11页/共66页CPUCPU地址管理部件地址管理部件程序指令程序指令物理地址物理地址地址总线地址总线逻辑地址逻辑地址图图3.2 CPU3.2 CPU中的地址管理部件工

13、作示意图中的地址管理部件工作示意图第12页/共66页存储保护存储保护存储保护存储保护防止地址越界,防止操作越权。防止地址越界,防止操作越权。防止地址越界,防止操作越权。防止地址越界,防止操作越权。地地地地址址址址越越越越界界界界:进进进进程程程程访访访访问问问问不不不不属属属属于于于于自自自自己己己己的的的的地地地地址址址址空空空空间间间间,或或或或者者者者说说说说进进进进程程程程在在在在运运运运行时所产生的物理地址超越其自身的地址空间范围。行时所产生的物理地址超越其自身的地址空间范围。行时所产生的物理地址超越其自身的地址空间范围。行时所产生的物理地址超越其自身的地址空间范围。可可可可能能能能

14、侵侵侵侵犯犯犯犯其其其其他他他他用用用用户户户户进进进进程程程程空空空空间间间间,也也也也可可可可能能能能侵侵侵侵犯犯犯犯操操操操作作作作系系系系统统统统的的的的存存存存储储储储空间空间空间空间操作越权:进程对共享存储区的操作违反了系统规定的权限。操作越权:进程对共享存储区的操作违反了系统规定的权限。操作越权:进程对共享存储区的操作违反了系统规定的权限。操作越权:进程对共享存储区的操作违反了系统规定的权限。第13页/共66页存储保护的实现存储保护的实现存储保护的实现存储保护的实现存储保护只能进程执行过程中动态地进行,不可能在运行前一存储保护只能进程执行过程中动态地进行,不可能在运行前一存储保护

15、只能进程执行过程中动态地进行,不可能在运行前一存储保护只能进程执行过程中动态地进行,不可能在运行前一次性静态完成。次性静态完成。次性静态完成。次性静态完成。若采用动态映射动态计算物理地址,可能计算出错误地址;若若采用动态映射动态计算物理地址,可能计算出错误地址;若若采用动态映射动态计算物理地址,可能计算出错误地址;若若采用动态映射动态计算物理地址,可能计算出错误地址;若采用静态映射,进程执行过程中也可能出错,从而导致地址越采用静态映射,进程执行过程中也可能出错,从而导致地址越采用静态映射,进程执行过程中也可能出错,从而导致地址越采用静态映射,进程执行过程中也可能出错,从而导致地址越界或操作越权

16、。界或操作越权。界或操作越权。界或操作越权。为了提高系统效率,存储保护的主要工作必须由高速的专用硬为了提高系统效率,存储保护的主要工作必须由高速的专用硬为了提高系统效率,存储保护的主要工作必须由高速的专用硬为了提高系统效率,存储保护的主要工作必须由高速的专用硬件来完成:在地址管理部件中。件来完成:在地址管理部件中。件来完成:在地址管理部件中。件来完成:在地址管理部件中。第14页/共66页存储共享存储共享存储共享存储共享为了进程通信和节约内存空间,两个或多个进程共用内存中相为了进程通信和节约内存空间,两个或多个进程共用内存中相为了进程通信和节约内存空间,两个或多个进程共用内存中相为了进程通信和节

17、约内存空间,两个或多个进程共用内存中相同的分区,即他们的物理空间有相交的部分。同的分区,即他们的物理空间有相交的部分。同的分区,即他们的物理空间有相交的部分。同的分区,即他们的物理空间有相交的部分。可以共享进程的代码,也可以共享进程数据。可以共享进程的代码,也可以共享进程数据。可以共享进程的代码,也可以共享进程数据。可以共享进程的代码,也可以共享进程数据。一般地,进程之间共享代码的目的主要是为了节约存储空间,一般地,进程之间共享代码的目的主要是为了节约存储空间,一般地,进程之间共享代码的目的主要是为了节约存储空间,一般地,进程之间共享代码的目的主要是为了节约存储空间,共享数据的目的主要是为了实

18、现进程间相互通信。共享数据的目的主要是为了实现进程间相互通信。共享数据的目的主要是为了实现进程间相互通信。共享数据的目的主要是为了实现进程间相互通信。第15页/共66页PCB3 数据数据代码代码PCB2 代码代码数据数据PCB1数据数据代码代码 进程进程1进程进程2进程进程3图图3.3 进程之间共享代码和数据进程之间共享代码和数据第16页/共66页 通过存储共享完成通信的过程:通过存储共享完成通信的过程:通过存储共享完成通信的过程:通过存储共享完成通信的过程:一个进程将数据写入共享存储区,一个进程将数据写入共享存储区,一个进程将数据写入共享存储区,一个进程将数据写入共享存储区,另一个进程从共享

19、存储区中读出数据。另一个进程从共享存储区中读出数据。另一个进程从共享存储区中读出数据。另一个进程从共享存储区中读出数据。第17页/共66页共享代码共享代码共享代码共享代码程序可重入:设计程序时,逻辑上将程序代码区和数据区分开。程序可重入:设计程序时,逻辑上将程序代码区和数据区分开。程序可重入:设计程序时,逻辑上将程序代码区和数据区分开。程序可重入:设计程序时,逻辑上将程序代码区和数据区分开。代码区不包含运行程序时需要改变的数据,被处理的数据都放代码区不包含运行程序时需要改变的数据,被处理的数据都放代码区不包含运行程序时需要改变的数据,被处理的数据都放代码区不包含运行程序时需要改变的数据,被处理

20、的数据都放在独立的数据区。这样,进程执行过程中就不会改变代码部分在独立的数据区。这样,进程执行过程中就不会改变代码部分在独立的数据区。这样,进程执行过程中就不会改变代码部分在独立的数据区。这样,进程执行过程中就不会改变代码部分的任何内容。的任何内容。的任何内容。的任何内容。数据区是单独的一个段、堆栈式动态申请的分区,或通过参数数据区是单独的一个段、堆栈式动态申请的分区,或通过参数数据区是单独的一个段、堆栈式动态申请的分区,或通过参数数据区是单独的一个段、堆栈式动态申请的分区,或通过参数传递。传递。传递。传递。第18页/共66页共享代码共享代码共享代码共享代码创建新进程时,不需要为该进程的代码部

21、分另外申请内存空间,创建新进程时,不需要为该进程的代码部分另外申请内存空间,创建新进程时,不需要为该进程的代码部分另外申请内存空间,创建新进程时,不需要为该进程的代码部分另外申请内存空间,只需将该进程只需将该进程只需将该进程只需将该进程PCBPCBPCBPCB中的进程代码空间的地址指向已有的代码空间中的进程代码空间的地址指向已有的代码空间中的进程代码空间的地址指向已有的代码空间中的进程代码空间的地址指向已有的代码空间地址。地址。地址。地址。进程的数据区,要么等到操作系统为其分配相应存储空间以后,进程的数据区,要么等到操作系统为其分配相应存储空间以后,进程的数据区,要么等到操作系统为其分配相应存

22、储空间以后,进程的数据区,要么等到操作系统为其分配相应存储空间以后,将数据区地址填写在将数据区地址填写在将数据区地址填写在将数据区地址填写在PCBPCBPCBPCB中;要么由进程运行时向操作系统动态中;要么由进程运行时向操作系统动态中;要么由进程运行时向操作系统动态中;要么由进程运行时向操作系统动态申请。申请。申请。申请。第19页/共66页共享代码共享代码共享代码共享代码可可可可以以以以将将将将进进进进程程程程的的的的代代代代码码码码视视视视为为为为处处处处理理理理数数数数据据据据的的的的一一一一组组组组规规规规则则则则或或或或公公公公式式式式,这这这这一一一一组组组组规规规规则或公式存储在内

23、存中的某个分区。则或公式存储在内存中的某个分区。则或公式存储在内存中的某个分区。则或公式存储在内存中的某个分区。进程的执行:利用这一组规则或公式来完成数据的运算。进程的执行:利用这一组规则或公式来完成数据的运算。进程的执行:利用这一组规则或公式来完成数据的运算。进程的执行:利用这一组规则或公式来完成数据的运算。多多多多个个个个进进进进程程程程共共共共享享享享代代代代码码码码:多多多多个个个个进进进进程程程程需需需需要要要要使使使使用用用用同同同同一一一一组组组组规规规规则则则则或或或或公公公公式式式式处处处处理理理理不同的数据。不同的数据。不同的数据。不同的数据。PCBPCBPCBPCB:告告

24、告告诉诉诉诉进进进进程程程程其其其其所所所所需需需需的的的的规规规规则则则则或或或或公公公公式式式式以以以以及及及及需需需需要要要要处处处处理理理理的的的的数数数数据据据据存存存存储储储储在在在在哪里,进程的进度等哪里,进程的进度等哪里,进程的进度等哪里,进程的进度等第20页/共66页共享代码共享代码共享代码共享代码 对对对对于于于于高高高高级级级级程程程程序序序序的的的的设设设设计计计计而而而而言言言言,只只只只要要要要相相相相应应应应的的的的编编编编译译译译程程程程序序序序支支支支持持持持可可可可重重重重入入入入的的的的程程程程序序序序设设设设计计计计,那那那那么么么么,设设设设计计计计程

25、程程程序序序序时时时时就就就就不不不不需需需需要要要要考考考考虑虑虑虑程序的可重入问题,不需要将程序代码和数据严格分开。程序的可重入问题,不需要将程序代码和数据严格分开。程序的可重入问题,不需要将程序代码和数据严格分开。程序的可重入问题,不需要将程序代码和数据严格分开。编译程序在编译时,会自动将欲处理的数据与程序代码分开存储,以保证代码部分是纯的、可重入的。编译程序在编译时,会自动将欲处理的数据与程序代码分开存储,以保证代码部分是纯的、可重入的。编译程序在编译时,会自动将欲处理的数据与程序代码分开存储,以保证代码部分是纯的、可重入的。编译程序在编译时,会自动将欲处理的数据与程序代码分开存储,以

26、保证代码部分是纯的、可重入的。第21页/共66页存储扩充存储扩充存储扩充存储扩充 内存:速度快、容量小、价格贵内存:速度快、容量小、价格贵内存:速度快、容量小、价格贵内存:速度快、容量小、价格贵外存:容量大、速度慢、价格便宜外存:容量大、速度慢、价格便宜外存:容量大、速度慢、价格便宜外存:容量大、速度慢、价格便宜目目目目的的的的:在在在在多多多多道道道道程程程程序序序序系系系系统统统统中中中中能能能能运运运运行行行行更更更更多多多多、更更更更大大大大的的的的程程程程序序序序,降降降降低低低低系系系系统统统统的造价,提高系统的性价比的造价,提高系统的性价比的造价,提高系统的性价比的造价,提高系统

27、的性价比存储扩充:采用软件手段,在硬件的配合下,将部分外存空间存储扩充:采用软件手段,在硬件的配合下,将部分外存空间存储扩充:采用软件手段,在硬件的配合下,将部分外存空间存储扩充:采用软件手段,在硬件的配合下,将部分外存空间虚拟为内存空间,并将内存和外存有机地结合起来,得到一个虚拟为内存空间,并将内存和外存有机地结合起来,得到一个虚拟为内存空间,并将内存和外存有机地结合起来,得到一个虚拟为内存空间,并将内存和外存有机地结合起来,得到一个容量相当于外存、速度接近于内存、价格十分便宜的容量相当于外存、速度接近于内存、价格十分便宜的容量相当于外存、速度接近于内存、价格十分便宜的容量相当于外存、速度接

28、近于内存、价格十分便宜的虚拟存储虚拟存储虚拟存储虚拟存储系统系统系统系统第22页/共66页存储扩充存储扩充存储扩充存储扩充 虚拟存储系统在逻辑上对外是一个整体,用户感觉到系统提供了一个非常大的虚拟存储系统在逻辑上对外是一个整体,用户感觉到系统提供了一个非常大的虚拟存储系统在逻辑上对外是一个整体,用户感觉到系统提供了一个非常大的虚拟存储系统在逻辑上对外是一个整体,用户感觉到系统提供了一个非常大的“内存内存内存内存”空间。空间。空间。空间。操作系统负责完成内存与外存之间的透明切换:进程运行时将需要的数据或代码从外存装入内存,并将内操作系统负责完成内存与外存之间的透明切换:进程运行时将需要的数据或代

29、码从外存装入内存,并将内操作系统负责完成内存与外存之间的透明切换:进程运行时将需要的数据或代码从外存装入内存,并将内操作系统负责完成内存与外存之间的透明切换:进程运行时将需要的数据或代码从外存装入内存,并将内存中暂时不用的部分交换到外存。存中暂时不用的部分交换到外存。存中暂时不用的部分交换到外存。存中暂时不用的部分交换到外存。第23页/共66页3.2 3.2 3.2 3.2 内存划分与分配技术内存划分与分配技术内存划分与分配技术内存划分与分配技术第24页/共66页内存划分内存划分内存划分内存划分 静态划分:划分预先进行,创建新进程时,在内存中找到一个合适的分区分配给它。静态划分:划分预先进行,

30、创建新进程时,在内存中找到一个合适的分区分配给它。静态划分:划分预先进行,创建新进程时,在内存中找到一个合适的分区分配给它。静态划分:划分预先进行,创建新进程时,在内存中找到一个合适的分区分配给它。动态划分:系统初始化时,可以将整个内存的用户区看作一个分区。创建新进程时,根据进程申请的空间动态划分:系统初始化时,可以将整个内存的用户区看作一个分区。创建新进程时,根据进程申请的空间动态划分:系统初始化时,可以将整个内存的用户区看作一个分区。创建新进程时,根据进程申请的空间动态划分:系统初始化时,可以将整个内存的用户区看作一个分区。创建新进程时,根据进程申请的空间大小,在这个分区中动态地为之划分一

31、部分空间。大小,在这个分区中动态地为之划分一部分空间。大小,在这个分区中动态地为之划分一部分空间。大小,在这个分区中动态地为之划分一部分空间。第25页/共66页静态划分静态划分静态划分静态划分必须事先进行,一旦划分完毕,分区的大小和数目将不再改变。必须事先进行,一旦划分完毕,分区的大小和数目将不再改变。必须事先进行,一旦划分完毕,分区的大小和数目将不再改变。必须事先进行,一旦划分完毕,分区的大小和数目将不再改变。可以划分:大小相同可以划分:大小相同可以划分:大小相同可以划分:大小相同/不同的分区,如固定分区和分页。不同的分区,如固定分区和分页。不同的分区,如固定分区和分页。不同的分区,如固定分

32、区和分页。固固固固定定定定分分分分区区区区:根根根根据据据据系系系系统统统统管管管管理理理理员员员员的的的的经经经经验验验验和和和和一一一一些些些些统统统统计计计计规规规规律律律律,事事事事先先先先将将将将内内内内存存存存 空空空空 间间间间 划划划划 分分分分 为为为为 若若若若 干干干干 个个个个 固固固固 定定定定 大大大大 小小小小 的的的的 分分分分 区区区区,称称称称 为为为为 分分分分 区区区区(Partitioning)(Partitioning)。当当当当进进进进程程程程申申申申请请请请存存存存储储储储空空空空间间间间时时时时,系系系系统统统统为为为为之之之之分分分分配配配配

33、一一一一个个个个大小合适的空闲分区。大小合适的空闲分区。大小合适的空闲分区。大小合适的空闲分区。第26页/共66页静态划分静态划分静态划分静态划分 分页:特殊的静态分区,需要事先将内存空间划分为若干个大小相同的分区,称为页框,或帧(分页:特殊的静态分区,需要事先将内存空间划分为若干个大小相同的分区,称为页框,或帧(分页:特殊的静态分区,需要事先将内存空间划分为若干个大小相同的分区,称为页框,或帧(分页:特殊的静态分区,需要事先将内存空间划分为若干个大小相同的分区,称为页框,或帧(frameframe)。)。)。)。当进程申请存储空间时,系统可以为之分配多个空闲页框。当进程申请存储空间时,系统可

34、以为之分配多个空闲页框。当进程申请存储空间时,系统可以为之分配多个空闲页框。当进程申请存储空间时,系统可以为之分配多个空闲页框。第27页/共66页8MB8MB8MB8MB8MB操作系统操作系统8MB(a)等长分区等长分区图图3.4 固定分区划分固定分区划分固定分区:等长固定分区:等长第28页/共66页固定分区:等长固定分区:等长固定分区:等长固定分区:等长所有分区的长度相同。所有分区的长度相同。所有分区的长度相同。所有分区的长度相同。优优优优点点点点:分分分分配配配配简简简简单单单单,只只只只要要要要进进进进程程程程大大大大小小小小不不不不超超超超过过过过分分分分区区区区大大大大小小小小,就就

35、就就可可可可以以以以装装装装到到到到任何一个分区中运行。任何一个分区中运行。任何一个分区中运行。任何一个分区中运行。浪浪浪浪费费费费存存存存储储储储空空空空间间间间。若若若若进进进进程程程程申申申申请请请请的的的的存存存存储储储储空空空空间间间间很很很很小小小小,却却却却需需需需要要要要占占占占用用用用整整整整个个个个分区,分区内存在不可用的浪费空间,称为内零头分区,分区内存在不可用的浪费空间,称为内零头分区,分区内存在不可用的浪费空间,称为内零头分区,分区内存在不可用的浪费空间,称为内零头 (internal fragmentationinternal fragmentation)。)。)。

36、)。无法运行超过分区大小的程序。无法运行超过分区大小的程序。无法运行超过分区大小的程序。无法运行超过分区大小的程序。无法精确确定分区的大小。无法精确确定分区的大小。无法精确确定分区的大小。无法精确确定分区的大小。第29页/共66页操作系统操作系统8MB2MB8MB4MB12MB20MB(b)异长分区异长分区图图3.4 固定分区划分固定分区划分固定分区:异长固定分区:异长第30页/共66页固定分区:异长固定分区:异长固定分区:异长固定分区:异长 将内存空间划分为若干个长度不同的分区,以适合于不同大小的进程需要将内存空间划分为若干个长度不同的分区,以适合于不同大小的进程需要将内存空间划分为若干个长

37、度不同的分区,以适合于不同大小的进程需要将内存空间划分为若干个长度不同的分区,以适合于不同大小的进程需要 既提高存储空间的利用率、减少浪费,又使长进程能装入运行。既提高存储空间的利用率、减少浪费,又使长进程能装入运行。既提高存储空间的利用率、减少浪费,又使长进程能装入运行。既提高存储空间的利用率、减少浪费,又使长进程能装入运行。但是,确定每个分区的大小也是一件十分困难的事情。但是,确定每个分区的大小也是一件十分困难的事情。但是,确定每个分区的大小也是一件十分困难的事情。但是,确定每个分区的大小也是一件十分困难的事情。第31页/共66页固定分区固定分区固定分区固定分区管理简单,只需要建立一张分区

38、使用表,登记分区的使用情况。管理简单,只需要建立一张分区使用表,登记分区的使用情况。管理简单,只需要建立一张分区使用表,登记分区的使用情况。管理简单,只需要建立一张分区使用表,登记分区的使用情况。(等长分区只需要标明分区状态是已分配,还是空闲)(等长分区只需要标明分区状态是已分配,还是空闲)(等长分区只需要标明分区状态是已分配,还是空闲)(等长分区只需要标明分区状态是已分配,还是空闲)分区号分区号分区号分区号(可省略可省略可省略可省略)大小大小大小大小起始地址起始地址起始地址起始地址状态状态状态状态1 1 1 12020202040404040未分配未分配未分配未分配2 2 2 2505050

39、5060606060已分配已分配已分配已分配3 3 3 350505050110110110110未分配未分配未分配未分配4 4 4 4100100100100160160160160已分配已分配已分配已分配5 5 5 5200200200200260260260260已分配已分配已分配已分配第32页/共66页固定分区:分配固定分区:分配固定分区:分配固定分区:分配首先,检索分区使用表,从中找出一个尚未分配的、能满足大首先,检索分区使用表,从中找出一个尚未分配的、能满足大首先,检索分区使用表,从中找出一个尚未分配的、能满足大首先,检索分区使用表,从中找出一个尚未分配的、能满足大小且内零头最小的

40、分区。小且内零头最小的分区。小且内零头最小的分区。小且内零头最小的分区。若分区使用表中的分区按从小到大的顺序排列,则分配时,从若分区使用表中的分区按从小到大的顺序排列,则分配时,从若分区使用表中的分区按从小到大的顺序排列,则分配时,从若分区使用表中的分区按从小到大的顺序排列,则分配时,从表中的第一个表项开始查找,找到的第一个尚未分配并满足大表中的第一个表项开始查找,找到的第一个尚未分配并满足大表中的第一个表项开始查找,找到的第一个尚未分配并满足大表中的第一个表项开始查找,找到的第一个尚未分配并满足大小的分区即是最佳的分区。小的分区即是最佳的分区。小的分区即是最佳的分区。小的分区即是最佳的分区。

41、将分区使用表中该分区的状态修改为已分配。将分区使用表中该分区的状态修改为已分配。将分区使用表中该分区的状态修改为已分配。将分区使用表中该分区的状态修改为已分配。若找不到大小足够的分区,则系统将拒绝运行该进程,或采用若找不到大小足够的分区,则系统将拒绝运行该进程,或采用若找不到大小足够的分区,则系统将拒绝运行该进程,或采用若找不到大小足够的分区,则系统将拒绝运行该进程,或采用其它技术进行处理,如覆盖技术等。其它技术进行处理,如覆盖技术等。其它技术进行处理,如覆盖技术等。其它技术进行处理,如覆盖技术等。第33页/共66页 固定分区存在内零头,浪费存储空间:固定分区存在内零头,浪费存储空间:固定分区

42、存在内零头,浪费存储空间:固定分区存在内零头,浪费存储空间:异长分区较等长分区可以一定程度上提高系统的性能,但并不能彻底解决问题。异长分区较等长分区可以一定程度上提高系统的性能,但并不能彻底解决问题。异长分区较等长分区可以一定程度上提高系统的性能,但并不能彻底解决问题。异长分区较等长分区可以一定程度上提高系统的性能,但并不能彻底解决问题。第34页/共66页分页式划分分页式划分分页式划分分页式划分(Paging)(Paging)为了提高内存资源的利用率,可以考虑将分区长度缩小,减少为了提高内存资源的利用率,可以考虑将分区长度缩小,减少为了提高内存资源的利用率,可以考虑将分区长度缩小,减少为了提高

43、内存资源的利用率,可以考虑将分区长度缩小,减少内零头浪费的空间。内零头浪费的空间。内零头浪费的空间。内零头浪费的空间。但是,这样做必须有一个前提,即进程可以分配若干不连续的但是,这样做必须有一个前提,即进程可以分配若干不连续的但是,这样做必须有一个前提,即进程可以分配若干不连续的但是,这样做必须有一个前提,即进程可以分配若干不连续的存储空间。否则,小分区可能使更多的进程无法装入内存。存储空间。否则,小分区可能使更多的进程无法装入内存。存储空间。否则,小分区可能使更多的进程无法装入内存。存储空间。否则,小分区可能使更多的进程无法装入内存。分页划分:系统预先将内存空间划分为若干较小的、固定大小分页

44、划分:系统预先将内存空间划分为若干较小的、固定大小分页划分:系统预先将内存空间划分为若干较小的、固定大小分页划分:系统预先将内存空间划分为若干较小的、固定大小的页框。的页框。的页框。的页框。第35页/共66页151515150 0 0 02 2 2 21 1 1 13 3 3 3内存内存内存内存页框号页框号页框号页框号图图图图3.5 3.5 3.5 3.5 分页式划分分页式划分分页式划分分页式划分第36页/共66页分页式划分分页式划分分页式划分分页式划分(Paging)(Paging)页框较小,有效地减少了内零头的浪费页框较小,有效地减少了内零头的浪费页框较小,有效地减少了内零头的浪费页框较小

45、,有效地减少了内零头的浪费每个进程平均浪费每个进程平均浪费每个进程平均浪费每个进程平均浪费0.50.50.50.5页框大小。页框大小。页框大小。页框大小。页框大小固定,简化了存储分配。页框大小固定,简化了存储分配。页框大小固定,简化了存储分配。页框大小固定,简化了存储分配。需要记录内存页框的分配和使用情况:位示图、空闲页框表或需要记录内存页框的分配和使用情况:位示图、空闲页框表或需要记录内存页框的分配和使用情况:位示图、空闲页框表或需要记录内存页框的分配和使用情况:位示图、空闲页框表或空闲页框链表等。空闲页框链表等。空闲页框链表等。空闲页框链表等。第37页/共66页分页:数据结构分页:数据结构

46、分页:数据结构分页:数据结构位位位位示示示示图图图图是是是是一一一一个个个个由由由由0 0、1 1构构构构成成成成的的的的向向向向量量量量,其其其其中中中中每每每每一一一一位位位位(bit)(bit)表表表表示示示示一一一一个个个个页页页页框框框框的的的的使使使使用用用用状状状状态态态态。一一一一般般般般规规规规定定定定,0 0表表表表示示示示页页页页框框框框空空空空闲闲闲闲,1 1表表表表示示示示页页页页框框框框已已已已被被被被分分分分配。配。配。配。假假假假 定定定定 存存存存 储储储储 空空空空 间间间间 被被被被 划划划划 分分分分 为为为为 n n个个个个 页页页页 框框框框,所所所

47、所 有有有有 页页页页 框框框框 依依依依 次次次次 编编编编 号号号号 为为为为0,1,2,n-10,1,2,n-1,则记录所有页框的使用状态的位示图形如:,则记录所有页框的使用状态的位示图形如:,则记录所有页框的使用状态的位示图形如:,则记录所有页框的使用状态的位示图形如:00000111011111111111000111100111110000011101111111111100011110011111第38页/共66页分页:数据结构分页:数据结构分页:数据结构分页:数据结构 空闲页框表空闲页框表空闲页框表空闲页框表:以表格形式记载内存页框的使用情况。以表格形式记载内存页框的使用情况。

48、以表格形式记载内存页框的使用情况。以表格形式记载内存页框的使用情况。显然,为每一个空闲页框设置一个表项是不合理的,这将导致页框表太大。显然,为每一个空闲页框设置一个表项是不合理的,这将导致页框表太大。显然,为每一个空闲页框设置一个表项是不合理的,这将导致页框表太大。显然,为每一个空闲页框设置一个表项是不合理的,这将导致页框表太大。可以为一组连续的空闲页框设置一个表项,其中主要包括:首页框号和页框个数,如表可以为一组连续的空闲页框设置一个表项,其中主要包括:首页框号和页框个数,如表可以为一组连续的空闲页框设置一个表项,其中主要包括:首页框号和页框个数,如表可以为一组连续的空闲页框设置一个表项,其

49、中主要包括:首页框号和页框个数,如表3.23.23.23.2所示。所示。所示。所示。第39页/共66页分页:数据结构分页:数据结构分页:数据结构分页:数据结构表表表表3.2 3.2 空闲页框表空闲页框表空闲页框表空闲页框表 首页框号首页框号首页框号首页框号页框个数页框个数页框个数页框个数505010010022022030303003008080450450210210第40页/共66页分页:数据结构分页:数据结构分页:数据结构分页:数据结构位示图和空闲页框表都需要占用专门的存储空间位示图和空闲页框表都需要占用专门的存储空间位示图和空闲页框表都需要占用专门的存储空间位示图和空闲页框表都需要占用

50、专门的存储空间空闲页框链表空闲页框链表空闲页框链表空闲页框链表:是将内存中所有的空闲页框通过其内的链接指:是将内存中所有的空闲页框通过其内的链接指:是将内存中所有的空闲页框通过其内的链接指:是将内存中所有的空闲页框通过其内的链接指针连成一个链表,系统只需要记录链表头的位置。针连成一个链表,系统只需要记录链表头的位置。针连成一个链表,系统只需要记录链表头的位置。针连成一个链表,系统只需要记录链表头的位置。为进程分配存储空间时,从链表头开始取所需的页框,同时更为进程分配存储空间时,从链表头开始取所需的页框,同时更为进程分配存储空间时,从链表头开始取所需的页框,同时更为进程分配存储空间时,从链表头开

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > PPT文档

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁