1第4章存储管理重要内容存储器连续存储空间管理分页存储管理分段存储管理虚拟存储管理Intelx86分段和分页存储结构Linux虚拟存储管理Windows2003虚拟存储管理2存储管理的功能分配和去配请求和释放主存空间抽象和映射抽象成一维数组或二维地址空间地址转换隔离和共享隔离实现存储保护功能超越隔离机制,提高主存利用率存储扩充虚拟,允许进程虚拟地址空间大于主存空间34.1存储器4.1.1存储器的层次4.1.2地址转换与存储保护44.1.1存储器的层次寄存器高速缓存主存储器磁盘缓存固定磁盘可移动存储介质54.1.2地址转换与存储保护(1)链接动态重定位静态重定位…源程序模块1源程序模块1源程序模块2源程序模块2源程序模块n源程序模块n…目标代码1目标代码1目标代码2目标代码2目标代码n目标代码n可重定位目标代码(装载代码)(辅存)可重定位目标代码(装载代码)(辅存)编译装入执行程序名字空间逻辑地址空间物理地址空间可执行二进代码(主存)可执行二进代码(主存)库代码库代码可执行二进代码(主存)可执行二进代码(主存)程序的编译、链接、装入和执行6地址转换与存储保护(2)逻辑地址(虚地址):CPU所生成的地址物理地址(实地址):内存单元所看到的地址逻辑地址空间:由程序所生成的所有逻辑地址的集合物理地址空间:由逻辑地址所对应的所有物理地址的集合地址转换或重定位:把逻辑地址转换为物理地址7静态重定位地址转换工作在进程执行前一次完成;无须硬件支持,易于实现,但不允许程序在执行过程中移动位置。早期单用户单任务系统动态重定位地址转换推迟到最后的可能时刻,即进程执行时才完成;允许程序在主存中移动、便于主存共享、主存利用率高。地址转换与存储保护(3)8例:使用重定位寄存器的动态重定位9存储保护问题:保护操作系统不受用户进程所影响,保护用户进程不受其他用户进程所影响方法1)存储键保护系统将主存划分成大小相等的若干存储块,并给每个存储块都分配一个单独的保护键(锁);在程序状态字PSW中设置有保护键字段,对不同的作业赋予不同的代码(钥匙);钥匙和锁相配才允许访问2)界限寄存器(下页图)上、下界防护:硬件为分给用户作业的连续的主存空间设置一对上、下界,分别指向该存储空间的上、下界基址、限长防护:基址寄存器存放当前正执行者的程序地址空间所占分区的始址,限长寄存器存放该地址空间的长度地址转换与存储保护(4)10下限寄存器2000上限寄存器3500基址寄存器2000限长寄存器1500进程id下限+上限寄存器基址+限长寄存器11000+19991000+99922000+35002000+150034000+50004000+1000内存映像……进程1进程2进程3……100019992000350040005000正运行的进程是进程2114.2连续存储空间管理4.2.1固定分区存储管理4.2.2可变分区存储管理4.2.3伙伴系统4.2.4主存不足的存储管理技术124.2.1固定分区存储管理固定分区存储管理的基本思想主存空间被分成数目固定不变的分区,各分区的大小不等,每个分区只装入一个作业。固定分区存储管理的数据结构主存分配表:指出各分区的起始地址和长度;占用标志:指示此分区是否被使用。作业进入固定分区排队策略每个分区有单独的作业等待队列;所有等待处理的作业排成一个等待队列。13固定分区存储管理的地址转换和存储保护B下限寄存器逻辑地址CPU绝对地址操作系统区用户分区1用户分区2用户分区3B+L2上限寄存器