5.1 存储器的层次结构
①层次越高,访问速度越快,价格也越高,存储容量也越小
②寄存器和主存掉电后存储的信息不再存在
③ 辅存的信息长期保存
5.2 程序的装入和链接
(1) 程序的运行步骤
①编译:由编译程序对源程序进行编译,形成若干目标文件
②链接:由链接程序将目标模块和它们所需要的可函数链接在一起,形成一个完整的装入模块
③装入:由装入程序将装入模块装入内存
(2)物理地址和逻辑地址
物理地址(绝对地址)
①物理内存地址,内存以字节为单位编制
②物理地址空间:所含物理地址的集合
逻辑地址(虚拟地址,相对地址)
①由CPU产生的地址,即程序编译后使用的相对0字节的地址
②逻辑地址空间:由程序所产生的所有逻辑地址的集合
(3)内存保护
目的:①保护OS不被用户访问,②保护用户进程不会相互影响
保护的实现:
基地址寄存器:保护最小的合法物理地址内存地址(基地址)
界限寄存器:保护合法的地址范围大小(界限地址)。
判断 “基地址 ≤ 物理地址 < (基地址 + 界限地址) ” 是否成立
(4)程序的装入
①绝对转入方式:编译时产生的地址使用绝对地址
②可重定位装入方式:
编译后的目标模块使用相对地址
在装入时,完成重定位(静态重定位)
需硬件支持
③动态运行时装入方式
编译后的目标模块使用相对地址
在运行时,完成重定位(动态重定位)。
(5)程序的链接
静态链接:在程序运行前,将各目标模块及它们所需的库函数链接成一个完整的装配模块,以后不再拆开
对相对地址进行修改,变换外部调用符号
5.3 对换和覆盖
对换:把内存暂时不能运行的进程或者暂时不用的程序和数据,调出到外存空间,以便腾出足够的内存空间,再把已具备运行条件的进程或进程所需的程序或数据,调入内存
对换是提高内存利用率的有效措施,广泛应用与OS中
对换区管理的主要目标:
①提高进程换入和换出的速度
②提高文件存储空间的利用率
③应采用连续分配方式,很少考虑碎片问题
盘块管理中的数据结构
①用于记录外存对换区中的空闲盘块的使用情况。
②与动态分区分配方式相似
③空闲分区表/空闲分区链:包含对换区首地址及大小
对换区的分配与回收:
与动态分配方式的内存分配与回收方法相似
5.4 连续分配存储管理方式
连续分配方式:为一个用户程序分配一个连续的内存空间
(1)单一连续分配
内存: 系统区:供OS使用,低地址部分; 用户去:供用户使用
分配方式:单道程序环境下,仅装有一道用户程序,即整个内存的用户空间由该程序独占
(2)固定分区分配
(3)动态分区分配:
5.5 分页存储管理方式
①让进程的连续的逻辑地址空间去适应不连续的可用的物理内存
②把物理内存分成大小固定的块,称为物理块。
③把逻辑内存也分成固定大小的块
④保留所有空闲块的记录
⑤运行一个有N页大小的程序,需要找到N个空的物理块来装入程序
⑥存在业内碎片:进程最后一页经常装不满,而形成不可利用的碎片
(1)地址结构
(2)页表
①系统为每个进程建立了一张页表
②逻辑地址空间内的所有页,依次在页表中有一表项,记录相应页在内存中对应的物理块号
③页表的作用:实现从页号到块号的地址映射