欢迎来到天天文库
浏览记录
ID:22839442
大小:2.22 MB
页数:170页
时间:2018-10-22
《操作系统原理课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第二章存储管理2.1存储管理基础2.2基本存储管理方法2.3可变分区存储管理方法2.4内存扩充技术2.5纯分页的存储管理2.6请求分页系统2.7段式存储管理2.8段页式存储管理2.9Linux存储管理1存储器可分为:内存储器和外存储器;内存储器:可以被CPU直接访问。外存储器:不可以被CPU直接访问,外存与CPU之间只能够在输入输出控制系统的管理下,进行信息交换。22.1存储管理基础2.1.1虚拟地址与物理地址3内存储器是由一个个存储单元组成,一个存储单元可存放若干个二进制的位(bit),8个二进制位被称为一个字节(Byte)。内存中的存储单元按一定顺序进行编号,每个单元所对应的
2、编号,称为该单元的单元地址。物理地址(绝对地址,实地址):内存中存储单元的地址。物理地址可直接寻址。逻辑地址(相对地址,虚地址):用户的程序经过汇编或编译后形成目标代码,目标代码通常采用相对地址的形式。其首地址为0,其余指令中的地址都相对于首地址来编址。不能用逻辑地址在内存中读取信息。45地址重定位地址重定位(地址映射):将用户程序中的逻辑地址转换为运行时由机器直接寻址的物理地址。当程序装入内存时,操作系统要为该程序分配一个合适的内存空间,由于程序的逻辑地址与分配到内存物理地址不一致,而CPU执行指令时,是按物理地址进行的,所以要进行地址转换。62.1.2地址定位方式1.固定定位
3、方式由程序员在编写程序时或由编译连接程序对源程序进行编译连接时,直接指定程序在执行时访问的实际存储器地址的方式称为固定定位方式。此种定位方式一般只适合于单板机或单用户系统。在多道程序环境下,应保证各个作业的地址互不重叠,这就比较困难了。782.静态重定位方式源程序经编译和连接后生成目标代码中的地址是以0为起始地址的相对地址。当需要执行时,由装入程序运行重定位程序模块,根据作业在本次分配到的内存起始地址,将可执行目标代码装到指定内存地址中,并修改所有有关地址部分的值。修改的方式是对每一个逻辑地址的值加上内存区首地址(或称基地址)值。910静态重定位的特点(1)静态重定位是在程序运行
4、之前完成地址重定位工作的;(2)静态重定位由软件实现,无须硬件提供支持;(3)实行静态重定位时,地址重定位工作是在程序装入时被一次集中完成的;(4)绝对地址空间里的目标程序与原相对地址空间里的目标程序面目已不相同,因为前者进行了地址调整;(5)实施静态重定位后,若用户程序在内存中做了移动,那么程序指令中的地址就不再反映所在的存储位置了,除非重新进行地址重定位。113.动态重定位方式采用动态重定位方式,将程序在装入内存时,不必修改程序的逻辑地址值,程序执行期间在访问内存之前,再实时地将逻辑地址变换成物理地址。动态重定位要靠硬件地址变换机构实现。①当程序开始执行时,系统将程序在内存的
5、起始地址送入地址变换机构中的基地址寄存器BR中。②在执行指令时,若涉及到逻辑地址,则先将该地址送入虚拟地址寄存器VR,再将BR和VR中的值相加后送入地址寄存器MR,并按MR中的值访问内存。(MR)=(BR)+(VR)12132.2基本存储管理方法2.2.1单一连续分区存储管理基本思想:内存分为两个区域:系统区,用户区。应用程序装入到用户区,可使用用户区全部空间。最简单,适用于单用户、单任务的OS;单用户系统在一段时间内,只有一个进程在内存。14特点(1)系统总是把整个用户区分配给一个用户使用。(2)实际上,内存用户区又被分为“使用区”和“空闲区”两部分。在操作系统中,把分配给用
6、户、但又未使用的区域称为“内部碎片”。(3)由于任何时刻内存的用户区中只有一个作业运行,因此这种系统只使用于单用户的情况。(4)进入内存的作业,独享系统中的所有资源,包括内存中的整个用户区。15特点(5)由于整个用户区都分配给了一个用户使用,因此作业进入用户区后,没有移动的必要。采用这种存储分配策略时,将对用户程序实行静态重定位。(6)实行静态重定位,并不能阻止用户有意无意地通过不恰当地指令闯入操作系统所占用的存储区域,如何阻止对操作系统的侵扰,就是所谓的“存储保护”问题。用于存储保护的专用寄存器-“界限寄存器”16存储保护过程:在用户态下,对内存的每一次访问,都要在硬件的控制
7、下,与界限寄存器中的内容进行比较。一旦发现该访问的地址小于界限寄存器中的地址,就会产生“地址越界”中断,阻止这次访问的进行。优点:易于管理,便于用户的了解和使用。缺点:由于每次只能有一个作业进入内存,故它不适用于多道程序设计,整个系统的工作效率不高,资源利用率底下。只要作业比用户区小,那么在用户区里就会形成碎片,造成内存储器资源的浪费。若用户作业的相对地址空间比用户区大,那么该作业就无法运行。172.2.2固定分区存储管理把内存区固定地划分为若干个大小相等(和不等)的连续分区。每
此文档下载收益归作者所有