操作系统-第4章-存储管理课件.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《操作系统-第4章-存储管理课件.ppt》由会员分享,可在线阅读,更多相关《操作系统-第4章-存储管理课件.ppt(158页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第4 4章章 存储管理存储管理重要内容重要内容0存储器存储器0连续存储空间管理连续存储空间管理0分页存储管理分页存储管理0分段存储管理分段存储管理0虚拟存储管理虚拟存储管理0Intel x86Intel x86分段和分页存储结构分段和分页存储结构0LinuxLinux虚拟存储管理虚拟存储管理0Windows 2003Windows 2003虚拟存储管理虚拟存储管理1存储管理的功能存储管理的功能分配和去配分配和去配0请求和释放主存空间请求和释放主存空间抽象和映射抽象和映射0抽象成一维数组或二维地址空间抽象成一维数组或二维地址空间0地址转换地址转换隔离和共享隔离和共享0隔离实现存储保护功能隔离实
2、现存储保护功能0超越隔离机制,提高主存利用率超越隔离机制,提高主存利用率存储扩充存储扩充0虚拟,允许进程虚拟地址空间大于主存空间虚拟,允许进程虚拟地址空间大于主存空间24.1 4.1 存储器存储器4.1.1 4.1.1 存储器的层次存储器的层次 4.1.2 4.1.2 地址转换与存储保护地址转换与存储保护 34.1.1 4.1.1 存储器的层次存储器的层次寄存器寄存器高速缓存高速缓存主存储器主存储器磁盘缓存磁盘缓存固定磁盘固定磁盘可移动存储介质可移动存储介质44.1.2 4.1.2 地址转换与存储保护地址转换与存储保护(1)(1)链接链接动态动态重定重定位位静态静态重定重定位位源程序源程序模块
3、模块1 1源程序源程序模块模块2 2源程序源程序模块模块n n目标目标代码代码1 1目标目标代码代码2 2目标目标代码代码n n可重定位可重定位目标代码目标代码(装载代码装载代码)()(辅存辅存)编译编译装入装入执行执行程序名字程序名字空间空间逻辑地址逻辑地址空间空间物理地址物理地址空间空间可执行可执行二进代二进代码码(主存主存)库代码库代码可执行可执行二进代二进代码码(主存主存)程序的编译、链接、装入和执行程序的编译、链接、装入和执行5地址转换与存储保护地址转换与存储保护(2)(2)逻辑地址(虚地址):逻辑地址(虚地址):CPUCPU所生成的地址所生成的地址物理地址(实地址):内存单元所看到
4、的地址物理地址(实地址):内存单元所看到的地址逻辑地址空间:由程序所生成的所有逻辑地址的逻辑地址空间:由程序所生成的所有逻辑地址的集合集合物理地址空间:由逻辑地址所对应的所有物理地物理地址空间:由逻辑地址所对应的所有物理地址的集合址的集合地址转换或重定位:把逻辑地址转换为物理地址地址转换或重定位:把逻辑地址转换为物理地址6静态重定位静态重定位0地址转换工作在进程执行前一次完成;地址转换工作在进程执行前一次完成;0无须硬件支持,易于实现,但不允许程序在执行过程无须硬件支持,易于实现,但不允许程序在执行过程中移动位置。中移动位置。0早期单用户单任务系统早期单用户单任务系统动态重定位动态重定位0地址
5、转换推迟到最后的可能时刻,即进程执行时才完地址转换推迟到最后的可能时刻,即进程执行时才完成;成;0允许程序在主存中移动、便于主存共享、主存利用率允许程序在主存中移动、便于主存共享、主存利用率高。高。地址转换与存储保护地址转换与存储保护(3)(3)7例:使用重定位寄存器的动态重定位例:使用重定位寄存器的动态重定位8存储保护存储保护问题:保护操作系统不受用户进程所影响,保护用户进程问题:保护操作系统不受用户进程所影响,保护用户进程不受其他用户进程所影响不受其他用户进程所影响方法方法1)1)存储键保护存储键保护v系统将主存划分成大小相等的若干存储块,并给每个存系统将主存划分成大小相等的若干存储块,并
6、给每个存储块都分配一个单独的保护键(锁);在程序状态字储块都分配一个单独的保护键(锁);在程序状态字PSWPSW中设置有保护键字段,对不同的作业赋予不同的代中设置有保护键字段,对不同的作业赋予不同的代码(钥匙);钥匙和锁相配才允许访问码(钥匙);钥匙和锁相配才允许访问2)2)界限寄存器(下页图)界限寄存器(下页图)v上、下界防护上、下界防护:硬件为分给用户作业的连续的主存空间:硬件为分给用户作业的连续的主存空间设置一对上、下界,分别指向该存储空间的上、下界设置一对上、下界,分别指向该存储空间的上、下界v基址、限长防护基址、限长防护:基址寄存器存放当前正执行者的程序:基址寄存器存放当前正执行者的
7、程序地址空间所占分区的始址,限长寄存器存放该地址空间地址空间所占分区的始址,限长寄存器存放该地址空间的长度的长度地址转换与存储保护地址转换与存储保护(4)(4)9下限寄存器下限寄存器20002000上限寄存器上限寄存器35003500基址寄存器基址寄存器20002000限长寄存器限长寄存器15001500进程进程idid下限下限+上限寄存器上限寄存器基址基址+限长寄存器限长寄存器1 11000+19991000+19991000+9991000+9992 22000+35002000+35002000+15002000+15003 34000+50004000+50004000+1000400
8、0+1000内存映像内存映像进程1进程2进程3100019992000350040005000正运行的进程是进程正运行的进程是进程2 2104.2 4.2 连续存储空间管理连续存储空间管理4.2.1 4.2.1 固定分区存储管理固定分区存储管理 4.2.2 4.2.2 可变分区存储管理可变分区存储管理 4.2.3 4.2.3 伙伴系统伙伴系统4.2.4 4.2.4 主存不足的存储管理技术主存不足的存储管理技术114.2.1 4.2.1 固定分区存储管理固定分区存储管理固定分区存储管理的基本思想固定分区存储管理的基本思想0主主存存空空间间被被分分成成数数目目固固定定不不变变的的分分区区,各各分分
9、区区的大小不等,每个分区只装入一个作业。的大小不等,每个分区只装入一个作业。固定分区存储管理的数据结构固定分区存储管理的数据结构0主存分配表:指出各分区的起始地址和长度;主存分配表:指出各分区的起始地址和长度;0占用标志:指示此分区是否被使用。占用标志:指示此分区是否被使用。作业进入固定分区排队策略作业进入固定分区排队策略0每个分区有单独的作业等待队列;每个分区有单独的作业等待队列;0所有等待处理的作业排成一个等待队列。所有等待处理的作业排成一个等待队列。12固定分区存储管理的地址转换和存储保护固定分区存储管理的地址转换和存储保护 B B下限寄存器下限寄存器逻辑地址逻辑地址CPUCPU绝对地址
10、绝对地址操作系统区操作系统区用户分区用户分区1 1用户分区用户分区2 2用户分区用户分区3 3B+L2B+L2上限寄存器上限寄存器B+L2B+L2越界中断越界中断用户分区用户分区4 4用户分区用户分区5 5用户分区用户分区6 613固定分区的优缺点固定分区的优缺点优点优点0能够解决单道程序运行在并发环境下不能与能够解决单道程序运行在并发环境下不能与CPUCPU速度匹速度匹配的问题配的问题0解决了单道程序运行时主存空间利用率低的问题解决了单道程序运行时主存空间利用率低的问题0实现简单实现简单缺点缺点0大作业可能无法装入大作业可能无法装入0主存空间利用率不高,会出现内碎片主存空间利用率不高,会出现
11、内碎片0扩充困难扩充困难0限制多道运行程序的个数限制多道运行程序的个数144.2.2 4.2.2 可变分区存储管理可变分区存储管理 可变分区存储管理是按作业的实际大小来划可变分区存储管理是按作业的实际大小来划分分区,且分区个数也是随机的分分区,且分区个数也是随机的,实现多个作实现多个作业对主存的共享,进一步提高主存资源利用业对主存的共享,进一步提高主存资源利用率。率。15可变分区方式主存分配示例可变分区方式主存分配示例操作系统操作系统作业作业1 1空闲区空闲区作业作业2 2空闲区空闲区4KB4KB10KB10KB46KB46KB52KB52KB128KB128KB操作系统操作系统作业作业1 1
12、空闲区空闲区作业作业2 2空闲区空闲区4KB4KB10KB10KB40KB40KB46KB46KB52KB52KB128KB128KB作业作业3 3操作系统操作系统作业作业1 1空闲区空闲区4KB4KB10KB10KB40KB40KB128KB128KB作业作业3 316可变分区存储管理数据结构可变分区存储管理数据结构 可变分区主存分配表可由两张表格组成,可变分区主存分配表可由两张表格组成,已分配区表已分配区表未分配区表未分配区表17可变分区回收算法可变分区回收算法A AX XA AX XB BX XB BA AX XA AB BB B18链表空闲区管理方法链表空闲区管理方法空空闲闲区区开开头
13、头单单元元存存放放本本空空闲闲区区长长度度及及下下个个空空闲闲区区起起始始地地址址,把把所所有有空空闲闲区区都都链链接接起起来来,设设置置第第一一块块空空闲闲区区地地址址指指针针,让让它它指指向向第第一块空闲区地址。一块空闲区地址。申申请请空空闲闲区区:沿沿链链查查找找并并取取一一个个长长度度能能满满足要求的空闲区;足要求的空闲区;归归还还空空闲闲区区:把把此此空空闲闲区区链链入入空空闲闲区区链链表表的相应位置。的相应位置。19可变分区管理分配算法可变分区管理分配算法1 1)最先适应分配算法)最先适应分配算法空闲区通常按空闲区通常按地址地址从小到大排列,分配第一从小到大排列,分配第一个满足长度
14、要求的空闲区;个满足长度要求的空闲区;优点:分配从低地址开始,使高地址部分比优点:分配从低地址开始,使高地址部分比较少用,以保持一个大空闲区,有利于大较少用,以保持一个大空闲区,有利于大作业的装入;作业的装入;缺点:分区利用不均衡,回收分区比较麻烦。缺点:分区利用不均衡,回收分区比较麻烦。202 2)下次适应分配算法)下次适应分配算法1 1)的变种,每次分配时从未分配区的上次扫描结)的变种,每次分配时从未分配区的上次扫描结束处顺序查找。束处顺序查找。可以解决可以解决1 1)的缺点。)的缺点。3)3)最优适应分配算法最优适应分配算法分配能满足要求的最小区。分配能满足要求的最小区。可以将空闲区按照
15、可以将空闲区按照大小大小从小到大排列,查找第一从小到大排列,查找第一个满足要求的。个满足要求的。优点:主存利用率好。优点:主存利用率好。缺点:分割剩下的空闲区比较小,难以利用;查缺点:分割剩下的空闲区比较小,难以利用;查找时间比较长。找时间比较长。214 4)最坏适应分配算法)最坏适应分配算法分配能满足要求的最大区;分配能满足要求的最大区;可以将空闲区按照可以将空闲区按照大小大小从大到小排列,查找第一从大到小排列,查找第一个满足要求的。个满足要求的。效率大致等同于最先适应法。效率大致等同于最先适应法。5)5)快速适应分配算法快速适应分配算法为经常用到的长度的空闲区设置单独的链表。为经常用到的长
16、度的空闲区设置单独的链表。优点:查找快速;优点:查找快速;缺点:归还时与相邻空闲区的合并即复杂又费时。缺点:归还时与相邻空闲区的合并即复杂又费时。22下表为某系统中的空闲分区表,系统采用可变式分区存储管下表为某系统中的空闲分区表,系统采用可变式分区存储管理策略。现有以下作业序列:理策略。现有以下作业序列:96KB96KB,20KB20KB,200KB200KB,分别使分别使用首次适应、最佳适用和最坏适用算法来处理这个作业序列,用首次适应、最佳适用和最坏适用算法来处理这个作业序列,试问哪一种算法可以满足该作业序列的请求,为什么?试问哪一种算法可以满足该作业序列的请求,为什么?分区号分区号大小大小
17、起始地址起始地址1 132KB32KB100KB100KB2 210KB10KB150KB150KB3 35KB5KB200KB200KB4 4218KB218KB220KB220KB5 596KB96KB530KB530KB例题:例题:FF(N)FF(N)BF(Y)BF(Y)WF(N)WF(N)2/20/122/20/122/20/122/20/121/96/1221/96/122 3/200/183/200/181/96/1221/96/1222/20/1022/20/1021/96/01/96/023可变分区地址转换与存储保护可变分区地址转换与存储保护 基址基址基址寄存器基址寄存器逻辑地
18、址逻辑地址CPUCPU绝对地址绝对地址操作系统区操作系统区空闲分区空闲分区1 1用户作业用户作业1 1空闲分区空闲分区2 2限长限长限长寄存器限长寄存器 限长限长越界中断越界中断24多对基址多对基址/限长寄存器限长寄存器 进程进程B B虚虚CPUCPU进程进程A A虚虚CPUCPU物理主存物理主存进程进程A A私有空间私有空间进程进程B B私有空间私有空间共享区共享区重定位寄存器重定位寄存器1 1限长寄存器限长寄存器1 1重定位寄存器重定位寄存器2 2限长寄存器限长寄存器2 2重定位寄存器重定位寄存器1 1限长寄存器限长寄存器1 1重定位寄存器重定位寄存器2 2限长寄存器限长寄存器2 2 多对
19、重定位寄存器支持主存共享多对重定位寄存器支持主存共享254.2.3 4.2.3 伙伴系统伙伴系统伙伴原理伙伴原理伙伴系统是一种固定分区和可变分区折中的主存管理算法,伙伴系统是一种固定分区和可变分区折中的主存管理算法,基本原理:任何尺寸为基本原理:任何尺寸为2 2i i的空闲块可以被分为两个尺寸为的空闲块可以被分为两个尺寸为2 2i-1i-1的空闲块,这两个空闲块称为伙伴。的空闲块,这两个空闲块称为伙伴。伙伴通过对大块的物理主存划分而获得伙伴通过对大块的物理主存划分而获得0假如从第假如从第0 0个页面开始到第个页面开始到第3 3个页面结束的主存个页面结束的主存0每次都对半划分,那么第一次划分获得
20、大小为每次都对半划分,那么第一次划分获得大小为2 2页的伙页的伙伴,如伴,如0 0、1 1和和2 2、3 30进一步划分,可以获得大小为进一步划分,可以获得大小为1 1页的伙伴,例如页的伙伴,例如0 0和和1 1,2 2和和3 30123012326伙伴系统原理伙伴系统原理128k 256k 384k 512k 640k 768k 896k 1M128k 256k 384k 512k 640k 768k 896k 1M A A 128128 256256 512 512 A AB B6464 256256 512512 A AB B6464 C C 128128 512512 128128B
21、B6464 C C 128128 512512 128128B BD D C C 128128 512512 1281286464D D C C 128128 512512 256256 C C 128128 512512 10241024272.Linux2.Linux伙伴系统伙伴系统1)1)以以pagepage结构为数组元素的结构为数组元素的mem_mapmem_map 数组数组2)2)以以free_area_structfree_area_struct结构为数组元素的结构为数组元素的free_areafree_area数组数组3)3)位图数组位图数组(bitmap)(bitmap)283
22、.Linux3.Linux基于伙伴的基于伙伴的slabslab分配器分配器(1)(1)为什么要使用为什么要使用slabslab分配器分配器?0缓冲机制,能够提高效率缓冲机制,能够提高效率slabslab的结构的结构0见下页图见下页图slabslab的操作的操作0kmemkmem-cache-create()-cache-create()0kmem-cache-alockmem-cache-aloc()()与与kmemkmem-cache-free()-cache-free()0kmemkmem-cache-grow()-cache-grow()与与kmemkmem-cache-reap()-c
23、ache-reap()0kmalloc()kfreekmalloc()kfree()()0kmem-getpageskmem-getpages()()与与kmem-frepageskmem-frepages()()29LinuxLinux基于伙伴的基于伙伴的slabslab分配器分配器(2)(2)slabslab分配器组成分配器组成cachecacheslabslabslabslabslabslabslabslabslabslabslabslabslabslabcachecachecachecacheslabslabslabslab满满slabslab半满半满slabslab空空slabsla
24、b存存pcbpcb存存inodeinode存存vmavma304.2.4 4.2.4 主存不足的存储管理技术主存不足的存储管理技术 操作系统操作系统作业作业1 1空闲区空闲区作业作业2 2空闲区空闲区作业作业3 3空闲区空闲区操作系统操作系统作业作业1 1作业作业2 2作业作业3 3空闲区空闲区操作系统操作系统作业作业1 1作业作业2 2作业作业3 3空闲区空闲区作业作业4 41.1.移动技术移动技术31有关移动问题讨论有关移动问题讨论移动条件移动条件0在可变分区算法中,随着进程不断的装入和撤销,导致在可变分区算法中,随着进程不断的装入和撤销,导致主存中常常出现分散的小空闲区,称为主存中常常出
25、现分散的小空闲区,称为碎片碎片。0当在未分配区中找不到足够大的空闲区来装入新进程时,当在未分配区中找不到足够大的空闲区来装入新进程时,可采用移动技术,将分散的空闲空闲区汇集成片。可采用移动技术,将分散的空闲空闲区汇集成片。移动时机移动时机0进程撤销之后释放分区时,如果它不与空闲区邻接,立进程撤销之后释放分区时,如果它不与空闲区邻接,立即实施移动。即实施移动。0进程装入分区时,如果它不与空闲区邻接,立即实施引进程装入分区时,如果它不与空闲区邻接,立即实施引动。动。32移动算法(假设进程移动算法(假设进程A A请求分配请求分配x KBx KB主存)主存)0步骤步骤1 1:查主存分配表,若有大于:查
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 存储 管理 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内