分页存储管理
知识
1存储器的层次结构(目的:方便用户和提高主存利用率):寄存器、高速缓存、内存、磁盘缓存(内存部分空间)、磁盘
2程序的装入与链接:编译,链接(确定相对地址),装入(可以确定物理地址)
3在多道程序环境下,要使程序运行必须为之先创建进程,创建进程的第一件事是将程序和数据装入内存
4逻辑地址/相对地址:CPU生成的地址,所有程序的逻辑地址都是从0开始。;物理地址/绝对地址:内存单元看到的地址
5内存保护(硬件):界限寄存器指定了(合法范围的大小) ;基地址<=物理地址<(基地址+界限地址)
6程序的装入:绝对装入方式(适用于单道程序),可重定位装入方式(静态重定位,多道程序,装入时重定位所有的逻辑地址都转换为物理地址,以后不再改变,物理地址=逻辑地址+内存起始位置。),动态运行时装入方式(动态重定位,多道程序,执行时才进行重定位)
7重定位:把逻辑地址转换为物理地址
8程序的链接(这些模块就会是一块连续的地址的完整模块):静态链接(运行前就链接完成;修改相对地址,变换外部调用符号),装入时动态链接(装入内存时,采用边装入边链接;便于修改和更新),运行时动态链接(执行时才进行调用链接装入到内存,)
9对换与覆盖:###
10存储管理方式:连续分配存储管理方式,分页存储管理方式,分段存储管理方式,段页存储管理方式
11连续分配存储管理方式:单一连续分配(单道程序),固定分区分配(多道程序,把用户区划分为若干个大小一样的区域,分区的起始地址、大小、状态),动态分区分配(空闲分区表,空闲分区链),动态重定位分区分配()
12动态分区分配算法:使用分配算法选择一个合适的分区分配给作业;顺序分配算法,索引分配算法
13顺序分配算法:首次适应算法(FF,首址递增排序,从空闲分区的链首开始找按照作业的大小把该分区分割,留下小部分空间仍在空闲链),循环首次适应算法(NF,不再从链首开始找,而是从上一次查找过的位置开始),最佳适应算法(BF,空闲区按大小递增排序,),最坏适应算法(WF,空闲区按大小递减排序)
14索引分配算法(使用于大系统):快速适应算法(QF),伙伴系统,哈希算法
15动态重定位分区分配:紧凑(小碎片的连接效果),动态重定位(相对地址变换为物理地址),动态重定位分区分配算法(增加一个硬件地址变换结构,名字叫重定位寄存器,把新的起始地址替换原来旧的起始地址)
分页存储管理方式(逻辑空间分成页,内存分成页框):页面--》将程序分割成若干个大小相同的区域(常见的有1KB、2KB…,页面大小(L),
16分页的地址结构:长度32位,前20位是页号(地址空间为1M页),后12位是页内地址(每页的大小为4KB,一个页里面自己的地址),两者结合就是页的地址。
17页号P和页内地址d的计算:P=INT【A/L】,d=[A] MOD L (A为逻辑空间中的地址,L为页面大小)
18页表(内存):各个页离散地存储在内存地任一物理块
19地址变换机构 (将逻辑地址变换为物理地址):页内地址与块内地址相同,只需要实现将逻辑地址中的页号变换为内存中的物理地址块号
20在这个机制中,每一次的数据/指令存入需要两次内存访问,一次是访问页表,一次访问数据/指令
有效存取时间的计算:
EAT=t+t=2t
3个因素决定:内存访问时间t(地址变换后到内存取到数据的这段时间)、快表的命中率a、快表的访问时间m
有效访问时间=a * m + (1-a) * (t+m) + t=a*(m+t)+(1-a)*(m+t+t)=