操作系统三版课件3.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)
《操作系统三版课件3.ppt》由会员分享,可在线阅读,更多相关《操作系统三版课件3.ppt(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、操作系统三版课件3 3.1 存储管理综述3.1.1存储器的层次结构 目前,计算机采用的都是以存储器为中心的体系结构。存储器负责存放整个系统的程序与数据,是重要的系统资源。.磁带磁盘主存储器高速缓存寄存器快慢存取速度小大容量昂贵便宜价格.在考虑计算机存储器的设计时,必须顾及“价格”、“容量”、“访问时间”这三个重要特性。各种实现技术间往往有以下的关系:存取时间越快,每“位”的价格就越高;容量越大,每“位”的价格就越低;容量越大,存取速度就越慢。.只能在“价格”、“容量”、“访问时间”三者间寻求折中,采用存储器的层次结构。这时,从上往下就有:每“位”的价格递减;存储容量递增;存取时间递增。.这种层
2、次结构中,容量较大、价格便宜的慢速存储器(如磁盘),可作为容量较小、价格较贵的快速存储器的后备。这正是存储管理中虚拟存储技术的实现基础。这种层次结构中,CPU可直接到寄存器、高速缓冲存储器、内存储器这三层上访问数据,不能直接到磁盘和磁带上访问数据,那里的数据只有转移到内存储器后,才能接受CPU的处理。.要求编程人员熟悉内存使用情况,程序设计时要极小心地对待指令中的地址,不能够出现任何差错,否则后果不堪设想;3.2.2 地址定位方式和静态重定位1.绝对定位方式绝对定位方式 即在程序装入内存之前,程序指令中的地址就已经是绝对地址,已经正确地反映了它将要进入的存储区位置。.优点:程序中的逻辑地址与实
3、际内存中的物理地址完全相同。因此在程序执行前不需对程序指令中的地址再进行任何调整和修改,装入到指定内存位置就可运行。.不适用于多道程序设计环境。缺点:(1)(2)(3)(4)程序进入内存后,不能做任何移动,只能固定在这个存储区内;对程序做任何微小修改,都可能会牵扯到程序整体的变动,费工耗时;2.静态重定位方式静态重定位方式.在多道程序设计环境下,用户事先无法、也不愿意知道自己的程序会被装入到内存的什么位置,他们只是向系统提供相对于“0”编址的程序。.操作系统要有一个“重定位装入程序”,功能是:一根据当前内存使用情况,为欲装入的二进制目标程序分配所需的存储区;二根据所分配的存储区,对程序中的指令
4、地址进行重新计算和修改;三将重定位后的二进制目标程序装入到指定的存储区中。静态重定位由软件(重定位装入程序)实现,无须硬件提供支持;静态重定位的特点静态重定位是在程序运行之前完成地址重定位工作的;地址重定位的工作是在程序装入时被一次集中完成的;物理地址空间里的目标程序与原逻辑地址空间里的目标程序面目已不相同,前者是后者进行地址调整后的结果;实施静态重定位后,位于物理地址空间里的用户程序不能在内存中移动,除非再重新进行地址定位;.采用这种重定位方式,用户向装入程序提供相对于“0”编址的二进制目标程序,无需关注程序具体的装入位置。通过重定位装入程序的加工,目标程序进入分配给它的物理地址空间,程序指
5、令中的地址也都被修改为正确反映该空间的情形。因为这种地址重定位是在程序执行前完成的,因此称为地址的“静态重定位”。.(1)(2)(3)(4)(5)(6)适用于多道程序设计环境。3.动态重定位方式动态重定位方式 对用户程序实行地址的静态重定位后,定位后的程序就被“钉死”在了它的物理地址空间里,不能做任何移动。.将地址定位的时间推迟到程序执行时再进行,这就是地址“动态重定位”方式。在对程序实行动态重定位时需要硬件的支持。为阻止用户程序指令中的地址闯入操作系统所占用的区域,在CPU里设置一个用于存储保护的专用寄存器:“界限寄存器”。.内存用户区又被分为“使用区”和“空闲区”两部分,分配给了用户、但又
6、未使用的区域称为“内部碎片”。内部碎片的存在是对内存资源的一种浪费。3.2.3单一连续分区存储管理1.2.单一连续分区存储管理的基本思想单一连续区存储管理的特点 总体上把内存储器分为两个分区:一个分区固定分配给操作系统使用;另一个分配给用户使用,称为“用户区”。.作业3作业2作业1操作系统用户区内存0ab操作系统使用区内存0ab空闲区用户区c操作系统使用区内存0ab空闲区ca界限寄存器系统总是把整个用户区分配给一个用户使用。这种系统只适用于单用户(或单道)的情况。进入内存作业独享系统中的所有资源,包括内存的整个用户区。采用这种存储分配策略时,将对用户程序实行静态重定位。.作业比用户区小时,就会
7、形成碎片,造成内存储器资源的浪费。3.单一连续分区管理的缺点单一连续分区管理的缺点.4.覆盖技术覆盖技术 每次只能一个作业进入内存,故不适宜多道程序设计,系统的工作效率不高,资源利用率低下。若用户作业的相对地址空间比用户区大,该作业就无法运行。“覆盖”是早期为程序设计人员提供的扩充内存的技术,中心思想是允许作业的若干个程序段使用同一个存储区域,共用的存储区被称为“覆盖区”。MAIN(10KB)A(50KB)B(30KB)C(30KB)D(20KB)E(40KB)MAIN(10KB)A(50KB)B(30KB)C(30KB)D(20KB)E(40KB)0180KB连接装配10KB50KB40KB
8、内存MAINA或BC或D或E5.对换技术作业1作业2作业3辅助存储器内存储器操作系统用户区换出换入 基本思想:将作业都存放在辅存。每次只让其中的一个进入内存投入运行。当运行中提出输入输出请求或分配给的时间片用完时,就把这个程序从内存“换出”到辅存,把辅存里的另一个作业“换入”运行,产生出“多道”的效果。3.2.4固定分区存储管理固定分区存储管理1.基本思想基本思想 所谓“固定分区”存储管理,是指预先把内存的用户区划分成若干个连续的分区,它们的尺寸可以相同,也可以不同。划分后,内存中分区的个数以及每个分区的尺寸保持不变。每个分区里只允许装入一个作业运行。2.对作业的组织对作业的组织操作系统第1分
9、区(8KB)第2分区(32KB)第3分区(64KB)第4分区(132KB)0256KB20KBABCDEF操作系统第1分区(8KB)第2分区(32KB)第3分区(64KB)第4分区(132KB)0256KB20KBABCDEF.每个分区设置一个后备作业队列.多个分区只设置一个后备作业队列 一个作业到达时,总是进入到“能容纳该作业的最小分区”的那个后备作业队列里去排队。当某个分区空闲时,统一都到这一个队列里去挑选作业,装入运行。作业尺寸比任何一个分区的长度都大时,就无法运行。.3.分区的分配与释放分区的分配与释放.分区空闲时,若它的队列非空,就把该分区分配给队列的第一个作业使用;作业运行完毕,收
10、回该分区,进行下一次分配。每个分区设置一个后备作业队列 多个分区只设置一个后备作业队列 在任何一个分区释放时,就根据分配方案从该队列里挑选一个作业装入运行。4.地址重定位与存储保护地址重定位与存储保护在固定分区存储管理中,实行静态重定位。.在固定分区存储管理中,要防止用户程序对操作系统的侵扰,也要防止用户程序间的侵扰。因此设置一对专用寄存器:“低界限寄存器”和“高界限寄存器”,用于存储保护。地址重定位存储保护0abcdab作业1作业2作业3第1分区第2分区第3分区操作系统低界限寄存器高界限寄存器CPU5.固定分区存储管理的特点与缺点固定分区存储管理的特点与缺点.是最简单的、具有“多道”色彩的存
11、储管理方案。.作业程序一次性全部装入分配给它的连续分区。.实行的是静态重定位。.会产生内部碎片,引起内存资源的浪费。外部碎片:存储管理中,把那些无法分配出去满足作业存储请求的空闲区称为“外部碎片”。3.3.1可变分区存储管理的基本思想可变分区存储管理的基本思想3.3可变分区存储管理1.基本思想基本思想2.内、外部碎片内、外部碎片 在作业要求装入内存时,若当时内存中有足够的存储空间满足该作业的需求,那就划分出一个与作业相对地址空间同样大小的分区分配给它使用。操作系统空闲区作业A(15KB)作业B(20KB)作业C(10KB)内存操作系统空闲区作业A(15KB)作业B(20KB)内存操作系统空闲区
12、作业A(15KB)内存操作系统空闲区作业A(15KB)内存作业B(20KB)作业C(10KB).内部碎片:存储管理中,把分配给了用户而用户未用的存储区称为“内部碎片”。3.实施可变分区存储管理要解决的三个问题实施可变分区存储管理要解决的三个问题.采用地址动态重定位技术,使程序能在内存中移动,为空闲区合并提供保证;.记住各分区的使用情况,当一个分区被释放时,要能判定它的前、后分区是否为空闲区。若是空闲区,就进行合并,形成一个大的空闲区。.给出分区分配算法,在有多个空闲区都满足作业的存储请求时,决定分配哪一个。.静态重定位是在程序运行之前完成地址转换的;动态重定位却是将地址转换的时刻推迟到指令执行
13、时进行。实行静态重定位,原来的指令地址部分被修改了;实行动态重定位,只是按照所形成的地址去执行这条指令,并不对指令本身做任何修改。静态重定位是在装入时一次集中地把程序指令中所有要转换的地址全部加以转换;而动态重定位则是每执行一条指令时,对其地址加以转换。静态重定位是由软件完成地址转换工作的;动态重定位则由一套硬件提供的地址转换机构来完成。1.基本思想基本思想2.静态和动态重定位的比较静态和动态重定位的比较3.3.2地址的动态重定位 把相对地址空间中的用户作业程序“原封不动”地装入到分配给它的绝对地址空间中去。执行某条指令时,才根据当前程序所在区域,对指令中的地址进行重定位。即指令中地址的转换是
14、在程序执行时动态完成的,故称为地址的“动态重定位”。0用户作业A的相对地址空间XXXXXX1001KB2KB3000call1003KB0XXXXXX22KB+10023KB24KB22KB+3000call10025KB20KB22KB22KB定位寄存器2262822528操作系统内存.一是调度到某作业时,若系统的每个空闲区尺寸都小于它的需要,但空闲区总存储量大于它的存储请求,于是进行空闲区合并,得到一个大的空闲区,满足该作业的需要;一是只要有作业运行完归还所占用的存储区,系统就进行空闲区的合并。释放区的前、后邻接分区都是空闲区。因此,释放区应该和前、后两个邻接的空闲区合并成一个新的空闲区。
15、释放区的前邻接分区是已分配区,后邻接分区是空闲区。因此,释放分区应该和后邻接的空闲区合并成一个新的空闲区。释放分区的前邻接分区是空闲区,后邻接分区是已分配区。释放区应该和前邻接的空闲区合并成一个新的空闲区。释放分区的前、后邻接分区都是已分配区,没有合并的问题存在。3.3.3空闲区的合并1.前后相邻接分区的四种关系前后相邻接分区的四种关系2.空闲分区合并的时机空闲分区合并的时机已分配区空闲区释放分区空闲区已分配区释放分区空闲区空闲区释放分区已分配区已分配区释放分区.若有作业运行结束,则根据作业名到已分配表里找到它的表目项,将该项的“状态”改为“空”,随之在空闲区表里寻找一个状态为“空”的表目项,
16、把释放分区的信息填入,并将表目项状态改为“空闲”。作业提出存储需求时,查空闲区表里状态为“空闲”的表目项。若该项的尺寸能满足所求,就将它一分为二:分配出去的那部分在已分配表里找一个状态为“空”的表目项进行登记,剩下的部分仍在空闲区表里占据一个表目项。3.3.4 分区的管理与组织方式1.表格法表格法 设置两张表:“已分配表”和“空闲区表”。其中“序号”是表目项的顺序号,“起始地址”、“尺寸”、“状态”都是该分区的相应属性。由于系统中分区的数目是变化的,因此每张表格中的表目项数要足够的多,暂时不用的表目项的状态被设为“空”。内存操作系统空闲区(8KB)作业B(32KB)空闲区(32KB)作业D(1
17、20KB)空闲区(300KB)序号起始地址尺寸状态12345020KB28KB60KB92KB212KB512KB28KB32KB作业B空空空92KB120KB作业D序号起始地址尺寸状态1234560KB32KB作业B空闲空空作业D20KB8KB212KB300KB已分配表空闲区表.把内存中每个空闲分区视为一个整体,在它里面开辟出两个单元,一个存放该分区的长度(size),一个存放它下一个空闲分区的起址(next),操作系统开辟一个单元,存放第1个空闲分区的起址,这个单元称为“链首指针”。最后一个空闲分区的next里存放标志“NULL”。这样一来,系统里所有空闲分区被next连接成一个链表。从
18、链首指针出发,顺着各个空闲分区的next往下走,就能到达每一个空闲分区。20KB8KB60KB2.单链表法单链表法.sizenext空闲区长度下一个空闲区起址空闲区8KB212KB32KBNULL300KB20KB60KB空闲区(8KB)32KB212KB空闲区(32KB)300KBNULL空闲区(300KB)作业B(32KB)作业D(120KB)020KB28KB60KB92KB212KB512KB内存操作系统链首指针链首指针.基本思想对提出的任何一个存储请求,从空闲区链表首指针开始查看一个个空闲区。若有满足要求的,按尺寸分配,调整next指针;若到达NULL未见满足要求,则分配失败。存储分
19、配.存储释放作业完成任务后,将占用的存储区释放,链入空闲区链表(要调整指针和空闲区合并)。在每个空闲分区里,即存放下一个空闲区起址next,也存放它的上一个空闲区起址(prior)的信息。这样,通过双向链表,就可以方便地由next找到一个空闲区的下一个空闲区,也可以由prior找到一个空闲区的上一个空闲区。空闲区(300KB)sizenext.3.双链表法双链表法基本思想20KB空闲区长度下一个空闲区起址空闲区300KBNULL作业B(32KB)作业D(120KB)020KB28KB60KB92KB212KB512KB内存操作系统链首指针prior上一个空闲区起址空闲区(32KB)32KB21
20、2KB60KB20KB空闲区(8KB)8KB60KBNULL.存储合并把释放区链入空闲区双向链表时,若通过它的prior发现该释放区的前面一个空闲区的起址加上长度,等于释放区的起址,那么说明它前面的空闲区与它直接邻接,应该把这个释放区与原先的空闲区合并。若释放区起址加上长度正好等于next所指的下一个空闲区的起址,那么说明它与后面的空闲区直接邻接,应该把这个释放区与原先的空闲区合并。.空闲区的两种组织形式 若将每个空闲分区按其起址由小到大排列在链表里,则把这种组织称为“地址法地址法”;若按每个空闲分区的长度由小到大排列在链表里,则把这种组织称为“尺寸法尺寸法”。最先适应算法:总是把最先找到的、
21、满足存储需求的那个空闲分区作为分配的对象。3.3.5 空闲分区的分配算法1.三种分配算法三种分配算法2.可变分区存储管理的特点可变分区存储管理的特点 最佳适应算法:总是从当前所有空闲区中找出一个能够满足存储需求的、最小的空闲分区作为分配的对象。最坏适应算法:总是从当前所有空闲区中找出一个能够满足存储需求的、最大的空闲分区作为分配的对象。.3.可变分区存储管理的缺点可变分区存储管理的缺点.作业一次性地全部装入到一个连续的存储分区中。.分区是按照作业对存储的需求划分的,因此不会出现内部碎片这样的存储浪费。.为确保作业能够在内存中移动,要由硬件支持实行指令地址的动态重定位。.只要作业的存储需求大于系
22、统提供的整个用户区,该作业就无法投入运行。.有可能出现极小的分区暂时分配不出去的情形,产生外部碎片。由于是通过移动程序来达到分区合并的目的,势必增加系统在这方面的投入与开销。B请求240KB:3.3.6 伙伴系统.伙伴系统是基于固定分区和可变分区提出的一种折中存储管理方案。.在伙伴系统中,可用内存分区的大小为2K,LKU,其中:2L表示分配的最小分区的尺寸;2U表示分配的最大分区的尺寸。C(64KB)64KBA(128KB)128KBB(256KB)512KBA(128KB)B(256KB)512KBA(128KB)128KB256KB512KB1MBC(64KB)64KBA(128KB)B(
23、256KB)D(256KB)C(64KB)64KBA(128KB)256KBD(256KB)256KB256KBC(64KB)64KB128KB256KBD(256KB)256KBC(64KB)64KBE(128KB)256KBD(256KB)256KBE(128KB)128KB256KBD(256KB)256KB512KBD(256KB)256KB1MB1MB初启:A请求100KB:C请求64KB:D请求256KB:B释放256KB:A释放128KB:E请求128KB:C释放64KB:E释放128KB:D释放256KB:有一个1MB内存,采用伙伴系统管理存储空间的分配和回收。例:例:用户作业
24、仍然相对于“0”进行编址,形成一个连续的相对地址空间。操作系统按照内存块的尺寸对该空间进行划分,每一个分区被称为“页”,编号从0开始。用户作业相对地用户作业相对地址空间的划分址空间的划分把整个内存储器划分成大小相等的许多分区,每个分区称为“块”。比如把内存储器划分成n个分区,编号为0,1,2,n-1。块是存储分配的单位。3.4分页式存储管理3.4.1分页式存储管理的基本思想操作系统内存储器作业A(第2页)作业A(第0页)作业A(第1页)020KB24KB28KB32KB36KB40KB44KB48KB256KB(04块)第5块第6块第7块第8块第9块第10块第11块04KB8KB11KB12K
25、B第0页第1页第2页10921008(1,1092)(2,1008)51889200用户作业A的相对地址空间1.内存的划分内存的划分2.3.相对地址的映射相对地址的映射用户相对地址空间中的每一个相对地址,都可以用数对“页号,页内位移”来表示。用数对里的“页号”2去查作业A的页、块对应关系表。把内存第7块的起始地址与页内位移相加,就得到了相对地址3000现在的绝对地址,即7K+952=8120。记录作业A的页、块对应关系4.分页式存储管理的地址重定位分页式存储管理的地址重定位用户作业A的相对地址空间XXXXXXcall300001001KB2KB30003KB952第0页第1页第2页内存储器操作
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内