西安交通大学操作系统原理课件第八章.ppt
《西安交通大学操作系统原理课件第八章.ppt》由会员分享,可在线阅读,更多相关《西安交通大学操作系统原理课件第八章.ppt(122页珍藏版)》请在三一办公上搜索。
1、Chapter8 Memory Management,Background(背景)Contiguous Allocation(连续分配)Paging(分页)Segmentation(分段)Segmentation with Paging(段页式)Examples,存储层次结构,8.1 Background,计算机存储系统的设计主要考虑三个问题:容量、速度和成本。,8.1 Background,Program must be brought into memory and placed within a process for it to be executed.(程序要得以运行:必须创建一个进
2、程,并且送入内存)User programs go through several steps before being executed. (用户程序在执行之前必需经历很多步骤),程序的装入和链接,源程序,编译,目标模块,库,.,链接程序,装入模块,装入程序,内存,Multistep Processing of a User Program,Logical vs. Physical Address Space,Address Space地址空间:一个目标程序所限定的地址范围地址空间是逻辑地址的集合Logical/Virtual address:An address viewed by the
3、 user processThe abstraction provided by the OS存储空间是物理地址的集合Physical addressAn address viewed by the physical memory,地址重定位,将程序装入到与其地址空间不一致的物理空间,所引起的一系列地址变换过程。静态地址重定位在装入一个作业时,把作业中的指令地址全部转换为绝对地址,在作业执行过程中就无须再进行地址转换工作。动态地址重定位在程序执行过程中,在CPU访问内存之前,将要访问的程序或数据地址转换成内存地址. 动态重定位依靠硬件地址变换机构完成。,Dynamic Address Tran
4、slation,UserProcess,Translator(MMU),Physicalmemory,Virtualaddress,Physicaladdress,Binding of Instructions and Data to Memory,Address binding of instructions and data to memory addresses can happen at three different stages.(指令和数据绑定到内存地址可以在3个不同的阶段发生。),Compile time(编译时期): If memory location known a pr
5、iori, absolute code can be generated; must recompile code if starting location changes.(如果内存位置已知,可生成绝对代码;如果开始位置改变,需要重新编译代码),Load time(装入时期): Must generate relocatable code if memory location is not known at compile time.(如果存储位置在编译时不知道,则必须生成可重定位代码),Execution time(执行时期): Binding delayed until run time
6、 if the process can be moved during its execution from one memory segment to another. Need hardware support for address maps (e.g., base and limit registers). (如果进程在执行时可以在内存中移动,则地址绑定要延迟到运行时。需要硬件对地址映射的支持,例如基址和限长寄存器),Memory-Management Unit (MMU),Hardware device that maps virtual to physical address.(实
7、现虚拟地址映射到物理地址的硬件)In MMU scheme, the value in the relocation register is added to every address generated by a user process at the time it is sent to memory.(在MMU策略中,当用户进程被装入内存时,基址寄存器中的值被加入到用户进程所产生的每个地址中。),Memory-Management Unit (MMU),内外存间的数据交换,overlay覆盖由用户程序控制要求用户清楚地了解程序的结构,并指定各程序段调入内存的先后次序,它是一种早期的主存
8、扩充的方式swapping交换由操作系统控制利用外存空间(进程交换区),通过对进程实体的整体交换,来满足用户进程的内存需要。它的主要特点是打破了进程运行的驻留性,overlay,主程序(30K),Swapping,A process can be swapped temporarily out of memory to a backing store, and then brought back into memory for continued executionMajor part of swap time is transfer time; total transfer time is
9、directly proportional to the amount of memory swappedModified versions of swapping are found on many systems (i.e., UNIX, Linux, and Windows),Swapping,操作系统,B,C,D,操作系统,D,C,操作系统,A,D,C,Schematic View of Swapping,常用的内存信息保护方法有:1 上下界地址寄存器2 存储键,内存保护,界地址寄存器,界地址寄存器是广泛使用的一种存储保护技术,机制简单,易于实现实现方法:在CPU中设置一对下限寄存器和
10、上限寄存器存放用户作业在主存中的下限和上限地址也可将一个寄存器作为基址寄存器,另一寄存器作为限长寄存器(指示存储区长度)每当CPU要访问主存,硬件自动将被访问的主存地址与界限寄存器的内容进行比较,以判断是否越界如果未越界,则按此地址访问主存,否则将产生程序中断越界中断(存储保护中断),Base and Bounds,Process has illusion of running on its own dedicated machine with memory 0, bound),Physical memory,0,base,base + bound,physical memory size,v
11、irtual memory,0,bound,存储键,每个存储块有一个由二进制位组成的存储保护键一用户作业被允许进入主存,OS分给它一个唯一的存储键号,并将分配给该作业各存储块的存储键也置成同样键号当OS挑选该作业运行时,OS将它的存储键号放入程序状态字PSW存储键(“钥匙”)域中每当CPU访问主存时,都将该主存块的存储键与PSW中的“钥匙”进行比较如果相匹配,则允许访问,否则,拒绝并报警,8.2 存储器管理方式,连续分配方式:为一个程序分配一段连续的内存空间,主要有:单一连续区管理方式;多分区管理方式,是一种可用于多道程序的较简单的存储管理方式,又分为:固定分区方式可变分区方式,8.2 存储器
12、管理方式,离散分配方式:减少连续分配所产生的碎片,提高内存的利用率,将一个用户程序离散地分配到内存中的多个不相连接的区域中分页存储管理方式分段存储管理方式段页式存储管理方式,虚拟存储管理方式:满足用户对大容量内存的需要,提高内存利用率。请求分页管理方式 请求分段管理方式请求段页式管理方式,8.2 存储器管理方式,8.2.1Contiguous Allocation,Main memory usually divided into two partitions:(主存通常被分为两部分)Resident operating system, usually held in low memory wi
13、th interrupt vector.(为操作系统保留的部分,通常与中断矢量保存在内存低端。)User processes then held in high memory.(用户进程保存在内存高端),8.2.1 Contiguous Allocation,Single-partition allocation单一分区分配Multiple-partition allocation多分区分配Fixed Partitioning固定分区Dynamic Partitioning可变分区/动态分区Dynamic Relocationable Partitioning动态可重定位分区,Single-p
14、artition allocation(单一分区分配),内存分成两部分:OS区用户区用户区只能容纳一道作业,存储保护:Relocation-register scheme used to protect user processes from each other, and from changing operating-system code and data. (基址寄存器策略用来保护用户进程(同操作系统代码和数据分开。)Relocation register contains value of smallest physical address; limit register conta
15、ins range of logical addresses each logical address must be less than the limit register. (基址寄存器包含最小物理地址的值;限长寄存器包含逻辑地址的范围,每个逻辑地址必须小于限长寄存器的值。),Single-partition allocation(单一分区分配),Hardware Support for Relocation and Limit Registers,Fixed Partitioning,固定分区是在作业装入之前,内存就被划分成若干个固定大小的连续分区。划分工作可以由系统管理员完成,也可以
16、由操作系统实现。一旦划分完成,在系统运行期间不再重新划分,即分区的个数不可变,分区的大小不可变,又称为静态分区。,Fixed Partitioning,划分分区的方法如下:分区大小相等:只适用于多个大小相同程序的并发执行,缺乏灵活性。分区大小不等:多个小分区、适量的中等分区、少量的大分区。根据程序的大小,分配当前空闲的、适当大小的分区。,固定分区(大小相同),固定分区(多种大小),Fixed Partitioning,一般将内存的用户区域划分成大小不等的分区,可适应不同大小的作业需要。 系统有一张分区说明表,每个表目说明一个分区的大小、起始地址和是否已分配的使用标志,Fixed Partiti
17、oning,分区说明表,内存分配图,Fixed Partitioning,优点:易于实现,开销小。缺点:分区大小固定: 内碎片分区总数固定: 限制并发执行的进程数目,要求Xk大小分区,取分区说明表第一项,状态位置正在使用,取下一表项,无法分配,该分区空闲?,分区长度Xk?,表结束?,返回分区号,否,否,否,是,是,是,固定分区分配算法,Dynamic Storage-Allocation,Multiple-partition allocation(多分区分配)分区的划分是动态的,不是预先确定的When a process arrives, it is allocated memory from
18、 a hole large enough to accommodate it.(当一个进程到来的时候,它将从一个足够容纳它的分区中分配内存。),OS,process 5,process 8,process 2,OS,process 5,process 2,OS,process 5,process 2,OS,process 5,process 9,process 2,process 9,process 10,空闲分区的管理,空闲分区表,前向指针,后向指针,空闲分区链,可变分区分配算法,分区分配算法:寻找某个空闲分区,若大于要求,则将该分区分割成两个分区,其中一个分区为要求的大小并标记为“占用”,
19、而另一个分区为余下部分并标记为“空闲”。分区分配的先后次序通常是从内存低端到高端。分区释放算法:需要将相邻的空闲分区合并成一个空闲分区。(这时要解决的问题是:合并条件的判断),可变分区分配算法框图,Dynamic Storage-Allocation Problem,First-fit(首次适应): Allocate the first hole that is big enough.(分配最先找到的合适的分区。)Best-fit(最佳适应): Allocate the smallest hole that is big enough; must search entire list, unl
20、ess ordered by size. Produces the smallest leftover hole. (搜索整个序列,找到适合条件的最小的分区进行分配。)Worst-fit(最差适应): Allocate the largest hole; must also search entire list. Produces the largest leftover hole.(搜索整个序列,寻找最大的分区进行分配。),首次适应算法(First Fit),从空闲分区表的第一个表目开始查找,把找到的第一个满足要求的空闲区分配给作业,目的在于减少查找时间。通常将空闲分区表(空闲区链)中的空闲
21、分区按地址由低到高进行排序。特点:分配和释放的时间性能较好,较大的空闲分区可以被保留在内存高端。随着低端分区不断划分而产生较多小分区,每次分配时查找时间开销会增大。,从该空闲区中截取所需大小,修改调整分区表,从空闲分区表第一表目顺序查找,从分区表中移去该表目,调整分区表,取下一表项,无法分配,该 空闲区长度SIZE?,该 空闲区长度=SIZE?,表目查完?,返回分配起始地址,否,否,否,是,是,是,First-fit,循环首次适应算法(Next Fit),循环首次适应算法:是首次适应算法的变种。在分配内存空间时,不再每次从表头(链首)开始查找,而是从上次找到的空闲区的下一个空闲区开始查找(并采
22、用循环查找的方式),直到找到第一个能满足要求的空闲区为止,并从中划出一块与请求大小相等的内存空间分配给作业。特点:算法的分配和释放的时间性能较好,使空闲分区分布得更均匀较大的空闲分区不易保留,最佳适应算法(Best Fit),从全部空闲区中找出能满足作业要求的、且最小的空闲分区.能使碎片尽量小为提高查找效率,空闲分区表(空闲区链)中的空闲分区要按从小到大进行排序,自表头开始查找到第一个满足要求的自由分区分配特点:从个别来看,外碎片较小,但从整体来看,会形成较多无法利用的碎片。较大的空闲分区可以被保留。,动态分区分配算法举例,Lastallocatedblock (14K),分配前,分配后,8K
23、,8K,12K,12K,22K,18K,6K,6K,8K,8K,14K,14K,6K,2K,36K,20K,Best Fit,First Fit,例:需分配一个16KB分区,Next Fit,动态重定位分区分配,动态分区的碎片问题:在系统不断地分配和回收中,必定会出现一些不连续的小的空闲区,称为外碎片。虽然可能所有碎片的总和超过某一个作业的要求,但是由于不连续而无法分配。解决碎片的方法是拼接(或称紧凑),即向一个方向(例如向低地址端)移动已分配的作业,使那些零散的小空闲区在另一方向连成一片。分区的拼接技术,一方面要求能够对作业进行重定位,另一方面系统在拼接时要耗费较多的时间。,Fragment
24、ation,动态重定位分区分配,实现紧凑的技术必须获得硬件支持只有具有动态重定位硬件机构的计算机系统,才有可能采用动态重定位可变分区管理技术,系统的硬件包括重定位寄存器和加法器。,8.2.2 Paging,分页存储管理是解决存储碎片的一种方法。动态重定位是解决存储碎片问题的一种途径,但要移动大量信息从而浪费处理机时间,代价比较高,这是因为这种分配要求把作业必须安置在一连续存储区内的缘故,而分页存储管理正是要避开这种连续性要求。,8.2.2 Paging,Divide physical memory into fixed-sized blocks called frames (size is p
25、ower of 2, between 512 bytes and 8192 bytes).(物理内存分成大小固定的块,称为物理块或页框)Divide logical memory into blocks of same size called pages.(逻辑内存也分为固定大小的块,叫做页。)To run a program of size n pages, need to find n free frames and load program.(运行一个有N页大小的程序,需要找到N个空的页框装入程序。)Set up a page table to translate logical to
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 西安交通大学 操作系统 原理 课件 第八
链接地址:https://www.31ppt.com/p-1295737.html