《操作系统课件os04存储管理课件》由会员分享,可在线阅读,更多相关《操作系统课件os04存储管理课件(37页珍藏版)》请在金锄头文库上搜索。
1、操作系统操作系统Operating SystemsWINDOWSWINDOWSUNIXUNIXLINUXLINUXOS2OS2VxWorksVxWorksMac OSMac OS基本分页存储管理方式基本分页存储管理方式为什么要引进分页技术为什么要引进分页技术?分区管理要求每道程序必须装入到内存连续的存储空分区管理要求每道程序必须装入到内存连续的存储空间中,间中,当系统空闲区的长度小于用户要求时就无法分配;当系统空闲区的长度小于用户要求时就无法分配;内存利用率不高。内存利用率不高。基本分页存储管理(纯分页存储管理)基本分页存储管理(纯分页存储管理)不具备页面对换功能不具备页面对换功能不支持虚拟存
2、储器的功能不支持虚拟存储器的功能页面与页表页面与页表页面页面分页存储管理是将一个进程的分页存储管理是将一个进程的逻辑地址空间分成逻辑地址空间分成若干若干个大小相等的片,称为页面或页个大小相等的片,称为页面或页为各页加以编号,从为各页加以编号,从0开始,如第开始,如第0页、第页、第1页等。页等。(物理物理)块或页框块或页框(frame)把把内存空间内存空间分成与页面相同大小的若干个存储块分成与页面相同大小的若干个存储块为它们加以编号,如为它们加以编号,如0#块、块、1#块等等。块等等。进程进程1 1逻辑地址空间逻辑地址空间内存内存由系统而非程序员由系统而非程序员分页式存储管理基本原理分页式存储管
3、理基本原理以页为单位进行内存分配,并按进程的页数多少来分配。以页为单位进行内存分配,并按进程的页数多少来分配。逻辑上相邻的页,物理上不一定相邻。逻辑上相邻的页,物理上不一定相邻。“页内碎片页内碎片”0 01 12 23 3m m进程进程1 1逻辑地址空间逻辑地址空间内存内存0 01 12 24 4页面大小页面大小页面的大小应选择适中页面的大小应选择适中页面大小应是页面大小应是2的幂的幂通常为通常为512B8KB。页面若太小页面若太小导致进程的页表过长,占用大量内存;导致进程的页表过长,占用大量内存;还会降低页面换进换出的效率。还会降低页面换进换出的效率。如果选择的页面较大如果选择的页面较大会使
4、页内碎片增大会使页内碎片增大2 2地址结构地址结构分页地址中的分页地址中的由系统分成的逻辑地址结构由系统分成的逻辑地址结构如下:如下:每页的大小为每页的大小为2 21212= =4KB地址空间最多允许有地址空间最多允许有1M页页若给定一个逻辑地址空间中的地址为若给定一个逻辑地址空间中的地址为A,页面的大小为,页面的大小为L,则页号,则页号P和页内地址和页内地址d可按下式求得:可按下式求得:练习练习设设一一个个逻逻辑辑地地址址空空间间有有8个个页页面面,每每页页大大小小为为1024B,现现将它映像到将它映像到32块物理块的内存上。块物理块的内存上。试问:试问:(1)逻辑地址要用多少位表示:逻辑地
5、址要用多少位表示:_ (2)物理地址要用多少位表示:物理地址要用多少位表示:_23210253+10 ,共13位5+10, 共15位3 3页表页表页表是操作系统为页表是操作系统为每个进程每个进程建立的,记录了进程页面在主建立的,记录了进程页面在主存中对应的物理块号。存中对应的物理块号。练习练习一台机器有一台机器有48位虚地址(位虚地址(逻辑地址,相对地址逻辑地址,相对地址)和)和32位物位物理地址,若页长为理地址,若页长为8KB,问页表共有多少个页表项?,问页表共有多少个页表项?内存可分为页框数(块数)?内存可分为页框数(块数)?答:答:逻辑逻辑地址地址48位位-逻辑逻辑地址空间大小地址空间大
6、小248,页长页长8KB-逻辑逻辑地址空间可分为页面数:地址空间可分为页面数:248/213=235-页表共有页表共有235个页表项个页表项32位物理地址位物理地址-内存空间内存空间232页长页长8KB=213-内存可分为页框数(块数):内存可分为页框数(块数):232/213=219页面的保护页面的保护提供附加的保护措施,对存储在块中的内容加以保护。提供附加的保护措施,对存储在块中的内容加以保护。通常的办法是在页表中增加一些标志位,用来指出该页的信通常的办法是在页表中增加一些标志位,用来指出该页的信息可读息可读/写、只读、只可执行及不可访问等,写、只读、只可执行及不可访问等,指令执行时进行核
7、对此信息。例如,要想向只读块写入信息指令执行时进行核对此信息。例如,要想向只读块写入信息则指令停止执行,产生中断信号。则指令停止执行,产生中断信号。作业作业1的页表的页表 页号页号标志标志块号块号 0 E 12 1 E 13 2 W 14 3 R 8页号页号标志标志块号块号 0 E 2 1 W 3 2 R 8作业作业2的页表的页表 地址变换机构地址变换机构1 1基本的地址变换机构基本的地址变换机构页表页表始址始址寄存器寄存器物理地址物理地址逻辑地址逻辑地址CPUCPU主存主存0 01 1p bp b页表页表p pd dd dbp p表项在页表中的表项在页表中的位位置置= =页表始址页表始址+
8、+页号页号* *页表项长度页表项长度+ +例:设页面大小为例:设页面大小为1KB,机器的地址长度为,机器的地址长度为16位。位。作业作业2 2的进程在的进程在CPUCPU上运行,执行指令上运行,执行指令Mov r1,2500Mov r1,2500页表始址寄页表始址寄存器存器页号页号p p页内位移页内位移d d000010000010011100010001110001000 09 9101015152500()()2Mov r1,Mov r1,250025001231230 01KB1KB2KB2KB3KB-13KB-1地址空间地址空间()()27620P=2P=2d=452d=452Mov
9、r1,2500Mov r1,25001231230 02KB2KB4KB4KB7KB7KB256KB-1256KB-1主存主存页号页号块号块号页表页表012247块号块号p p 页内位移页内位移d d000111000111 011100010001110001000 09 910101515页地址转换过程页地址转换过程物理地址物理地址逻辑地址逻辑地址快表的引入快表的引入页表是页表是驻留在内存驻留在内存的某个固定区域中。的某个固定区域中。取一个数据或指令至少要访问内存取一个数据或指令至少要访问内存两次以上两次以上:一次访问页表以确定所取数据或指令的物理地址一次访问页表以确定所取数据或指令的物理
10、地址另一次是根据地址取数据或指令另一次是根据地址取数据或指令这比通常执行指令的速度慢了一倍。这比通常执行指令的速度慢了一倍。解决这个问题的一种方法解决这个问题的一种方法把页表放在一把页表放在一个特殊高速缓存中个特殊高速缓存中快表(快表(“联想寄存器联想寄存器”)用以存放当前访问的那些页表项用以存放当前访问的那些页表项2 2具有快表的地址变换机构具有快表的地址变换机构p页表页表地址越界地址越界页表长度页表长度比较比较P=1pp. . .快表快表页表始址页表始址+Pd物理地址物理地址页表寄存器页表寄存器页号页号p p 页内位移页内位移d逻辑地址逻辑地址两级和多级页表两级和多级页表若若CPU具有具有
11、32位地址,规定页面位地址,规定页面4KB(212)时)时使用使用232逻辑地址空间的分页系统逻辑地址空间的分页系统每个进程的逻辑地址空间有每个进程的逻辑地址空间有1兆兆个页组成个页组成232/212=220每个进程页表中的页表项可达每个进程页表中的页表项可达1 1兆兆若表项占用若表项占用1个字节,则每个进程需要占用个字节,则每个进程需要占用1MB连续内存连续内存空间存放页表。空间存放页表。两级页表两级页表可以采用下述两个方法来解决这一问题:可以采用下述两个方法来解决这一问题:(1) (1) 采采用用离离散散分分配配方方式式来来解解决决难难以以找找到到一一块块连连续续的的大大内内存存空空间间的
12、问题;的问题;(2) (2) 只将当前需要的部分页表项调入内存只将当前需要的部分页表项调入内存其余的页表项仍驻留在磁盘上,需要时再调入。其余的页表项仍驻留在磁盘上,需要时再调入。 页表页表 0 0第第0 0块块内存内存第第1 1块块第第3 3块块1 11M1M第第0页页第第1页页第第1 1块块第第3 3块块0 01 110231023外层外层页表页表1 1两级页表两级页表第第1011块块逻辑地址结构逻辑地址结构若页表项应有若页表项应有1兆个,在采用两级页表结构时,兆个,在采用两级页表结构时,对页表进行分页,使每页中包含对页表进行分页,使每页中包含210(即即1024)个页表项,个页表项,最多允
13、许有最多允许有210个页表分页;个页表分页;具有两级页表的地址变换机构具有两级页表的地址变换机构 页表页表物理地址物理地址外部页表外部页表寄存器寄存器P1P1逻辑地址逻辑地址P2P2d d 外部页表外部页表b bd d外部页号外部页号外部页内地址外部页内地址页内地址页内地址基本分段存储管理方式基本分段存储管理方式分段存储管理方式的引入分段存储管理方式的引入1) 1) 方便编程方便编程用户程序划分:用户程序划分:按程序自身的逻辑关系划分为若干个程序段,按程序自身的逻辑关系划分为若干个程序段,每个程序段都有一个段名和长度,且有一个段号。每个程序段都有一个段名和长度,且有一个段号。段号从段号从0开始
14、,每一段段内也从开始,每一段段内也从0开始编址开始编址段内地址是连续的。段内地址是连续的。LOAD 1LOAD 1,A |A |D D;STORE 1STORE 1,B |B |C C;分段存储管理方式的引入分段存储管理方式的引入2) 2) 信息共享信息共享分页系统中的分页系统中的“页页”只是存放信息的物理单位只是存放信息的物理单位( (块块) )并无完整的意义,不便于实现共享;并无完整的意义,不便于实现共享;段却是信息的逻辑单位。段却是信息的逻辑单位。由由此此可可知知,为为了了实实现现段段的的共共享享,希希望望存存储储管管理理能能与与用用户户程程序分段的组织方式相适应。序分段的组织方式相适应
15、。 3) 3) 信息保护信息保护对信息的逻辑单位进行保护对信息的逻辑单位进行保护分段存储管理方式的引入分段存储管理方式的引入4) 4) 动态增长动态增长特别是数据段,在使用过程中会不断地增长特别是数据段,在使用过程中会不断地增长事先又无法确切地知道数据段会增长到多大事先又无法确切地知道数据段会增长到多大与动态分区不同的是:与动态分区不同的是:分段方案中,一个程序可以占据多个分区分段方案中,一个程序可以占据多个分区这些分区不要求是连续的这些分区不要求是连续的5) 5) 动态链接动态链接当当运运行行过过程程中中需需要要调调用用某某段段时时,才才将将该该段段(目目标标程程序序)调调入入内存并进行链接
16、。内存并进行链接。动态链接也要求以段作为管理的单位。动态链接也要求以段作为管理的单位。分段系统的基本原理分段系统的基本原理1 1 分段分段作业的地址空间被划分为若干个段作业的地址空间被划分为若干个段每个段定义了一组逻辑信息。每个段定义了一组逻辑信息。子程序段子程序段X X数组段数组段D Dcall Xcall X( (调用调用X X段的入口段的入口E)E)call Ycall Y( (调用调用Y Y段的入口段的入口F)F)load 1,Dload 1,D ( (调用数组段调用数组段DG)DG)主程序段主程序段E E:F F:子程序段子程序段Y YG G:栈段栈段0 030K30K0 010K1
17、0K0 020K20K0 015K15K逻辑逻辑地址结构地址结构在该地址结构中,允许一个作业最长有在该地址结构中,允许一个作业最长有2 21616 =64 K=64 K个段,个段,每个段的最大长度为每个段的最大长度为64 KB64 KB。内存分配:内存分配:以段为单位分配内存,以段为单位分配内存,每一个段在内存中占据连续空间每一个段在内存中占据连续空间内存随机分割,需要多少分配多少,内存随机分割,需要多少分配多少,但各段之间可以不连续存放。但各段之间可以不连续存放。2 2段表段表段表是操作系统为段表是操作系统为每个进程每个进程建立的。建立的。3 3地址变换机构地址变换机构控制寄存器控制寄存器
18、段表始址段表始址 段表长度段表长度 2 2 100100段号段号 段长段长 基址基址 物理地址物理地址82928292越界越界? ? 段表段表 逻辑地址逻辑地址0 01 12 500 8K2 500 8K段号段号位移位移练习练习给定地址为段号和位移:给定地址为段号和位移:1)0,430、2)2,500,试求出对应的内存物理地址。,试求出对应的内存物理地址。答:答:1)0,430:219+430=6492)2,500:越界:越界段号段号段首址段首址段长段长021960012300142901003132758041952964 4分页和分段的主要区别分页和分段的主要区别(1)(1)页是信息的物理
19、单位页是信息的物理单位分分页页是是为为实实现现离离散散分分配配方方式式以以消消减减内内存存的的外外零零头头,提提高内存的利用率。高内存的利用率。没有外部碎片没有外部碎片页框中有内部碎片页框中有内部碎片(1)(1)段是信息的逻辑单位段是信息的逻辑单位含有一组其意义相对完整含有一组其意义相对完整的信息。的信息。目的是为了能更好地满足目的是为了能更好地满足用户的需要。用户的需要。没有内部碎片没有内部碎片有外部碎片有外部碎片4 4分页和分段的主要区别分页和分段的主要区别(2)(2)页页的的大大小小固固定定且且由由系系统统决决定定由由系系统统把把逻逻辑辑地地址址划划分分为为页页号和页内地址两部分号和页内
20、地址两部分由机器硬件实现的,由机器硬件实现的,在在系系统统中中只只能能有有一一种种大大小小的的页面页面(2)(2)段的长度却不固定段的长度却不固定决定于用户所编写的程序决定于用户所编写的程序通通常常由由编编译译程程序序在在对对源源程程序序进进行行编编译译时时,根根据据信信息息的的性性质来划分。质来划分。4 4分页和分段的主要区别分页和分段的主要区别(3) (3) 分分页页的的作作业业地地址址空空间间是是一维的一维的单一的线性地址空间,单一的线性地址空间,程程序序员员只只需需利利用用一一个个记记忆忆符,即可表示一个地址;符,即可表示一个地址;(3)(3)分分段段的的作作业业地地址址空空间间是是二
21、二维的维的程程序序员员在在标标识识一一个个地地址址时时,既既需需给给出出段段名名,又又需需给给出出段内地址。段内地址。作业作业1、某某用用户户空空间间共共32个个页页面面,每每页页1KB,主主存存16KB。试试问问:(1)逻逻辑辑地地址址的的有有效效位位是是多多少少位位;物物理理地地址址需需要要多多少少位位?(2)假假定定某某时时刻刻系系统统为为用用户户的的第第0,1,2,3页页分分别别分分配配的的物物理理块块号为号为5,10,4,7,试将逻辑地址,试将逻辑地址0A5CH变换为物理地址。变换为物理地址。2、在在一一分分页页存存储储管管理理系系统统中中,逻逻辑辑地地址址长长度度为为16位位,页页
22、面面大大小小为为4096字字节节,现现有有一一逻逻辑辑地地址址为为2F6AH,且且第第0、1、2页页依依次次存存在在物物理理块块10、12、14号号中中,问问相相应应的的物物理地址为多少?理地址为多少?作业作业3、某基本分段存储管理中采用如下表所示的段表。请、某基本分段存储管理中采用如下表所示的段表。请计算计算1,10,2,500,3,400,4,20,5,100的内存地址,其中的内存地址,其中方括号内的第一元素是段号,第二元素是段内地址。方括号内的第一元素是段号,第二元素是段内地址。段号段号段的长度段的长度内存起始地址内存起始地址0660219114333021009035801237496
23、19543 3虚拟存储器的定义虚拟存储器的定义仅须将那些当前要运行的少数页面(段)先装入内存便可运仅须将那些当前要运行的少数页面(段)先装入内存便可运行。行。程序在运行时,如果它所要访问的页程序在运行时,如果它所要访问的页(段段)已调入内存,便可已调入内存,便可继续执行下去;继续执行下去;如果程序所要访问的页如果程序所要访问的页(段段)尚未调入内存,则尚未调入内存,则利用利用请求调页请求调页(段段)功能,将它们调入内存。功能,将它们调入内存。如果此时内存已满,无法再装入新的页如果此时内存已满,无法再装入新的页(段段),则还须再利,则还须再利用页用页(段段)的的置换置换功能。功能。虚拟存储器的定
24、义虚拟存储器的定义虚拟存储器虚拟存储器是指具有是指具有请求调入功能请求调入功能和和置换功能置换功能,能从能从逻辑上逻辑上对内对内存容量加以扩充的一种存储器系统。存容量加以扩充的一种存储器系统。其其逻辑容量逻辑容量由内存容量和外存容量之和所决定由内存容量和外存容量之和所决定虚拟存储技术是被广泛地应用于大、虚拟存储技术是被广泛地应用于大、中、中、小型机器和微小型机器和微型机中。型机中。虚拟存储器的实现方法虚拟存储器的实现方法1 1请求分页系统请求分页系统在在分分页页系系统统的的基基础础上上,增增加加了了请请求求调调页页功功能能和和页页面面置置换换功功能所形成的能所形成的页式虚拟存储系统页式虚拟存储
25、系统。2. 2. 请求分段系统请求分段系统在在分分段段系系统统的的基基础础上上,增增加加了了请请求求调调段段和和分分段段置置换换功功能能后后所形成的所形成的段式虚拟存储系统段式虚拟存储系统。3.3.段页式虚拟存储管理段页式虚拟存储管理虚拟存储器的特征虚拟存储器的特征1 1多次性多次性指一个作业被分成多次调入内存运行指一个作业被分成多次调入内存运行2 2对换性对换性对换性是指允许在作业的运行过程中进行换进、换出对换性是指允许在作业的运行过程中进行换进、换出3 3虚拟性虚拟性虚拟性是指能够从虚拟性是指能够从逻辑上逻辑上扩充内存容量,使用户所看扩充内存容量,使用户所看到的内存容量远大于实际内存容量到的内存容量远大于实际内存容量虚拟性虚拟性是以是以多次性和对换性多次性和对换性为基础的;为基础的;多次性和对换性又必须建立在多次性和对换性又必须建立在离散分配离散分配的基础上。的基础上。