操作系统(第2版)孟庆昌-牛欣源-编著--ppt课件--第五章-存-储-管-理.ppt
《操作系统(第2版)孟庆昌-牛欣源-编著--ppt课件--第五章-存-储-管-理.ppt》由会员分享,可在线阅读,更多相关《操作系统(第2版)孟庆昌-牛欣源-编著--ppt课件--第五章-存-储-管-理.ppt(134页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第5章章 存存 储储 管管 理理图图5-1 内存在计算机系统中的地位内存在计算机系统中的地位5.1 引引 言言5.2 分分 区区 法法5.5 分分 页页 技技 术术5.6 分分 段段 技技 术术5.7 段页式技术段页式技术5.8 虚拟存储器虚拟存储器5.9 请求分页技术请求分页技术5.10 页面置换算法页面置换算法本本章章内内容容提提要要5.1 引引 言言n内存内存(Main Memory或或Primary Memory或或Real Memory)也称主存。)也称主存。n指指CPU能直接存取指令和数据的存储器,能直接存取指令和数据的存储器,统一编址。统一编址。5.1.1 用户程用户程序的执行
2、序的执行图图5-2 用户程序用户程序的机内处理过程的机内处理过程5.1.1 用户程序的主要处理阶段用户程序的主要处理阶段1编辑阶段:编辑源代码。编辑阶段:编辑源代码。2编译阶段:源代码转换为二进制指令构成的编译阶段:源代码转换为二进制指令构成的目标代码模块。目标代码模块。3链接阶段:将链接阶段:将目标模块及所需的库函数链接目标模块及所需的库函数链接形成一个可执行程序。形成一个可执行程序。4装入阶段:将可执行程序装入内存某地址空装入阶段:将可执行程序装入内存某地址空间。间。5运行阶段:从第一条指令开始运行程序。运行阶段:从第一条指令开始运行程序。内存的使用内存的使用u每个目标模块指令代码都以每个
3、目标模块指令代码都以0为基地址顺序为基地址顺序编址,称为相对地址或逻辑地址。编址,称为相对地址或逻辑地址。u内存中物理存储单元统一由基地址内存中物理存储单元统一由基地址0开始顺开始顺序编址,称为绝对地址或物理地址。序编址,称为绝对地址或物理地址。u可执行程序各条指令需要进行地址转换方可执行程序各条指令需要进行地址转换方能正确执行。能正确执行。主存管理功能主存管理功能n逻辑地址到物理地址的逻辑地址到物理地址的地址转换地址转换n内存分配和回收内存分配和回收n存储保护存储保护n内存扩充内存扩充(虚拟存储技术虚拟存储技术)5.1.2 重定位重定位n程序逻辑地址的范围为逻辑地址空间。程序逻辑地址的范围为
4、逻辑地址空间。n可执行程序存放的内存存储单元的范围为物可执行程序存放的内存存储单元的范围为物理地址空间。理地址空间。n用户程序和数据装入内存时,需对目标程序用户程序和数据装入内存时,需对目标程序中的逻辑地址进行修改,把逻辑地址转变为中的逻辑地址进行修改,把逻辑地址转变为物理地址的过程称做地址重定位物理地址的过程称做地址重定位。地址映射地址映射Load A 1200 3456 。1200物理地址空间物理地址空间Load A data1data1 3456源程序源程序Load A 200 34560100200编译编译连接连接逻辑地址空间逻辑地址空间BA=100010001静态重定位静态重定位n目
5、标程序装入内存时,由装入程序对目标目标程序装入内存时,由装入程序对目标程序中的指令地址、数据地址进行修改,程序中的指令地址、数据地址进行修改,完成逻辑地址到物理地址的转换。完成逻辑地址到物理地址的转换。图图5-4 静态重定位示意图静态重定位示意图静态重定位技术分析静态重定位技术分析n优点优点n不需要硬件的支持不需要硬件的支持 n缺点缺点n程序必须占用连续的内存空间程序必须占用连续的内存空间n程序装入后不能移动位置程序装入后不能移动位置n不支持虚拟存储及其交换技术不支持虚拟存储及其交换技术 n进程难以共享程序代码进程难以共享程序代码2动态重定位动态重定位n在每条指令执行时,对所访问的内存进行在每
6、条指令执行时,对所访问的内存进行地址重定位。地址重定位。n硬件地址转换机构实现动态重定位。硬件地址转换机构实现动态重定位。图图5-5 动态重定位示意图动态重定位示意图动态地址重定位优点:动态地址重定位优点:n程程序序的的内内存存空空间间动动态态可可变变,当当程程序序移移到另一个空间时,修改寄存器到另一个空间时,修改寄存器BRBR的值的值n一个程序不必占用连续内存空间一个程序不必占用连续内存空间n可以部分装入程序运行可以部分装入程序运行n便于多个进程共享同一个程序代码便于多个进程共享同一个程序代码动态地址重定位的代价:动态地址重定位的代价:n需要硬件的支持。需要硬件的支持。n实现存储管理的软件算
7、法较为复杂。实现存储管理的软件算法较为复杂。5.2 分分 区区 法法n支持多道程序运行的一种存储管理方式。支持多道程序运行的一种存储管理方式。n把整个内存划分为若干大小不等的区域,把整个内存划分为若干大小不等的区域,操作系统占用一个区域,其它区域供用操作系统占用一个区域,其它区域供用户进程共享,每个进程占用一个分区,户进程共享,每个进程占用一个分区,这种方法称为分区存储管理。这种方法称为分区存储管理。n分区的划分:分区的划分:n固定分区固定分区n动态分区动态分区 5.2.1 固定分区法固定分区法n内存中分区个数、分区大小固定,每个内存中分区个数、分区大小固定,每个分区装入一个进程。分区装入一个
8、进程。1分区的大小分区的大小n划分分区大小有两种方式:划分分区大小有两种方式:n分区大小相同分区大小相同n分区大小不同分区大小不同2内存分配内存分配n分区等分方式,进程装入内存很简单。分区等分方式,进程装入内存很简单。n分区差分方式,有多个输入队列法和单一输入队列法分区差分方式,有多个输入队列法和单一输入队列法图图5-6 固定分区内存分配固定分区内存分配5.2.2 动态分区法动态分区法1分区的分配分区的分配n进程进入内存建立分区,大小适应进程进程进入内存建立分区,大小适应进程的需要。这种技术称为动态分区法。的需要。这种技术称为动态分区法。2数据结构数据结构(1)空闲分区表存放)空闲分区表存放(
9、2)空闲分区链存放)空闲分区链存放图图5-7 MVT的内存分配和进程调度情况的内存分配和进程调度情况3动态分区分配算法动态分区分配算法(1)最先适应算法)最先适应算法n空闲表按内存地址顺序排列空闲表按内存地址顺序排列(2)最佳(坏)适应算法)最佳(坏)适应算法n空闲表按空闲块大小的增量形式排列空闲表按空闲块大小的增量形式排列(3)循环适应算法)循环适应算法n最先适应算法的变种。从上次找到的可用最先适应算法的变种。从上次找到的可用分区的下一个空闲分区开始查找,顺序选分区的下一个空闲分区开始查找,顺序选择满足要求的第一个空闲分区。择满足要求的第一个空闲分区。5.3 可重定位分区分配可重定位分区分配
10、5.3.1 碎片问题碎片问题n内存中尺寸太小、无法利用的小分区称内存中尺寸太小、无法利用的小分区称做做“碎片碎片”。n固定分区法会产生内部碎片。动态分区固定分区法会产生内部碎片。动态分区会产生外部碎片会产生外部碎片.图图5-9 分配分配16 KB内存块之前和之后的内存配置内存块之前和之后的内存配置5.3.1 碎片问题碎片问题n紧缩的时机紧缩的时机n进程结束、释放所占用的分区时(空闲区有进程结束、释放所占用的分区时(空闲区有可能相邻)可能相邻)n在分配进程的分区时(空闲区有可能不够)在分配进程的分区时(空闲区有可能不够)5.3.2 紧缩紧缩n移动某些已分配区,使所有进程的分区紧邻的技术。移动某些
11、已分配区,使所有进程的分区紧邻的技术。图图5-10 可可重重定定位位分分区区的的紧紧缩缩5.3.3 动态重定位的实现动态重定位的实现n动态重定位经常用硬件实现动态重定位经常用硬件实现n硬件支持硬件支持n基址寄存器基址寄存器n限长寄存器限长寄存器图图5-11 动态重定位的实现过程动态重定位的实现过程5.3.4 可重定位分区法优缺点可重定位分区法优缺点n优点优点n可以消除碎片,能够分配更多的分区,有助于多道可以消除碎片,能够分配更多的分区,有助于多道程序设计,提高内存的利用率。程序设计,提高内存的利用率。n缺点缺点n紧缩技术花费紧缩技术花费CPU时间时间n当进程大于整个空闲区无法装入时,仍要浪费一
12、定当进程大于整个空闲区无法装入时,仍要浪费一定的内存的内存n进程的存储区内可能放有从未使用的信息进程的存储区内可能放有从未使用的信息n进程之间无法对信息共享进程之间无法对信息共享5.4 对对 换换 技技 术术图图5-12 对换两个进程对换两个进程当内存不足时,将暂时不运行的进程换到外存,当内存不足时,将暂时不运行的进程换到外存,将需要马上运行的进程调入内存。将需要马上运行的进程调入内存。图图5-13 多道程序对换技术示例多道程序对换技术示例5.5 分分 页页 技技 术术5.5.1 分页存储管理的基本概念分页存储管理的基本概念把用户程序按逻辑页划分成大小相等的部把用户程序按逻辑页划分成大小相等的
13、部分,称为页(分,称为页(pagepage)。从。从0 0开始编制页号,开始编制页号,页内地址从页内地址从0 0开始编址。开始编址。(1)逻辑地址空间)逻辑地址空间分页分页(2)内存地址空间)内存地址空间分块分块n页(或块)大小由硬件(系统)确定页(或块)大小由硬件(系统)确定(3)逻辑地址表示)逻辑地址表示图图5-14 分页技术的地址结构分页技术的地址结构逻辑地址为逻辑地址为A,页面大小为,页面大小为L,页号页号p和页内地址和页内地址d可按下式求得:可按下式求得:p=INTA/L,d=A MOD Ln以块为单位分配内存以块为单位分配内存n进程每个页面对应一个内存块进程每个页面对应一个内存块n
14、一个进程页面可以装入物理上不连续的一个进程页面可以装入物理上不连续的内存块内存块n页表记录分配结果页表记录分配结果(4)内存分配原则)内存分配原则(5)页表)页表从页号到物理块号的地址映射从页号到物理块号的地址映射从页号到物理块号的地址映射从页号到物理块号的地址映射图图5-15 分页存储管理系统分页存储管理系统n内存块表记录内存使用情况内存块表记录内存使用情况n每个内存块在内存块表中占一项,每个内存块在内存块表中占一项,记录该块的状态:空闲记录该块的状态:空闲/分配。分配。(6)内存块表)内存块表5.5.2 分页系统中的地址映射分页系统中的地址映射图图5-16 分页系统的地址转换机构分页系统的
15、地址转换机构每个进程平均每个进程平均有半个页面的有半个页面的内部碎片内部碎片设进程平均大小为设进程平均大小为s字节,每个页表项占字节,每个页表项占e字节。字节。每个进程需要的页数为每个进程需要的页数为s/p每个进程的页表空间:每个进程的页表空间:e*s/p 字节字节每个进程内部碎片平均为每个进程内部碎片平均为p/2页表和内部碎片带来的总开销是:页表和内部碎片带来的总开销是:e*s/p+p/2令该表达式的值最小,对令该表达式的值最小,对p求导,令其等于求导,令其等于0,得到方程:,得到方程:-e*s/p2+1/2=0得出最佳页面尺寸公式,仅考虑上述两个因素:得出最佳页面尺寸公式,仅考虑上述两个因
16、素:5.5.3 页面尺寸页面尺寸p的讨论的讨论如果如果s=1 MB,e=8 B,则则最佳最佳页页面尺寸面尺寸p是是4 KB5.5.4 硬件支持硬件支持n将页表保存在内存中,由一个页表基将页表保存在内存中,由一个页表基址寄存器址寄存器PTBR指向该页表。整个系指向该页表。整个系统只有一个统只有一个PTBR。n内存存取速度下降内存存取速度下降50%!n把把页页表表放放在在一一组组快快速速存存储储器器中中(CacheCache),加加快快访访问问内内存存的的速速度度。快快速速存存储储器器组组成成的的页页表表称称为快表,内存中的页表称为慢表。为快表,内存中的页表称为慢表。n快表又称相联存储器(快表又称
17、相联存储器(associative memory)或或 TLB(Translation lookaside buffers)转转换检测缓冲区。换检测缓冲区。快表(或快表(或Translation Lookaside Buffer,TLB)n快表每项包括键号和值两部分快表每项包括键号和值两部分n键号是当前进程正在使用的某个页面号键号是当前进程正在使用的某个页面号n值是该页面所对应的物理块号值是该页面所对应的物理块号快表性能分析示例快表性能分析示例n如如果果访访问问联联想想存存储储器器的的时时间间为为20ns20ns,访访问问内内存存的的时时间间是是100ns100ns,假假定定访访问问联联想想存
18、存储储器器的的命命中中率率分分别别为为0%0%,50%50%,80%80%,90%90%,98%98%,下表列出需要的访问时间:,下表列出需要的访问时间:命中率命中率%平均平均访问时间访问时间:T=h*120+(1-h)*2200T=22050T=17080T=14090T=13098T=122图图5-17 利利用用快快表表实实现现地地址址转转换换5.5.5 保护方式保护方式(1)利用页表本身进行保护:保护页表基址)利用页表本身进行保护:保护页表基址和页表长度和页表长度(2)设置存取控制位:一个页表项,权限包)设置存取控制位:一个页表项,权限包括:(括:(R/W/RW),出错发中断。),出错发
19、中断。(3)设置合法标志)设置合法标志5.5.6 页表的构造页表的构造1多级页表多级页表大逻辑地址空间,页表项太多。假定:大逻辑地址空间,页表项太多。假定:逻辑地址空间:逻辑地址空间:232 264 一个进程的逻辑空间占一个进程的逻辑空间占32位,页面大小为位,页面大小为4kb最大进程可有最大进程可有220(1M)个逻辑页)个逻辑页页表表项达页表表项达220个个。方案:方案:利用两级利用两级页表页表给页表分页。给页表分页。图图5-18 两级页表地址结构两级页表地址结构图图5-19 两两级级页页表表结结构构1023图图5-20 两级页表结构的地址转换两级页表结构的地址转换图图5-21 三级页表地
20、址结构三级页表地址结构三级页表结构及其地址映射过程三级页表结构及其地址映射过程2散列页表散列页表nHashed Page Tablen以页号作为参数形成散列值以页号作为参数形成散列值n散列表中每一项具有相同散列值,是一个散列表中每一项具有相同散列值,是一个链表。链表。n每个链表元素由页号、对应的内存块号、每个链表元素由页号、对应的内存块号、指向链表中下个元素的指针组成。指向链表中下个元素的指针组成。图图5-22 散列页表散列页表3倒置页表倒置页表n进程页表以逻辑地址的顺序排序,虚地址空间进程页表以逻辑地址的顺序排序,虚地址空间较大。较大。n倒置页表按内存块号排序,每个内存块占有一倒置页表按内存
21、块号排序,每个内存块占有一个表项。每个表项包括存放在该内存块中页号个表项。每个表项包括存放在该内存块中页号和拥有该页面的进程标识符。系统只有一个页和拥有该页面的进程标识符。系统只有一个页表。表。图图5-23 倒置页表倒置页表5.5.7 页面共享页面共享图图5-24 页面共享页面共享可可再再入入代代码码(或或纯纯码码,在在其其执执行行过过程程中中本本身身不不做做任任何何修修改改的的代代码码,通通常常由由指指令令和和常数组成)。常数组成)。分页式管理可实现页面共享分页式管理可实现页面共享n条件:条件:n共享部分是纯码程序共享部分是纯码程序n共享部分与非共享部分,分页单独存放共享部分与非共享部分,分
22、页单独存放n共享部分的逻辑页号、物理页号完全相同共享部分的逻辑页号、物理页号完全相同分页技术总结分页技术总结n优点:解决了碎片问题,便优点:解决了碎片问题,便于管理于管理n缺点:缺点:n实现共享有条件实现共享有条件n不便于动态连接不便于动态连接n未考虑程序逻辑构成未考虑程序逻辑构成n设设页页长长为为1K1K,程程序序地地址址字字长长为为1616位位,用用户户程程序序空空间间和页表和页表如图如图:执行指令执行指令MOV r1,2500,地址转换步骤,地址转换步骤说明说明1)1)取出程序地址字取出程序地址字25002500送虚地址寄存器送虚地址寄存器VRVR2)2)由由硬硬件件分分离离页页号号P
23、P和和页页内内地地址址W W:页页长长为为1K1K,所所以以页页内地址占内地址占1010位(位(0909位),页号占位),页号占6 6位(位(10151015位)位)3)3)硬硬件件取取出出VRVR寄寄存存器器中中的的高高6 6位位即即页页号号,低低1010位位即即页页内内地址,得到页号地址,得到页号P=2P=2,页内位移页内位移W=452W=4524)4)根根据据页页号号P=2P=2,硬硬件件自自动动查查该该进进程程页页表表,找找到到第第2 2页页对对应应块块号号为为7 7,将将块块号号送送到到内内存存地地址址寄寄存存器器MRMR的的高高1010位位中中,将将VRVR中中W W值值45245
24、2复复制制到到MRMR低低1010位位中中,形形成成内内存存地址。地址。5)5)系统就以系统就以MRMR中的地址访问内存中的地址访问内存计算分页地址时要注意:计算分页地址时要注意:u给出地址字的进制给出地址字的进制u地址的空间长度地址的空间长度u页长页长u逻辑空间允许的最大页数逻辑空间允许的最大页数5.6 分分 段段 技技 术术5.6.1 分段存储管理的基本概念分段存储管理的基本概念分分页页存存储储管管理理存存在在问问题题导导致致程程序序在在用用户户角角度度的内存空间和实际内存空间不同。的内存空间和实际内存空间不同。子程序子程序符号表符号表主函数主函数库函数库函数堆栈堆栈用户角度的内存用户角度
25、的内存n段(段(segmentationsegmentation)用户角度的内存管)用户角度的内存管理模式理模式,逻辑地址空间是段的集合逻辑地址空间是段的集合n当用户程序被编译时,编译程序自动构当用户程序被编译时,编译程序自动构建程序的分段,比如:建程序的分段,比如:pascalpascal编译器编译器全局量全局量过程堆栈过程堆栈可执行代码可执行代码局部变量局部变量1分段分段n按程序自身的逻辑关系划分为若干按程序自身的逻辑关系划分为若干个程序段个程序段n段名段名n段长段长n段号:段号从段号:段号从0 0开始排开始排n段内地址:从段内地址:从0 0开始编址,段内地址连开始编址,段内地址连续续图图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 孟庆昌 牛欣源 编著 ppt 课件 第五
限制150内