操作系统( 第四章 :储存器管理)知识点总结
第四章 储存器管理
4.1 储存器管理的功能 逻辑地址(相对地址,虚拟地址);物理地址(绝对地址,实地址)
地址重定位:将用户程序中的逻辑地址转换为运行时可由机器寻址的物理地址
要完成内存的分配和回收,要求设计者选择几种策略和结构:
调入策略 (何时调入内存)
放置策略 (放置在何处)
置换策略 (内存不够时,换出哪个程序)
分配结构 (记录内存使用情况(空闲分区表))
引起内存分配和回收的原因
进程的开始和结束
进程运行的过程中,它所占用的内存也可能发生变化 (栈的变化)
进程影像在内存和外存之间传递
系统对内存空间进行调整
存储保护:保证在内存中的多道程序只能在给定区域内活动并不产生干扰
防止地址越界、防止越权(对共享区有保护权)、
虚拟存储器(虚地址空间):容量远远超过内存的实际容量,面向编程
实现虚拟内存的基本原理:将程序正在使用的部分放在内存,而暂时不用的部分放在外存,在需要时由系统调入内存,并将(暂)不需要的部分调出内存。
源程序执行步骤:编译->链接->装入
绝对装入(过程简单,不适于多道程序系统)
可重定位方式(列出需要重定位的地址单元,当用户程序被装入内存时,一次性实现逻辑地址到物理地址的转换)
优点:不需硬件支持,可以装入有限多道程序;缺点:一次性全部装入;一个程序通常需要占用连续内存空间,程序装入内存后运行时不能移动
动态运行时装入方式:需重定位寄存器,实现复杂 优点:可以将一个程序分散存储,可移动程序,支持程序执行中产生地址引用,是虚拟储存的基础
4.3 连续分配方式
单一连续分配:系统区、用户区 每次只允许一个程序占用,用户区不能分割
固定分区分配:分成个数固定、大小相等或不等的多个区域,划分方式由计算机的操作员或操作系统给出 (易于实现,开销小)(限制了并发执行程序数目)在作业大小和出现频率均已知的情况下分区的大小选择与作业相当,这样内存使用效率较高
动态分区分配:分区大小和个数依装入作业的需要而定
分区的回收:首先检查释放区是否与系统中的空闲区相邻
若释放区与前空闲区相邻。则将释放区与前空闲区合并,其首址仍为前空闲区首址,大小为释放区大小与前空闲区大小之和。若与后空闲区相邻,则将释放区与后空闲区合并,首址为释放区的首址,空闲区大小为两区域之和。若释放区与前后两个空闲区都相邻,则将这三个区合并成一个空闲区,其首址为前空闲区首址,大小为三个区域之和。如果释放区不与任何空闲区相邻,则将释放区作为一个空闲区,其大小和首址插入到空闲区表的适当位置。
首次适应法(空闲分区按首地址递增次序组织,每次查找时从链首出发,寻找满足要求的内存块);
最佳适应法(空闲分区按空闲分区大小地址递增次序组织,每次为作业分配内存时,总是把能满足要求、又是最小的空闲分区分配给作业,避免“大材小用”);
最坏适应法(空闲分区按空闲分区大小地址递增次序组织,它在扫描整个空闲分区表或链表时,总是挑选一个最大的空闲区);
分配和回收后要对空闲区表(队列)重新排序
分区碎片整理方式:紧凑、分区对换
4.4 基本分页储存管理方式
把用户程序按逻辑页划分成大小相等的部分,称为页,从0开始编页号
地址的高位部分为页号,地位部分为业内地址
内存空间:按页的大小划分成大小相等的区域,称为块或内存块
内存分配:以页为单位进行分配,并按作业的页数多少来分配。逻辑上相邻的页,物理上不一定相邻
页表:登记页号和块的对应关系的数据结构,系统为每个进程建一个页表,页表的长度和首地址存放在进程控制块(PCB)中,其首地址和长度由地址映射机构的页表始址和长度寄存器显示。包括:页号、内存块号、其它
快表(联想储存器/TLB):把页表放在一组快速储存器中,从而加快访问内存的速度
表项:页号;内存块号;标识位;淘汰位
页式储存优点:解决了碎片问题,便于管理;缺点:不易实现共享、动态连接
逻辑地址=页号*页面大小+页内地址 物理地址=块号*块大小+页内地址
4.5 基本分段存储管理方式
按程序自身的逻辑关系划分为若干个程序段,每个程序段都有一个段名,且有一个段号。段号从0开始,每一段段内也从0开始编址,段内地址是连续的。
内存划分:内存空间被动态的划分若干个相同的区域,称为物理段,每个物理段由起始地址和长度确定
内存分配:以段为单位分配内存,每一个段在内存中占据连续空间,但各段之间可以不连续存放