操作系统-第4章-存储管理ppt课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《操作系统-第4章-存储管理ppt课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 存储 管理 ppt 课件
- 资源描述:
-
1、1第第4 4章章 存储管理存储管理 重要内容重要内容0存储器存储器0连续存储空间管理连续存储空间管理0分页存储管理分页存储管理0分段存储管理分段存储管理0虚拟存储管理虚拟存储管理0Intel x86Intel x86分段和分页存储结构分段和分页存储结构0LinuxLinux虚拟存储管理虚拟存储管理0Windows 2003Windows 2003虚拟存储管理虚拟存储管理2存储管理的功能存储管理的功能 分配和去配分配和去配0请求和释放主存空间请求和释放主存空间 抽象和映射抽象和映射0抽象成一维数组或二维地址空间抽象成一维数组或二维地址空间0地址转换地址转换 隔离和共享隔离和共享0隔离实现存储保护
2、功能隔离实现存储保护功能0超越隔离机制,提高主存利用率超越隔离机制,提高主存利用率 存储扩充存储扩充0虚拟,允许进程虚拟地址空间大于主存空间虚拟,允许进程虚拟地址空间大于主存空间34.1 4.1 存储器存储器4.1.1 4.1.1 存储器的层次存储器的层次 4.1.2 4.1.2 地址转换与存储保护地址转换与存储保护 44.1.1 4.1.1 存储器的层次存储器的层次寄存器寄存器高速缓存高速缓存主存储器主存储器磁盘缓存磁盘缓存固定磁盘固定磁盘可移动存储介质可移动存储介质54.1.2 4.1.2 地址转换与存储保护地址转换与存储保护(1)(1)链接链接动态动态重定重定位位静态静态重定重定位位源程
3、序源程序模块模块1 1源程序源程序模块模块2 2源程序源程序模块模块n n目标目标代码代码1 1目标目标代码代码2 2目标目标代码代码n n可重定位可重定位目标代码目标代码( (装载代装载代码码)()(辅存辅存) )编译编译装入装入执行执行程序名字程序名字空间空间逻 辑 地逻 辑 地址址空间空间物理地址物理地址空间空间可执行可执行二进代二进代码码( (主存主存) )库代码库代码可执行可执行二进代二进代码码( (主存主存) ) 程序的编译、链接、装入和执行程序的编译、链接、装入和执行6地址转换与存储保护地址转换与存储保护(2)(2) 逻辑地址(虚地址):逻辑地址(虚地址):CPUCPU所生成的地
4、址所生成的地址 物理地址(实地址):内存单元所看到的地址物理地址(实地址):内存单元所看到的地址 逻辑地址空间:由程序所生成的所有逻辑地址的逻辑地址空间:由程序所生成的所有逻辑地址的集合集合 物理地址空间:由逻辑地址所对应的所有物理地物理地址空间:由逻辑地址所对应的所有物理地址的集合址的集合 地址转换或重定位:把逻辑地址转换为物理地址地址转换或重定位:把逻辑地址转换为物理地址7 静态重定位静态重定位0地址转换工作在进程执行前一次完成;地址转换工作在进程执行前一次完成;0无须硬件支持,易于实现,但不允许程序在执行过程无须硬件支持,易于实现,但不允许程序在执行过程中移动位置。中移动位置。0早期单用
5、户单任务系统早期单用户单任务系统 动态重定位动态重定位0地址转换推迟到最后的可能时刻,即进程执行时才完地址转换推迟到最后的可能时刻,即进程执行时才完成;成;0允许程序在主存中移动、便于主存共享、主存利用率允许程序在主存中移动、便于主存共享、主存利用率高。高。地址转换与存储保护地址转换与存储保护(3)(3)8例:使用重定位寄存器的动态重定位例:使用重定位寄存器的动态重定位9存储保护存储保护 问题:保护操作系统不受用户进程所影响,保护用户进程问题:保护操作系统不受用户进程所影响,保护用户进程不受其他用户进程所影响不受其他用户进程所影响 方法方法1)1)存储键保护存储键保护v系统将主存划分成大小相等
6、的若干存储块,并给每个存系统将主存划分成大小相等的若干存储块,并给每个存储块都分配一个单独的保护键(锁);在程序状态字储块都分配一个单独的保护键(锁);在程序状态字PSWPSW中设置有保护键字段,对不同的作业赋予不同的代中设置有保护键字段,对不同的作业赋予不同的代码(钥匙);钥匙和锁相配才允许访问码(钥匙);钥匙和锁相配才允许访问2)2)界限寄存器(下页图)界限寄存器(下页图)v上、下界防护上、下界防护:硬件为分给用户作业的连续的主存空间:硬件为分给用户作业的连续的主存空间设置一对上、下界,分别指向该存储空间的上、下界设置一对上、下界,分别指向该存储空间的上、下界v基址、限长防护基址、限长防护
7、:基址寄存器存放当前正执行者的程序:基址寄存器存放当前正执行者的程序地址空间所占分区的始址,限长寄存器存放该地址空间地址空间所占分区的始址,限长寄存器存放该地址空间的长度的长度地址转换与存储保护地址转换与存储保护(4)(4)10下限寄存器下限寄存器20002000上限寄存器上限寄存器35003500基址寄存器基址寄存器20002000限长寄存器限长寄存器15001500进程进程idid下限下限+ +上限寄存器上限寄存器基址基址+ +限长寄存器限长寄存器1 11000+19991000+19991000+9991000+9992 22000+35002000+35002000+15002000+
8、15003 34000+50004000+50004000+10004000+1000内存映像内存映像进程1进程2进程3100019992000350040005000正运行的进程是进程正运行的进程是进程2 2114.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 主存不足的存储管理技术主存不足的存储管理技术124.2.1 4.2.1 固定分区存储管理固定分区存储管理 固定分区存储管理的基本思想固定分区存储管理的基本思想
9、0主存空间被分成数目固定不变的分区,各分区主存空间被分成数目固定不变的分区,各分区的大小不等,每个分区只装入一个作业。的大小不等,每个分区只装入一个作业。 固定分区存储管理的数据结构固定分区存储管理的数据结构0主存分配表:指出各分区的起始地址和长度;主存分配表:指出各分区的起始地址和长度;0占用标志:指示此分区是否被使用。占用标志:指示此分区是否被使用。 作业进入固定分区排队策略作业进入固定分区排队策略0每个分区有单独的作业等待队列;每个分区有单独的作业等待队列;0所有等待处理的作业排成一个等待队列。所有等待处理的作业排成一个等待队列。13固定分区存储管理的地址转换和存储保护固定分区存储管理的
10、地址转换和存储保护 B B下限寄存器下限寄存器逻辑地址逻辑地址CPUCPU绝对地址绝对地址操作系统区操作系统区用户分区用户分区1 1用户分区用户分区2 2用户分区用户分区3 3B+L2B+L2上限寄存器上限寄存器B+L2B+L2越界中断越界中断用户分区用户分区4 4用户分区用户分区5 5用户分区用户分区6 614固定分区的优缺点固定分区的优缺点 优点优点0能够解决单道程序运行在并发环境下不能与能够解决单道程序运行在并发环境下不能与CPUCPU速度匹速度匹配的问题配的问题0解决了单道程序运行时主存空间利用率低的问题解决了单道程序运行时主存空间利用率低的问题0实现简单实现简单 缺点缺点0大作业可能
11、无法装入大作业可能无法装入0主存空间利用率不高,会出现内碎片主存空间利用率不高,会出现内碎片0扩充困难扩充困难0限制多道运行程序的个数限制多道运行程序的个数154.2.2 4.2.2 可变分区存储管理可变分区存储管理 可变分区存储管理是按作业的实际大小来划可变分区存储管理是按作业的实际大小来划分分区,且分区个数也是随机的分分区,且分区个数也是随机的, ,实现多个实现多个作业对主存的共享,进一步提高主存资源利作业对主存的共享,进一步提高主存资源利用率。用率。 16可变分区方式主存分配示例可变分区方式主存分配示例操作系统操作系统作业作业1 1空闲区空闲区作业作业2 2空闲区空闲区4KB4KB10K
12、B10KB46KB46KB52KB52KB128KB128KB操作系统操作系统作业作业1 1空闲区空闲区作业作业2 2空闲区空闲区4KB4KB10KB10KB40KB40KB46KB46KB52KB52KB128KB128KB作业作业3 3操作系统操作系统作业作业1 1空闲区空闲区4KB4KB10KB10KB40KB40KB128KB128KB作业作业3 317可变分区存储管理数据结构可变分区存储管理数据结构 可变分区主存分配表可由两张表格组成,可变分区主存分配表可由两张表格组成, 已分配区表已分配区表 未分配区表未分配区表18可变分区回收算法可变分区回收算法A AX XA AX XB BX
13、XB BA AX XA AB BB B19链表空闲区管理方法链表空闲区管理方法 空闲区开头单元存放本空闲区长度及下个空闲区开头单元存放本空闲区长度及下个空闲区起始地址空闲区起始地址, ,把所有空闲区都链接起来把所有空闲区都链接起来, ,设置第一块空闲区地址指针设置第一块空闲区地址指针, ,让它指向第让它指向第一块空闲区地址。一块空闲区地址。 申请空闲区:沿链查找并取一个长度能满申请空闲区:沿链查找并取一个长度能满足要求的空闲区;足要求的空闲区; 归还空闲区:把此空闲区链入空闲区链表归还空闲区:把此空闲区链入空闲区链表的相应位置。的相应位置。20可变分区管理分配算法可变分区管理分配算法1 1)最
14、先适应分配算法)最先适应分配算法空闲区通常按空闲区通常按地址地址从小到大排列,分配第从小到大排列,分配第一个满足长度要求的空闲区;一个满足长度要求的空闲区;优点:分配从低地址开始,使高地址部分优点:分配从低地址开始,使高地址部分比较少用,以保持一个大空闲区,有利于比较少用,以保持一个大空闲区,有利于大作业的装入;大作业的装入;缺点:分区利用不均衡,回收分区比较麻缺点:分区利用不均衡,回收分区比较麻烦。烦。 212 2)下次适应分配算法)下次适应分配算法1 1)的变种,每次分配时从未分配区的上次扫描)的变种,每次分配时从未分配区的上次扫描结束处顺序查找。结束处顺序查找。可以解决可以解决1 1)的
15、缺点。)的缺点。3) 3) 最优适应分配算法最优适应分配算法分配能满足要求的最小区。分配能满足要求的最小区。可以将空闲区按照可以将空闲区按照大小大小从小到大排列,查找第一从小到大排列,查找第一个满足要求的。个满足要求的。优点:主存利用率好。优点:主存利用率好。缺点:分割剩下的空闲区比较小,难以利用;查缺点:分割剩下的空闲区比较小,难以利用;查找时间比较长。找时间比较长。224 4)最坏适应分配算法)最坏适应分配算法分配能满足要求的最大区;分配能满足要求的最大区;可以将空闲区按照可以将空闲区按照大小大小从大到小排列,查找第一从大到小排列,查找第一个满足要求的。个满足要求的。效率大致等同于最先适应
16、法。效率大致等同于最先适应法。5) 5) 快速适应分配算法快速适应分配算法为经常用到的长度的空闲区设置单独的链表。为经常用到的长度的空闲区设置单独的链表。优点:查找快速;优点:查找快速;缺点:归还时与相邻空闲区的合并即复杂又费时缺点:归还时与相邻空闲区的合并即复杂又费时。 23下表为某系统中的空闲分区表,系统采用可变式分区存储管下表为某系统中的空闲分区表,系统采用可变式分区存储管理策略。现有以下作业序列:理策略。现有以下作业序列: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
18、/20/1021/96/01/96/024可变分区地址转换与存储保护可变分区地址转换与存储保护 基址基址基址寄存器基址寄存器逻辑地址逻辑地址CPUCPU绝对地址绝对地址操作系统区操作系统区空闲分区空闲分区1 1用户作业用户作业1 1空闲分区空闲分区2 2限长限长限长寄存器限长寄存器 限长限长越界中断越界中断25多对基址多对基址/ /限长寄存器限长寄存器 进程进程B B虚虚CPUCPU进程进程A A虚虚CPUCPU物理主存物理主存进程进程A A私有空间私有空间进程进程B B私有空间私有空间共享区共享区重定位寄存器重定位寄存器1 1限长寄存器限长寄存器1 1重定位寄存器重定位寄存器2 2限长寄存器
19、限长寄存器2 2重定位寄存器重定位寄存器1 1限长寄存器限长寄存器1 1重定位寄存器重定位寄存器2 2限长寄存器限长寄存器2 2 多对重定位寄存器支持主存共享多对重定位寄存器支持主存共享264.2.3 4.2.3 伙伴系统伙伴系统伙伴原理伙伴原理 伙伴系统是一种固定分区和可变分区折中的主存管理算伙伴系统是一种固定分区和可变分区折中的主存管理算法,基本原理:任何尺寸为法,基本原理:任何尺寸为2 2i i的空闲块可以被分为两个尺的空闲块可以被分为两个尺寸为寸为2 2i-1i-1的空闲块,这两个空闲块称为伙伴。的空闲块,这两个空闲块称为伙伴。 伙伴通过对大块的物理主存划分而获得伙伴通过对大块的物理主
20、存划分而获得0假如从第假如从第0 0个页面开始到第个页面开始到第3 3个页面结束的主存个页面结束的主存0每次都对半划分,那么第一次划分获得大小为每次都对半划分,那么第一次划分获得大小为2 2页的伙页的伙伴,如伴,如0 0、1 1和和2 2、3 30进一步划分,可以获得大小为进一步划分,可以获得大小为1 1页的伙伴,例如页的伙伴,例如0 0和和1 1,2 2和和3 30123012327伙伴系统原理伙伴系统原理128k 256k 384k 512k 640k 768k 896k 1M128k 256k 384k 512k 640k 768k 896k 1M A A 128128 256256 5
21、12 512 A AB B6464 256256 512512 A AB B6464 C C 128128 512512 128128B B6464 C C 128128 512512 128128B BD D C C 128128 512512 1281286464D D C C 128128 512512 256256 C C 128128 512512 10241024282.Linux2.Linux伙伴系统伙伴系统1) 1) 以以pagepage结构为数组元素的结构为数组元素的mem_mapmem_map 数数组组2) 2) 以以free_area_structfree_area_st
22、ruct结构为数组元素的结构为数组元素的free_areafree_area数组数组3) 3) 位图数组位图数组(bitmap) (bitmap) 293.Linux3.Linux基于伙伴的基于伙伴的slabslab分配器分配器(1)(1) 为什么要使用为什么要使用slabslab分配器分配器? ?0缓冲机制,能够提高效率缓冲机制,能够提高效率 slabslab的结构的结构0见下页图见下页图 slabslab的操作的操作0kmemkmem-cache-create()-cache-create()0kmem-cache-alockmem-cache-aloc() () 与与kmemkmem-c
23、ache-free()-cache-free()0kmemkmem-cache-grow() -cache-grow() 与与kmemkmem-cache-reap()-cache-reap()0kmalloc()kfreekmalloc()kfree()()0kmem-getpageskmem-getpages() () 与与kmem-frepageskmem-frepages()()30LinuxLinux基于伙伴的基于伙伴的slabslab分配器分配器(2)(2)slabslab分配器组成分配器组成cachecacheslabslabslabslabslabslabslabslabsla
24、bslabslabslabslabslabcachecachecachecacheslabslabslabslab满满slabslab半满半满slabslab空空slabslab存存pcbpcb存存inodeinode存存vmavma314.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.移动技术移动技术32有关移动问题讨论
25、有关移动问题讨论 移动条件移动条件0在可变分区算法中,随着进程不断的装入和撤销,导致在可变分区算法中,随着进程不断的装入和撤销,导致主存中常常出现分散的小空闲区,称为主存中常常出现分散的小空闲区,称为碎片碎片。0当在未分配区中找不到足够大的空闲区来装入新进程时当在未分配区中找不到足够大的空闲区来装入新进程时,可采用移动技术,将分散的空闲空闲区汇集成片。,可采用移动技术,将分散的空闲空闲区汇集成片。 移动时机移动时机0进程撤销之后释放分区时,如果它不与空闲区邻接,立进程撤销之后释放分区时,如果它不与空闲区邻接,立即实施移动。即实施移动。0进程装入分区时,如果它不与空闲区邻接,立即实施引进程装入分
展开阅读全文