《第4章存储管理2.ppt》由会员分享,可在线阅读,更多相关《第4章存储管理2.ppt(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第4章存储管理2 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望 页号页号P 页内位移量页内位移量W0111223编号编号04095相对地址相对地址04095逻辑地址逻辑地址 用户程序的划分是由系统自动完成的用户程序的划分是由系统自动完成的,对对用户是透明的。用户是透明的。一页的大小一般为一页的大小一般为 2 的整数的整数次幂次幂,地址的高位部分为页号地址的高位部分为页号,低位部分为页低位部分为页内地址内地址(页内位移量页内位移量)2.内存物理空间的划分:内存物理
2、空间的划分:按页的大小划分为大小相等的区域,称为页按页的大小划分为大小相等的区域,称为页框框(物理页面物理页面)3.内存分配:内存分配:以页为单位进行分配,并按进程的页数多少以页为单位进行分配,并按进程的页数多少来分配。逻辑上相邻的页,物理上不一定相邻。来分配。逻辑上相邻的页,物理上不一定相邻。4.页表页表(页面映像表页面映像表)和地址映射:和地址映射:建立页表建立页表,给出逻辑地址页号和内存物理块给出逻辑地址页号和内存物理块号对应的关系号对应的关系,通过它进行地址映射。通过它进行地址映射。0页页1页页2页页3页页4页页5页页6页页0123456进程的进程的地址空间地址空间块号块号页号页号页表
3、页表主存中页框主存中页框(物理块)(物理块)存取存取控制控制4.3.2 管理管理1.建立页表:建立页表:系统为每个进程都建立了一个页表。系统为每个进程都建立了一个页表。2.空块管理空块管理总页表总页表3.内存的分配与回收内存的分配与回收计算一个进程所需要的总块数计算一个进程所需要的总块数N查总页表查总页表,看是否还有看是否还有N个空闲块个空闲块如果有相应空闲块如果有相应空闲块,则申请页表区则申请页表区,把页表起把页表起始地址填入始地址填入PCB,页表长度为页表长度为N。分配分配N个空闲块个空闲块,将块号将块号(物理块物理块)填入页表填入页表修改总页表修改总页表4.页面大小的选择页面大小的选择
4、小页面的优缺点、大页面的优缺点小页面的优缺点、大页面的优缺点b页号页号 块号块号越界中断越界中断页表长度页表长度 l比较比较Pl页表始址页表始址 p0+页号页号p p 页内地址页内地址dbd物理地址寄存器物理地址寄存器页表寄存器页表寄存器逻辑地址逻辑地址页表页表01.4.3.3 地址变换机构地址变换机构1.基基本地址变换机构本地址变换机构 页表和页表寄存器页表和页表寄存器(页表始址页表始址 p0,页表长度页表长度 l)008003 4C8 003 4C8 2AC4C84C8比较比较0123+2AC2.具有快表的具有快表的地址变换机构地址变换机构硬件支持硬件支持1)页表寄存器一对:页表寄存器一对
5、:页表始址寄存器页表始址寄存器:页表始址页表始址 p0 页表长度寄存器页表长度寄存器:页表长度页表长度 l2)联想寄存器联想寄存器(68030有有22个个,80486有有32个个)快表快表 它是介于内存与寄存器之间的存储机制它是介于内存与寄存器之间的存储机制,为加快为加快地址变换速度而设置地址变换速度而设置;它的访问速度比页表快一个数它的访问速度比页表快一个数量级量级,它保存着正在运行进程的页表的子集它保存着正在运行进程的页表的子集(部分表部分表项项)。存放当前频繁访问的那些页表项。存放当前频繁访问的那些页表项,快表项含快表项含:1)页号页号 2)页在内存的块号页在内存的块号3)标识标识(状态
6、状态)位位 4)淘汰位淘汰位b页号页号 块号块号越越界界中中断断页表长度页表长度 l比较比较Plpb快表快表页号页号 块号块号页表始址页表始址 p0+页号页号p p 页内地址页内地址d物理地址寄存器物理地址寄存器页表寄存器页表寄存器逻辑地址逻辑地址地址映射机制地址映射机制页表页表01.bd CPU 给出有效逻辑地址后给出有效逻辑地址后,自动自动将页号与快表中的所有页号进行比将页号与快表中的所有页号进行比较较有则直接读出对应的物理块号送物有则直接读出对应的物理块号送物理地址寄存器中理地址寄存器中无则继续按页号检索页表无则继续按页号检索页表,在页表在页表中读出物理块号送物理地址寄存器中读出物理块号
7、送物理地址寄存器中中并同时修改快表并同时修改快表,使快表中始终保使快表中始终保持着最近频繁访问的页信息。持着最近频繁访问的页信息。实际上快表和页表检索同时进行实际上快表和页表检索同时进行快表查到则终止检索页表快表查到则终止检索页表,没查到没查到则继续检索页表则继续检索页表上述过程全部由硬件实现上述过程全部由硬件实现,并行性并行性好速度快。好速度快。008比较比较03 4C8 03 4C8 4C84C82AC03 2AC+2AC2AC03 2AC CPU 给出有效逻辑地址后给出有效逻辑地址后,自动将页号与快表中自动将页号与快表中的所有页号进行比较的所有页号进行比较,有则直接读出对应的物理块号有则
8、直接读出对应的物理块号送物理地址寄存器中送物理地址寄存器中,无则继续按页号检索页表无则继续按页号检索页表,在页在页表中读出对应的物理块号送物理地址寄存器中表中读出对应的物理块号送物理地址寄存器中,并同并同时修改快表时修改快表,使快表中始终保持着最近频繁访问的页使快表中始终保持着最近频繁访问的页信息。实际上快表和页表检索是同时进行的信息。实际上快表和页表检索是同时进行的,快表查快表查到则终止检索页表到则终止检索页表,没查到则继续检索页表。上述过没查到则继续检索页表。上述过程全部由硬件实现程全部由硬件实现,并行性好速度快。其中并行性好速度快。其中:物理块号物理块号 b 的地址的地址=页表始址页表始
9、址+页号页号*页表项长度页表项长度物理地址物理地址 P=物理块号物理块号*页的大小页的大小+页内地址页内地址快表的命中率一般为:快表的命中率一般为:80%90%页式管理的优点页式管理的优点:解决了碎片问题、便于管理解决了碎片问题、便于管理 缺点缺点:不易实现共享、不便于动态连接不易实现共享、不便于动态连接4.3.3 两级和多级页表两级和多级页表 对于对于32位逻辑地址空间位逻辑地址空间,页面大小为页面大小为4096B则页则页表项可达表项可达1兆兆,整个页表最多可占整个页表最多可占4兆连续空间兆连续空间,可采可采用两级或多级用两级或多级(64位位)页表来解决这一问题。页表来解决这一问题。每页最多
10、可容纳每页最多可容纳1024个页表项个页表项,将将1兆个页表项兆个页表项分为分为1024个子表个子表,子表分页存储在内存中子表分页存储在内存中,每个子表每个子表有有1024个页表项。建立一个外层页表个页表项。建立一个外层页表,它的每个页它的每个页表项存储各子表的物理块号表项存储各子表的物理块号,经过两级查表即可得经过两级查表即可得到逻辑地址页对应的物理块号。逻辑地址结构为:到逻辑地址页对应的物理块号。逻辑地址结构为:31 22 21 12 11 0外部页号外部页号p1 内层页号内层页号p2 页内地址页内地址d01.0页页表页页表主存中页框主存中页框(物理块)(物理块)01.1页页表页页表.01
11、.外部页表外部页表地址映射机制地址映射机制b1 l1越界中断越界中断页表长度页表长度 l比较比较p1 p2b快表快表页号页号 块号块号页表始址页表始址 p0+外部页号外部页号p1 内层页号内层页号p2 页内地址页内地址dbd物理地址寄存器物理地址寄存器外部页表寄存器外部页表寄存器逻辑地址逻辑地址外部页表外部页表01.比较比较b01.+p1号页表号页表比较比较外部页号外部页号p1 内层页号内层页号p2 页内地址页内地址ddp1 p2bbb1 l1+比较比较b+bp1 p2b4.3.4 反置页表反置页表 当逻辑地址非常大时当逻辑地址非常大时,页表项占内存太多页表项占内存太多,用反用反置页表可以减少
12、此项开销置页表可以减少此项开销,它将页表反置它将页表反置,即页表项即页表项内容是逻辑页号和进程标识符内容是逻辑页号和进程标识符,表项的顺序按物理表项的顺序按物理块号排序块号排序,所有加载在内存的进程公用一个反置页所有加载在内存的进程公用一个反置页表表,进行进行 地址变换时地址变换时,用进程标识符和页号检索反置用进程标识符和页号检索反置页表页表,查不到时则按一定的算法置换查不到时则按一定的算法置换,将该页调入内将该页调入内存存;因此在外存上每个进程都有一个外部页表因此在外存上每个进程都有一个外部页表,该表该表中包含了该进程每页在外存中的物理位置。根据它中包含了该进程每页在外存中的物理位置。根据它
13、可将所需页调入内存。可将所需页调入内存。为了加快地址变换时用进程标识符和页号检索为了加快地址变换时用进程标识符和页号检索的查找速度的查找速度,可利用哈希表可利用哈希表,还应有相应的解决冲突还应有相应的解决冲突的方法。的方法。4.4 段式存储管理段式存储管理 4.4.1 基本思想(工作原理)基本思想(工作原理)用户需要用户需要:信息共享信息共享,信息保护信息保护,动态增长动态增长,动态链接动态链接1.用户程序划分用户程序划分 程序的地址空间按自身的逻辑关系划分为若干程序的地址空间按自身的逻辑关系划分为若干个段个段,每个段定义了一组逻辑信息。例如每个段定义了一组逻辑信息。例如:主程序段主程序段Ma
14、in,子程序段子程序段X,子程序段子程序段Y,数据段数据段D,堆栈段堆栈段S等等;每个段都有自己的名字每个段都有自己的名字,可用段号来代替段名可用段号来代替段名,段号段号从从0开始编号。每个段内都也从开始编号。每个段内都也从0开始编址开始编址,段内地段内地址空间是连续的址空间是连续的,各段的长度不等。整个程序的地各段的长度不等。整个程序的地址空间是二维的址空间是二维的,段号维和段内地址维。段号维和段内地址维。程序逻辑地址程序逻辑地址:段号段号 段内地址段内地址.0S堆栈段堆栈段S主程序段主程序段M.0EP子程序段子程序段X0K.CALL X E.CALL Y FCALL A 116.0FL子程
15、序段子程序段Y0116N数据段数据段D12345.例如:例如:2.内存物理空间的划分内存物理空间的划分 内存空间被动态的划分为若干个长度不相同的内存空间被动态的划分为若干个长度不相同的物理段物理段,每个物理段由起始地址和长度确定。每个物理段由起始地址和长度确定。3.内存分配内存分配 以段为单位分配内存以段为单位分配内存,每个段在内存中占据连每个段在内存中占据连续空间续空间(内存随机分割内存随机分割,需要多少分配多少需要多少分配多少),但各段但各段之间可以不连续存放。之间可以不连续存放。4.通过段表进行地址映射通过段表进行地址映射 段表记录各段的首段表记录各段的首(地地)址和长度址和长度.S0R
16、D0NY0LX0PM0K逻辑段号逻辑段号逻辑地址空间逻辑地址空间PKRLN主存主存K 320kP 150kL 600kN 800kR 500k长度长度 段首址段首址 OS100k320k500k600k800k150k段表段表4.4.2 管理管理1.每个程序设一个段表每个程序设一个段表2.空闲块管理:空闲块管理:记录空闲区起始地址和长度记录空闲区起始地址和长度3.内存的分配算法:内存的分配算法:首先适配;最佳适配;最坏适配首先适配;最佳适配;最坏适配段号段号 段首址段首址 段长度段长度 0 50k 40k 1 120k 110k 2 260k 220k4.4.3 地址变换机制地址变换机制硬件支
17、持硬件支持1.一对寄存器:一对寄存器:段表始址寄存器段表始址寄存器:保存运行进程的段表始址保存运行进程的段表始址Cb段表长度寄存器段表长度寄存器:保存运行进程的段表长度保存运行进程的段表长度Cl2.相联寄存器相联寄存器快表快表(并行快速查找并行快速查找)它是介于内存与寄存器之间的存储机制它是介于内存与寄存器之间的存储机制,为加快为加快地址变换速度而设置地址变换速度而设置;它的访问速度比段表快一个数它的访问速度比段表快一个数量级量级,它保存着正在运行进程的段表的子集它保存着正在运行进程的段表的子集(部分表部分表项项)。存放当前频繁访问的那些段表项。存放当前频繁访问的那些段表项,表项含表项含:段号
18、;段号;段始址;段始址;段长度;段长度;标识标识(状态状态)位;访问位,位;访问位,淘汰位淘汰位段表长度段表长度Cl段表始址段表始址Cb+段号段号S 位移量位移量d 比较比较b +d比较比较段段表表段号段号 段段长长 基址基址S=Cl快表快表物理地址寄存器物理地址寄存器控制寄存器控制寄存器有效逻辑地址有效逻辑地址lbSlbd=l地址映射及存储保护机制地址映射及存储保护机制地地址址越越界界地址越界地址越界01.+段式管理的优点:段式管理的优点:便于动态申请内存便于动态申请内存 易于保护、便于共享、可动态链接、可动态增长易于保护、便于共享、可动态链接、可动态增长缺点:产生碎片缺点:产生碎片分页和分
19、段的主要区别分页和分段的主要区别1.页是物理单位页是物理单位,分页是为了消减内存的外零头以提分页是为了消减内存的外零头以提高内存的利用率高内存的利用率,仅仅是系统的需要。仅仅是系统的需要。2.段是逻辑单位段是逻辑单位,分段是为了更好地满足用户需要。分段是为了更好地满足用户需要。2.页的大小固定且由系统确定页的大小固定且由系统确定,分页由硬件实现。分页由硬件实现。3.段的长度不固定段的长度不固定,由编译时根据程序信息来划分。由编译时根据程序信息来划分。3.分页的作业地址空间是一维的线性空间。标识地址分页的作业地址空间是一维的线性空间。标识地址时时,只需给出一个逻辑地址。只需给出一个逻辑地址。4.
20、分段的作业地址空间是二维的分段的作业地址空间是二维的,标识地址时标识地址时,必须必须给出段名和段内地址。给出段名和段内地址。4.4.4 段的共享与保护段的共享与保护P 122分页系统中的共享分页系统中的共享:图图4-18分段系统中的共享分段系统中的共享:图图4-19纯码纯码数据数据1进程进程1段长段长 基址基址纯码纯码数据数据1段长段长 基址基址分段系统中的共享分段系统中的共享:图图4-19页表页表0页页1页页2页页3页页4页页01234进程进程1块号块号页号页号存取存取控制控制0页页1页页2页页3页页4页页5页页6页页0123456进程进程2纯码纯码数据数据数据数据分页系统中的共享分页系统中
21、的共享:图图4-184.5 段页式存储管理段页式存储管理4.5.1 产生背景及基本思想产生背景及基本思想背景:背景:结合了二者优点、克服了二者的缺点结合了二者优点、克服了二者的缺点 即:提高利用率,满足用户要求即:提高利用率,满足用户要求基本思想:基本思想:用户程序划分用户程序划分:按段式划分按段式划分(对用户来讲对用户来讲,按段的逻按段的逻 辑关系进行划分辑关系进行划分;对系统讲对系统讲,按页划分每一段按页划分每一段)逻辑地址:逻辑地址:内存划分:按页式存储管理方案内存划分:按页式存储管理方案 内存分配:以页为单位进行分配内存分配:以页为单位进行分配 段内地址段内地址段号段号 页号页号 页内
22、地址页内地址4.5.2 管理管理1.段表:记录了每一段的页表始址和页表长度段表:记录了每一段的页表始址和页表长度2.页表:记录了逻辑页号与内存块号的对应关系。页表:记录了逻辑页号与内存块号的对应关系。(每一段有一个,一个程序可能有多个页表)(每一段有一个,一个程序可能有多个页表)3.空块管理:空块管理:4.分配:同页式管理分配:同页式管理硬件支持硬件支持 段表始址寄存器段表始址寄存器 段表长度寄存器段表长度寄存器 相联存储器(快表)相联存储器(快表)地址映射机制地址映射机制 与两级页表相似与两级页表相似b1 l1越界中断越界中断段表长度段表长度Cl比较比较s p b快表快表段页号段页号 块号块
23、号段表始址段表始址Cb+段号段号s 段内页号段内页号p 页内地址页内地址dbd物理地址寄存器物理地址寄存器段表寄存器段表寄存器逻辑地址逻辑地址段表段表01.比较比较b01.+S段页表段页表本段页表本段页表始址长度始址长度8.页式存储管理页式存储管理(系统需要系统需要,解决碎片解决碎片)离散分配方式、页面大小的选择离散分配方式、页面大小的选择 建建进程进程页表、空块管理页表、空块管理总页表、总页表、内存的分配与回收内存的分配与回收 地址变换机构地址变换机构:页表寄存器、页表、页表寄存器、页表、快表快表(联想寄存器联想寄存器)9.两级和多级页表反置页表两级和多级页表反置页表10.段式存储管理段式存储管理用户需要用户需要:信息共享信息共享,信息保护信息保护,动态增长动态增长,动态链接动态链接用户程序划分用户程序划分:程序二维地址空间段号维和段内地址维程序二维地址空间段号维和段内地址维地址变换机构地址变换机构:段表寄存器、段表、段表寄存器、段表、快表快表(联想寄存器联想寄存器)11.段页式存储管理段页式存储管理 结合两者之优点结合两者之优点解决系统需要和解决系统需要和用户需要用户需要 用户用户地址空间二维、内存分配方式分页地址空间二维、内存分配方式分页 地址变换机构地址变换机构:段表寄存器、段表、页表、段表寄存器、段表、页表、快表快表作业作业:P142 10、12、14
限制150内