第9章 内存管理_第1页
第9章 内存管理_第2页
第9章 内存管理_第3页
第9章 内存管理_第4页
第9章 内存管理_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、安徽科技学院 设计人:赵艳红第第9章章 内存管理(内存管理(2)教师:计算机操作系统课程组教师:计算机操作系统课程组E-mail: E-mail: (赵艳红)(赵艳红) (沈峰)(沈峰) 校重点建设课程校重点建设课程1精选课件1Contents分页分页校重点建设课程校重点建设课程2精选课件2引言引言? 为了消除外部碎片从而提高内存使用效率,能否把为了消除外部碎片从而提高内存使用效率,能否把进程在内存中连续存储这种情况改变,使之非连续进程在内存中连续存储这种情况改变,使之非连续存储?存储?把进程的把进程的逻辑内存逻辑内存分割成不同的分割成不同的块块。把把物理内存物理内存也分割为不同的也分割为不同

2、的块块。p 分割的方法不一样,会导致以下不同的内存管理方分割的方法不一样,会导致以下不同的内存管理方案:案:分段分段、分页分页、带有分页的分段带有分页的分段。内存管理方案是通过硬件与操作系统相互配合实现内存管理方案是通过硬件与操作系统相互配合实现的。的。校重点建设课程校重点建设课程3精选课件39.4 分页分页9.4.1 基本方法基本方法n 把把物理内存物理内存分割成大小相等且大小固定的块,称之分割成大小相等且大小固定的块,称之为为帧帧(frame),也称为,也称为物理页物理页。帧大小帧大小:512Byte64KByte,80386中:中:4KByte.帧号帧号n 把进程的把进程的逻辑内存逻辑内

3、存也分割为与帧大小一样的块,称也分割为与帧大小一样的块,称之为之为页页,也称为,也称为逻辑页逻辑页。n 备份存储器(如硬盘、备份存储器(如硬盘、SD卡等)也分割为与帧大卡等)也分割为与帧大小一样的块。小一样的块。校重点建设课程校重点建设课程4精选课件49.4.1 基本方法基本方法n 当一个程序从当一个程序从硬盘硬盘调入到调入到内存内存时,要把时,要把整个整个程序程序即程序的所有页都调入到内存。即程序的所有页都调入到内存。在在请求分页式请求分页式虚拟存储管理方案中只需要把虚拟存储管理方案中只需要把当前当前运行运行需要的需要的页页调入调入内存内存中。中。校重点建设课程校重点建设课程5精选课件5页表

4、页表l作用:表示作用:表示页号页号与与帧号帧号的一一对应关系的一一对应关系l组成:组成:页号页号+帧号帧号l大部分操作系统都把大部分操作系统都把页表页表存储在存储在内存内存中。中。l页表页表的的大小大小由由进程的长度进程的长度决定。决定。例如,对于一个每页长例如,对于一个每页长1 K1 K,大小为,大小为20 K20 K的进程来说,如的进程来说,如果一个内存单元存放一个页表项,则只要分配给该页表果一个内存单元存放一个页表项,则只要分配给该页表2020个存储单元即可。个存储单元即可。l每个进程至少拥有一个页表。每个进程至少拥有一个页表。校重点建设课程校重点建设课程6精选课件6逻辑内存和物理内存的

5、分页模型逻辑内存和物理内存的分页模型n页到帧页到帧的的地址转换地址转换是通过是通过硬件硬件完成的,如右图所示。完成的,如右图所示。nCPU产生的产生的逻辑地址逻辑地址分为两部分为两部分:分:页号页号(p):是页表的是页表的索引值索引值,页表页表中包含每页对应的中包含每页对应的帧号帧号页偏移页偏移(d):它与帧号组合形它与帧号组合形成成物理地址物理地址。在在80386中,地址为中,地址为32位。位。12位表示页偏移:页长位表示页偏移:页长为为4 KB20位表示页号:位表示页号: 页数页数1024K个个逻辑地址结构如下图所逻辑地址结构如下图所示:示:p分页示例:页长分页示例:页长4Byte,物理内

6、存:,物理内存:32Byte。页表页表逻辑内存逻辑内存物理内存物理内存页码页码逻辑地址逻辑地址0 0对应对应的的页码页码为为0 0,页,页偏移为偏移为0 0,根据,根据页表,页码页表,页码0 0对对应的应的帧号帧号是是5 5。所以逻辑地址所以逻辑地址0 0对应的物理地址对应的物理地址是是5 5* *4+0=204+0=20即即帧帧号页长页偏号页长页偏移移逻辑地址逻辑地址0对应的物理地址对应的物理地址是多少?是多少?123012305674帧号帧号校重点建设课程校重点建设课程9精选课件9示例示例? 假设某假设某OS中,页和帧的大小都为中,页和帧的大小都为1KB,有一个进,有一个进程其页表如下图所

7、示,此进程有一条指令为程其页表如下图所示,此进程有一条指令为LOAD 1,2500,此指令的虚地址为,此指令的虚地址为100。问题:问题:(1)虚地址虚地址100对应的物理地址。对应的物理地址。(2) 指令中表示操作数的虚地址指令中表示操作数的虚地址2500对应的物理地对应的物理地址址? 解:解:(1)(1)为了找出逻辑地址为了找出逻辑地址100100对应的物理地址,硬件地址变换机对应的物理地址,硬件地址变换机构首先将构首先将100100转换为页号转换为页号p p与页偏移与页偏移d d组成的逻辑地址形式。即组成的逻辑地址形式。即p=0p=0,d=100d=100。从页表中可知第。从页表中可知第

8、0 0页与页与2 2号帧相对应,将帧号号帧相对应,将帧号2 2与与页偏移页偏移d=100d=100相连,得到物理内存地址:相连,得到物理内存地址:2 2* *1024+100=21481024+100=2148。210241002148校重点建设课程校重点建设课程11精选课件11示例示例(2) (2) 指令中表示操作数的虚地址指令中表示操作数的虚地址25002500对应的物理地址对应的物理地址? ? 答案:答案:86448644。 课后请计算答案为什么是课后请计算答案为什么是86448644。校重点建设课程校重点建设课程12精选课件12n 分页技术分页技术不会不会产生产生外部碎片外部碎片:每个

9、帧都可能:每个帧都可能会被使用。会被使用。n 分页技术分页技术会会产生产生内部碎片内部碎片:因为分配单位是:因为分配单位是帧。如果一个进程要求的内存并不是帧的整帧。如果一个进程要求的内存并不是帧的整数倍,那么最后一个帧就可能用不完。数倍,那么最后一个帧就可能用不完。例如:如果页大小:例如:如果页大小:2048Byte2048Byte,进程大小:,进程大小:72766Byte72766Byte,则进程需要,则进程需要3535个页和个页和1086Byte1086Byte。该进程会得到该进程会得到3636个帧。因此会产生个帧。因此会产生2048-2048-1086=962Byte1086=962By

10、te的内部碎片。的内部碎片。l当系统需要执行一个进程时,它将检查进程当系统需要执行一个进程时,它将检查进程所需要的页数所需要的页数。因此,如果进程需要因此,如果进程需要n个页,那么内存中至少应有个页,那么内存中至少应有n个个空闲帧空闲帧。如果有,则可以分配给新进程。如果有,则可以分配给新进程。l进程的第一页装入一个空闲帧中,帧号放入进程的页表中。进程的第一页装入一个空闲帧中,帧号放入进程的页表中。下一页分配给另一个空闲帧,其帧号也放入进程的页表中,下一页分配给另一个空闲帧,其帧号也放入进程的页表中,等等。等等。页表的各项随之被填充页表的各项随之被填充。校重点建设课程校重点建设课程14精选课件1

11、49.4.2 硬件支持硬件支持? 操作系统如何保存页表?操作系统如何保存页表?有的操作系统把页表存储在有的操作系统把页表存储在寄存器寄存器中。如中。如DEC DEC PDP-11PDP-11。大部分操作系统都把页表存储大部分操作系统都把页表存储在内存中在内存中。这时将。这时将页表基寄存器页表基寄存器(PTBR(PTBR,其作用与如下图中的控制,其作用与如下图中的控制寄存器相同寄存器相同) )指向指向页表页表。PTBRPTBR的值保存在进程的的值保存在进程的PCBPCB中。中。校重点建设课程校重点建设课程15精选课件159.4.2 硬件支持硬件支持校重点建设课程校重点建设课程16精选课件16说明

12、说明(1) 地址变换过程地址变换过程:CPU中的地址变换机构自动完成。中的地址变换机构自动完成。(2)页表页表:在内存中,取一个数据或指令:在内存中,取一个数据或指令至少要访问内至少要访问内存两次存两次以上:获取以上:获取物理地址物理地址、取、取数据数据或或指令指令。n 为了提高查找速度:把为了提高查找速度:把最近使用最近使用过的过的页表项页表项放进放进小小型型的的高速缓冲存储器高速缓冲存储器中,称之为中,称之为翻译后备缓冲器翻译后备缓冲器(translation look-aside buffer,TLB)。 TLB中保存的条目个数一般在中保存的条目个数一般在641024。80386中中:T

13、LB中为中为32项。项。v当当CPUCPU产生产生逻辑地址逻辑地址后,其后,其页号页号提交给提交给TLBTLB。如果找到。如果找到页号页号也也就找到了就找到了帧号帧号,则不需要再查找页表了。如果在,则不需要再查找页表了。如果在TLBTLB中中找不找不到到页号,则需要页号,则需要访问页表访问页表,当得到,当得到帧号帧号后就可以访问后就可以访问内存内存。同时将同时将页号与帧号页号与帧号增加到增加到TLBTLB中中,供下次访问此页时,供下次访问此页时TLBTLB使用。使用。如果如果TLBTLB条目条目已满已满,则操作系统会选择一个条目将它移出,则操作系统会选择一个条目将它移出TLBTLB。校重点建设

14、课程校重点建设课程18精选课件189.4.3 保护保护 分页环境下,分页环境下,内存保护内存保护是通过与每个帧相关联的是通过与每个帧相关联的保保护位护位来实现的。来实现的。 保护位的保护位的类型类型:用于指示页可读、可写、可读:用于指示页可读、可写、可读/ /写、写、有效有效/ /无效等。无效等。 有效有效/ /无效位无效位:有效时,表示该值相关的:有效时,表示该值相关的页页在进程在进程的的逻辑地址空间内逻辑地址空间内,是合法(或有效)的页。无效,是合法(或有效)的页。无效时,表示该时,表示该页不在页不在进程的逻辑地址空间内,进程进程的逻辑地址空间内,进程访访问此页问此页时会产生时会产生非法操

15、作非法操作即无效地址引用。即无效地址引用。 操作系统可以通过操作系统可以通过保护位保护位设置该页设置该页有效有效/ /无效。无效。校重点建设课程校重点建设课程19精选课件19示例示例p 某计算机系统其某计算机系统其物理地址空间物理地址空间为为1414位(位(016383),016383),有一个程序其有一个程序其逻辑地址空间逻辑地址空间为为010468010468。若页大小:。若页大小:2KB2KB,那么得到如下图所示的页表。,那么得到如下图所示的页表。 有效的地址范围有效的地址范围:012287012287。12288163831228816383对于此程对于此程序来说,都是无效地址。序来说

16、,都是无效地址。校重点建设课程校重点建设课程20精选课件20示例示例校重点建设课程校重点建设课程21精选课件219.4.4 页表结构页表结构lIntel 80386Intel 80386中的中的地址空地址空间是间是232232,页大小页大小:4KB4KB (212)(212),可表示的页个,可表示的页个数是数是232/212 232/212 个。也个。也即一个进程的页表中条即一个进程的页表中条目个数最多可以是:目个数最多可以是:232/212 232/212 个,如果每个,如果每个条目大小为个条目大小为4B4B,则每,则每个这个个这个页表的大小是页表的大小是4M4M。页表还必须在内存中连页表还

17、必须在内存中连续存放。续存放。如何使页表可如何使页表可以不必连续存放在内存以不必连续存放在内存中?中?校重点建设课程校重点建设课程22精选课件22n Intel 80386解决这个问题的方法:解决这个问题的方法:两层分页两层分页算法,算法,即将页表再分页即将页表再分页保存。这时,逻辑地保存。这时,逻辑地址的结构如图所示。址的结构如图所示。P1是是外部页表的索引外部页表的索引,P2是是内部页表的索内部页表的索引。引。校重点建设课程校重点建设课程23精选课件23Intel 80386中两层分页的地址转换中两层分页的地址转换又称为页目又称为页目录表录表页表页表校重点建设课程校重点建设课程24精选课件249.4.5 共享页共享页n 共享代码共享代码如果代码是可重入的,那么就可以供多个进程共如果代码是可重入的,那么就可以供多个进程共享。例如编辑器、编译器等。享。例如编辑器、编译器等。n 私有数据私有数据每个进程都有自己的数据页。每个进程都有自己的数据页。校重点建设课

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论