3.存储管理
对象:主存(内存)
存储器:计算机系统中关键性资源信息存储的主要场所。
主要功能:分配、回收主存空间;提高主存的利用率;存信息实现有效保护(主)
发展方向:高速、大容量、小体积
虚拟地址:即,相对地址、程序地址、逻辑地址、符号地址、名地址
名空间——(汇编或编译,链接编辑程序加工)>逻辑地址空间(相对地址空间)——(地址再定位)>物理地址空间(绝对地址空间)
存储空间:逻辑地址空间(地址空间)、物理地址空间(存储空间);地址的集合
地址重定位:逻辑地址变换为主存物理地址
解决可执行文件中地址(指令、数据)与主存地址的对应关系
由装入程序Loader、地址重定位机构完成
分类:
1.静态重定位:loader完成,无需地址重定位机构支持。执行期间不发生变化。缺点:分配连续的存储区域;执行期间不能扩充存储空间,不能再主存中移动;难以空想主存中同一程序的副本和数据。
2.动态重地位:换入、换出主存,解决主存紧张;在主存中移动,碎片集中,充分利用空间;利用小的主存块,不必分配连续的空间;共享
存储管理:
目的:解决多用户使用主存问题
必须为每个作业分配足够的空间,以便装入全部信息。当主存空间不能满足作业要求,作业便无法装入主存执行。
分类:
1.分区存储:主存的用户区分成若干个区域,每个区域分配给一个用户作业使用。
(1)固定分区:系统生成时划分的,大小可不等。已分配区中存在未使用空间。
(2)可变分区:作业装入时进行,个数可变,分区大小等于作业大小。最佳适应算法、最差适应算法、首次适应算法、循环首次适应算法。不断分配、回收,产生了外碎片。
(3)重定位分区:移动所有已分配好的去,使之成为连续的分区。解决碎片问题
分区保护的目的:防止未经审核的用户访问分区。
上界/下界寄存器保护、基址/限长寄存器保护
2.分页存储
优点:分页过程由操作系统完成,对用户透明,用户不必关心分页过程
缺点:不易实现共享
(1)纯分页:进程地址空间划分为若干大小相等的区域,称为页;将主存空间划分成与页相同大小的若干个物理块,称为块、页框。将进程的每一页离散地分配到主存的多个物理块中。
页表:保证在主存中找到每个页面所对应的物理块。实现从页号到物理块号的地址映射。
地址映射:至少访问两次主存。1.得到数据物理地址;2.存取数据,若数据是间接地址,还需要再次变换
地址变换机构:利用页表把用户程序中的逻辑地址变换成主存中的物理地址(将用户程序中的也好变换成主存中的物理块号)。页表寄存器->物理地址寄存器,或越界中断
快表:小容量的联想存储器,由一组快速存储器组成。保存当前访问频率高的少数活动页的页号、相关信息。
根据数据所在逻辑页好在联想存储器中找出对应的物理页号。查找联想存储器、查找主存页表是并行进行的。一旦在联想存储器中找到相符的逻辑也好,就停止查找主存页表
两级页表机制:为了减少页表所占用的连续内存空间
每个进程页表占用主存空间是连续的,如果页表占用大,则连续并不现实。
原理:将页表进行分页。每页大小与主存物理块大小相同,离散地将各个页面分别存放在不同的物理块中。外层页表:第一级页表,存放某个页表的物理地址;第二级页表:存放页的物理块号。
3.分段存储管理:作业的地址空间被划分为若干个段,每段是一组完整的逻辑信息。(主程序段、子程序段、数据段、堆栈段……)每段分配一个连续的分区,进程中的各段可以离散地分配到主存的不同分区中。
优点:易于实现段共享,对段的保护很简单。
段表:为每个进程建立一张段映射表。逻辑段->物理主存
4.段页式存储:
具有分页系统有效提高主存利用率的优点,又具有分段系统能很好满足用户需要的长处。
先将整个贮存划分成大小相等的存储块(页架),将用户程序按程序的逻辑关系分为若干段。每段分为若干页,以页架为单位离散分配。
系统中必须同时配置段表、页表
虚拟存储管理:
作业只部分装入主存便可开始启动运行,其余部分暂时留在磁盘上,需要时再装入主存。
优点:可有效地利用主存空间。从用户角度看,系统所具有的主存容量比实际主存容量大的多。
程序局部性原理:程序执行时呈现出局部性规律(在一段时间内,程序的执行仅局限于某个部分,所访问的存储空间也局限在某个区域)。
表现:时间局限性(循环操作)、空间局限性(顺序执行)
虚拟存储器:
功能:请求调入、置换
仅把作业的一部分装入主存便可运行作业,能从逻辑上对主存容量进行扩容
逻辑容量:由主存、外存容量之和;CPU可寻址的范围来决定。运行速度接近于主存速度,成本低。
分类:
1.请求分页系统:
2.请求分段系统
3.请求段页式系统