关于内存管理概述第1页,共40页,星期日,2025年,2月5日一、概述1.存储体系2.内存/主存3.存储管理的目的4.存储管理的任务5.单一用户(连续区)存储管理方案第2页,共40页,星期日,2025年,2月5日1.存储体系主要问题:CPU自身的运算速度很快,内存、外存的访问速度受到限制操作系统协调各存储器的使用使CPU的运算速度得到发挥Cache主存/内存磁盘/外存寄存器速度更快成本更低容量更大CPU第3页,共40页,星期日,2025年,2月5日2.内存/主存由存储单元(字节或字)组成的一维连续的地址空间用来存放当前正在运行程序的代码及数据是程序中指令本身地址所指的、亦即程序计数器所指的存储器(可以由处理器直接访问!)分为系统区与用户区系统区:用于存放操作系统用户区:用于装入并存放用户程序和数据第4页,共40页,星期日,2025年,2月5日3.存储管理的目的充分利用内存,为多道程序并发执行提供存储基础尽可能方便用户使用自动装入用户程序用户程序中不必考虑硬件细节系统能够解决程序空间比实际内存空间大的问题程序在执行时可以动态伸缩内存存取速度快存储保护与安全共享与通信了解有关资源的使用状况实现的性能和代价第5页,共40页,星期日,2025年,2月5日4.存储管理的任务(1)内存空间的管理、分配与回收(2)存储共享(3)存储保护(4)内存扩充(5)地址转换第6页,共40页,星期日,2025年,2月5日(1)内存空间的管理、分配与回收记录内存的使用情况——设置相应的内存分配表(内存分配、回收的依据)内存空间划分问题?静态或动态,等长或不等长第7页,共40页,星期日,2025年,2月5日记录分配状态(内存分配表)的方法位示图:用一位代表一个页面(0:空闲,1:占用)0…...110…...第0页第1页第i页第n-1页空闲页面表:包括首页面号和页面个数,连续若干的页面作为一组登记在表中空闲块表:空闲块首址和空闲块长度,没有记录的区域即为进程所占用第8页,共40页,星期日,2025年,2月5日程序与内存的对应关系连续性离散性(存放方式)一次性多次性(装入方式)驻留性交换性(退出方式)内存分配静态方式:程序要求的内存空间在运行前确定 动态方式:程序要求的内存空间在运行前及运行过程中确定内存回收第9页,共40页,星期日,2025年,2月5日(2)存储共享两个或多个进程共用内存中相同区域目的:节省内存空间,提高内存利用率实现进程通信(数据共享)共享内容:代码共享,要求代码为纯代码数据共享第10页,共40页,星期日,2025年,2月5日(3)存储保护为多个程序共享内存提供保障,使在内存中的各道程序,只能访问它自己的区域,避免各道程序间相互干扰,特别是当一道程序发生错误时,不致于影响其他程序的运行通常由硬件完成保护功能,由软件辅助实现第11页,共40页,星期日,2025年,2月5日防止地址越界每个进程都有自己独立的进程空间,如果一个进程在运行时所产生的地址在其地址空间之外,则发生地址越界当程序要访问某个内存单元时,由硬件检查是否允许,如果允许则执行,否则产生地址越界中断,由操作系统进行相应处理一般由硬件提供一对寄存器:基址寄存器:存放起始地址限长寄存器:存放长度(或上界寄存器/下界寄存器)第12页,共40页,星期日,2025年,2月5日防止操作越权对于允许多个进程共享的存储区域,每个进程都有自己的访问权限。如果一个进程对共享区域的访问违反了权限规定,则发生操作越权,即读写保护第13页,共40页,星期日,2025年,2月5日(4)内存扩充通过虚拟存储技术实现用户在编制程序时,不应该受内存容量限制,所以要采用一定技术来“扩充”内存的容量,使用户得到比实际内存容量大的多的内存空间具体实现是在硬件支持下,软硬件相互协作,将内存和外存结合起来