1(一)主存的共享方式(二)主存管理的功能(三)分区存储管理技术(四)页式存储管理技术(五)段式及段页式存储管理技术第七章主存管理2(一)主存的共享方式主存共享方式——空间分片大小不等的区域——分区存储管理分段存储管理大小相等的片——页式存储管理两者结合——段页式存储管理3(二)主存管理功能一.几个概念1.物理地址(绝对地址、实地址)物理地址是计算机主存单元的真实地址,又称为绝对地址或实地址。2.主存空间物理地址的集合所对应的空间组成了主存空间。3.区域物理地址集合的一个递增整数序列子集n,n+1,┄,n+m所对应的主存空间。44.逻辑地址(相对地址、虚地址)用户的程序地址(指令地址或操作数地址)均为逻辑地址。5.作业地址空间用户程序所有的逻辑地址集合对应的空间。作业地址空间01n-156.作业地址空间与主存空间主存空间01m-1作业1地址空间01n-1作业i地址空间01k-1┇┇6二.主存管理功能1.实现逻辑地址到物理主存地址的映射2.3.4.主存扩充7三.主存映射1.什么是地址映射(1)为什么要进行地址映射作业的相应进程在处理机上运行时,所要访问的指令和数据的实际地址和地址空间中的地址是不同的。这种情况可用图7.1来说明。movr1,[500]123movr1,[500]123010050059901000110015001599256k-1作业地址空间存储空间8(2)什么是地址映射将程序地址空间中使用的逻辑地址变换成主存中的物理地址的过程,称为地址映射。2.地址映射的时机与类别(1)编程或编译时确定地址映射关系在程序编写或程序编译时确定虚、实地址之间的对应关系,结果是一个不能浮动的程序模块。9(2)在作业装入时确定地址映射关系——静态地址映射在作业装入过程中随即进行的地址变换方式称为静态重定位或静态地址映射。movr1,[500]123movr1,[500+m]12301005005990mm+100256k-1作业地址空间存储空间m+500重定位装入程序10(3)在程序运行时确定地址映射关系——动态地址映射在程序执行期间,随着每条指令和数据的访问自动地连续地进行地址映射。movr1,[500]1230100500599作业地址空间0movr1,[500]1231000256k-1存储空间110015001600重定位寄存器1000500逻辑地址+113.静态地址映射与动态地址映射的区别静态地址映射动态地址映射在作业装入过程中在程序执行期间进行地址映射进行地址映射需软件需硬件地址变换机构重定位装入程序重定位寄存器需花费较多CPU时间地址变换快不灵活灵活12四.主存分配1.构造分配用的数据结构主存资源信息块:等待队列头指针自由主存队列头指针主存分配程序地址2.制定分配策略(1)主存分配策略在众多个请求者中选择一个请求者的原则。(2)放置策略选择一个空闲区或若干空闲区的原则。13(3)调入策略决定信息装入主存的时机预调策略:预先将信息调入主存请调策略:当需要信息时,将信息调入主存(4)淘汰策略在主存中没有任何可用的空闲区时,决定哪些信息从主存中移走,即确定淘汰已占用的内存区的原则。3.实施主存分配与回收14五.主存扩充主存扩充也就是提供虚拟存储器1.问题的提出主存容量始终显得十分紧张如何使用户使用计算机不受主存容量的限制?2.解决问题的思路装入部分程序地址空间,它还能正确地执行?153.实现方法程序的全部代码和数据存放在辅存中;将程序当前执行所涉及的那部分程序代码放入主存中;程序执行时,当所需信息不在主存,由操作系统和硬件相配合来完成主存从辅存中调入信息,程序继续执行。4.什么是虚拟存储器由操作系统和硬件相配合来完成主存和辅存之间的信息的动态调度。这样的计算机系统好像为用户提供了一个其存储容量比实际主存大得多的存储器,这个存储器称为虚拟存储器。164.虚拟存储器的核心逻辑地址与物理地址分开主存空间与地址空间分开提供地址变换机构5.实现虚拟存储器的物质基础有相当容量的辅存足以存放多用户的作业的地址空间有一定容量的主存存放运行进程的当前信息地址变换机构17六.存储保护1.什么是存储保护在多用户环境中,主存储器按区分配给各用户程序使用。为了互不影响,必须由硬件(软件配合)保证每道程序只能在给定的存储区域内活动,这种措施叫做存储保护。2.存储保护方法通常的存储保护方法——界地址保护存储键保护183.界地址保护(1)上、下界防护movr1,[500]123020KB256KB1存储空间24KB下界寄存器20KB上界寄存器24KB如何设置上下界寄存器内容如何判断是否越界满足20KB≤D<24KB允许访问否则发生越界中断19(2)基地址、限长防护movr1,[500]123020KB256KB1存储空间24KB基址寄存器20KB限长寄存器4KB如何设置上下界寄存器内容如何判断是否越界满足逻辑地址<4KB允许访问否则发生越界中断20(三)分区存储管理一.动态分区分配1.什么是动态分区分配在处理作业的过程中,建立分区,依用户请求的大小分配分区。2.动态分区的分配、回收过程21(1)动态分区的分配过程20KB0os作业1作业2作业3作业452KB66KB130KB230KB256KB1主存20KB0os作业1作业2作业352KB66KB130KB256KB1主存20KB0os作业152KB256KB1主存0os256KB1主存20KB20KB0os作业1作业252KB66KB256KB1主存作业1申请32KB作业2申请14KB作业3申请64KB作业4申请100KB作业5申请50KB22(2)动态分区的回收过程20KB0os作业1作业2作业3作业452KB66KB130KB230KB256KB1主存20KB0os作业1作业2作业3作业452KB66KB130KB230KB256KB1主存20KB0os作业1作业2作业3作业452KB66KB130KB230KB256KB1主存作业2完成作业4完成23二.分区分配机构1.分区描述器分配标志flag大小size勾链字nextflag:为0——空闲区为1——已分配区size:分区大小next:空闲区——自由主存队列中的勾链字已分配区——242.自由主存队列(或空闲区队列)结构20KB0os作业1作业3作业452KB66KB130KB230KB256KB1主存52KBm-rib014KB230KB026KB自由主存队列25三.分区的分配与回收1.分区分配(1)分区分配思路••分区分配程序在自由主存队列中找一个满足用户需要的空闲块;•若找到,以空闲块与请求的主存块大小之间的关系进行相应的处理,并返回所分配区域的首址;•否则,告之不能满足要求。262.分区回收回收主存块的四种情况r上邻空闲区rf1作业2r上下邻空闲区rf1f2r上下邻已分配区r作业1作业2r下邻空闲区r作业1f227回收分区r上邻空闲区rf1作业2f1作业2r与f1合并成为一个大的空闲区f1回收分区r下邻空闲区r作业1f2作业1f2r与f2合并成为一个大的空闲区f228回收分区r上、下邻空闲区r与f1、f1合并成为一个大的空闲区f1回收分区r上、下邻空闲区r成为一个新的空闲区frf1f2f1r作业1作业2f作业1作业229四.放置策略1.什么是放置策略选择空闲区的策略,称为放置策略。常用的放置策略——首次匹配(首次适应算法)最佳匹配(最佳适应算法)最坏匹配(最坏适应算法)302.首次适应算法(1)什么是首次适应算法首次适应算法是将输入的作业放置到主存里第一个足够装入它的可利用的空闲区中。(2)特点自由主存队列结构——空闲区地址由低到高排序尽可能地利用存储器中低地址的空闲区,而尽量保存高地址的空闲区。313.最佳适应算法(1)什么是最佳适应算法最佳适应算法是将输入的作业放置到主存中与它所需大小最接近的空闲区中。(2)特点自由主存队列结构——空闲区大小由小到大排序尽可能地利用存储器中小的空闲区,而尽量保存大的空闲区。324.最坏适应算法(1)什么是最坏适应算法最坏适应算法是将输入的作业放置到主存中主存中最不适合它的空闲区中。(3)特点自由主存队列结构——空闲区大小由大到小排序尽可能地利用存储器中大的空闲区。33五.碎片问题及拼接技术1.什么是碎片问题在已分配区之间存在着的一些没有被充分利用的空闲区。如何解决碎片问题?2.拼接技术所谓拼接技术是指移动存储器中某些已分配区中的信息,使本来分散的空闲区连成一个大的空闲区。34(四)页式存储管理一.页式系统的基本概念1.页面程序的地址空间被等分成大小相等的片,称为页面,又称为虚页。2.主存块主存被等分成大小相等的片,称为主存块,又称为实页。353.页表(1)什么是页表为了实现从地址空间到物理主存的映象,系统建立的记录页与内存块之间对应关系的地址变换的机构称为页面映像表,简称页表。(2)页表的组成高速缓冲存储器组成地址变换速度快,但成本较高。主存区域地址变换速度比硬件慢,成本较低。364.分页映像存储的例01KB01KB2KB3KB1主存作业2地址空间2KB3KB4KB5KB6KB7KB8KB9KB10KB101KB2KB1作业1地址空间01KB1作业3地址空间0516页号块号02140827作业1页表作业2页表作业3页表osos37二.页式地址变换1.页表记录页与块之间对应关系的地址变换的机构2.虚地址结构当CPU给出的虚地址长度为16位,页面大小为1KB时,在分页系统中地址结构的格式如下。pw151090页号P页内位移Wmovr1,[2500]12301KB2KB3KB1作业2地址空间383.页式地址变换(1)页式地址变换的例作业2地址空间中,设100号单元处有如下指令:movr1,[2500]。当这条指令执行时,如何进行正确的地址变换。movr1,[2500]12301KB1KB3KB1作业2地址空间2500→2*1024+452p=2w=4520000100111000100000010011100010039(2)页式地址变换过程151090页号P页内位移W页表始址寄存器movr1,[2500]12301KB2KB3KB1作业2地址空间+021427页表0000100111000100151090页号P页内位移W250001KB主存2KB3KB4KB5KB6KB7KB8KB9KB10KB1ososmovr1,[2500]123第1页7*1024+452=7620000111011100010040(3)页式地址变换的步骤CPU给出操作数地址(为2500);由分页机构自动地把逻辑地址分为两部分,得到页号p和页内相对位移w(p=2,w=452);根据页表始址寄存器指示的页表始地址,以页号为索引,找到第2页所对应的块号(为7);最后,将块号b和页内位移量w拼接在一起,就形成了访问主存的物理地址(7*1024+452=7620)。414.采用联想存储器加快查表速度(1)什么是联想存储器高速、小容量半导体存储部件,又称缓冲存储器。(2)快表在缓冲存储器中存放正在运行的进程当前用到的页号和对应的块号,又称为快表。42三.请调策略1.两种页式系统(1)简单页式系统装入一个作业的全部页面才能投入运行。(2)请求页式系统只装入一个作业的部分页面即可投入运行。(1)(2)请求分页系统需要解决什么问题?432.请求页式系统需解决的问题(1)怎样发现所访问的页面在不在主存?(2)当发现所需访问的页面不在主存时如何处理?3.扩充页表功能页号主存块号中断位辅存地址中断位I——标识该页是否在主存若i=1,表示此页不在主存若i=0,表示该页在主存辅存地址——该页面在辅存的位置444.缺页处理启动要处理的指令给出虚地址得到页号该页在主存?有空闲块?缺页中断执行完该指令准备执行下条指令选一页淘汰从外存读入所需的页调整存储分配表和页表重新启动被中断的指令调整存储分配表和页表要重写入?该页写入外存YNNY