资源描述:
《第4章存储管理(1)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第四章存储器管理存储器是计算机系统的重要资源,虽然存储器的容量迅速增加,但软件的需求也同样在急剧膨胀,存储器仍然是紧俏资源。存储器管理是操作系统的最重要部分。4.1概述4.1.1存储体系Cache主存磁盘存储器的层次结构:高速缓存Cache:数百K字节、非常快速、昂贵、易变的内存RAM:数M到数M字节、中等速度、中等价格、易变的磁盘:数M到数百G字节、低速、价廉、断电仍保存存储管理的内容1.内存空间的管理、分配与回收记录内存的使用情况(内存分配回收的依据)设置相应的内存分配表内存空间划分:等长或不等长确定分配算法,实施内存分配回收内存分配回收方式:静态分配与动态分配2.存储共享内存共享:两个或
2、多个进程共用内存中相同区域目的:节省内存空间,提高内存利用率实现进程通信(数据共享)共享内容:代码共享,要求代码为纯代码数据共享3.存储保护与安全为多个程序共享内存提供保障,使在内存中的各道程序,只能访问它自己的区域,避免各道程序间相互干拢,特别是当一道程序发生错误时,不致于影响其他程序的运行。通常由硬件完成保护功能,由软件辅助实现。(特权指令不能完成存储保护)保护范围保护系统程序区不被用户侵犯(有意或无意的)不允许用户程序读写不属于自己地址空间的数据(系统区地址空间,其他用户程序的地址空间)保护方法—防止地址越界每个进程都有自己的地址空间,应防止发生地址越界;当程序要访问某个内存单元时,由硬
3、件检查是否越界,如未越界则执行,否则产生地址越界中断。硬件提供一对寄存器:(上界寄存器/下界寄存器)4.内存“扩充”通过虚拟存储技术实现用户在编制程序时,不应该受内存容量限制,所以要采用一定技术来"扩充"内存的容量,使用户得到比实际内存容量大的多的内存空间。具体实现是在硬件支持下,软硬件相互协作,将内存和外存结合起来统一使用。通过这种方法把内存扩充,使用户在编制程序时不受内存限制。用户程序的多级处理过程源程序编译程序或汇编程序目标模块链接程序装入模块装入程序装入阶段编译阶段内存中可执行代码程序的链接静态链接:装入前进行链接装入时动态链接:对编译形成的一组模块边装入、边链接运行时动态链接:边运行
4、、边链接程序的装入绝对装入方式:编译程序产生绝对地址的目标代码可重定位装入方式:目标模块的起始地址从0开始。根据内存的当前情况,将装入模块装入到内存适当的位置。动态运行时装入:在装入模块装入内存后,并不立即把装入模块中的相对地址转换为绝对地址,而是把这种转换推迟到程序真正要执行时才进行。几个术语(1)逻辑地址(相对地址,虚地址)用户的程序经过汇编或编译后形成目标代码,目标代码通常采用相对地址的形式,其首地址为0,其余指令中的地址都相对于首地址而编址。不能用逻辑地址直接在内存中读取信息。(2)物理地址(绝对地址,实地址)内存中存储单元的地址,可直接寻址。(3)地址映射为了保证CPU执行指令时可正
5、确访问存储单元,需将用户程序中的逻辑地址,转换为运行时由机器直接寻址的物理地址,这一过程称为地址映射。地址映射(地址重定位,地址变换)逻辑地址地址映射物理地址(相对地址,虚地址)(绝对地址,实地址)地址映射BA=1000....LoadA200…3456…1100物理地址空间…LoadAd1……d13456…源程序…LoadA200……3456…000100200编译连接逻辑地址空间120003456......LoadA200......0100200300.........LoadA2003456逻辑地址空间110012001300物理地址空间200VR╋1000BR地址映射的原因当程序装
6、入内存时,操作系统要为该程序分配一个合适的内存空间,由于程序的逻辑地址与分配到内存物理地址不一致,而CPU执行指令时,是按物理地址进行的,所以要进行地址转换。静态重定位当用户程序被装入内存时,一次性实现逻辑地址到物理地址的转换,以后不再转换(一般在装入内存时由软件完成)。动态重定位在程序运行过程中要访问数据时再进行地址变换(在逐条指令执行时完成地址映射;为了提高效率,此工作一般由硬件地址映射机制来完成;硬件支持,软硬件结合完成),硬件上需要一对寄存器的支持。4.2各种存储管理方案单一用户(连续区)存储管理:单用户系统在一段时间内,只有一个进程在内存,故内存分配管理十分简单,内存利用率低。内存分
7、为两个区域,一个供操作系统使用,一个供用户使用。用户程序RAM中的操作系统0xFFF0RAM中的操作系统用户程序0ROM中的设备驱动程序用户程序RAM中的操作系统04.2.1分区存储管理方案系统把内存用户区划分为若干分区,分区大小可以相等,也可以不等。一个进程占据一个分区。固定分区:预先把可分配的主存储器空间分割成若干个连续区域,称为一个分区;每个分区的大小可以相同也可以不同,但固定不变,每个分区