存储器的层次结构
存储器管理的功能 1.地址映射 2.主存分配与回收 3.存储保护 4.主存扩充(虚拟内存) 地址映射(地址重定位) 内存的每个存储单元都有一个编号,这种编号称为内存地址(或物理地址,地址)。 实现虚拟内存的基本原理 将程序正在使用的部分内容放在内存,而暂时不用的部分放在外存,在需要时由系统调入内存,并将不需要(或暂不需要)的部分调出内存。 程序的装入与链接 (1)编译。由编译程序将用户源代码编译成若干个目标模块。 (2)链接。由链接程序将编译后形成的目标模块以及它们所需要的库函数,链接在一起,形成一个装入模块。 (3)装入。由装入程序将装入模块装入主存的过程。(加载) 程序的装入是把程序装入内存空间。采用三种方式: 1.装入方式(Absolute Loading Mode) 在可执行文件中记录内存地址,装入时直接定位在(即文件中记录的地址)内存地址。 2.可重定位方式(Relocatable Loading Mode) 在可执行文件中,列出各个需要重定位的地址单元和相对地址值。3.动态运行时装入方式(Dynamic Run-time Loading) 把装入模块装入主存后,并不立即将装入模块中的相对地址转换为地址,而是把这种地址转换推迟到程序真正执行时才进行。 实现链接的方法有三种: 1.静态链接:事先进行链接,以后不再拆开的链接方式。 2.装入时动态链接:用户源程序经编译后所得到的目标模块,在装入主存时,边装入边链接的。 3.运行时动态链接:可将某些目标模块的链接,推迟到执行时才进行。 连续分配方式是指为一个用户程序分配一个连续的内存空间。 1.单一连续分配 2.固定分区分配 3.动态分区分配 4.可重定位分区分配 有作业序列:作业 A 要求 18K;作业 B 要求 25K,作业 C 要求 30K。系统中空闲区按三种算法组成的空闲区队列:
基本分页存储管理方式
逻辑上相邻的页,物理上不一定相邻。
有 2 页分别装入内存的第 5、6 块;作业 2 有 3 页装入内存的第 2、4、7 块;作业 3 有1 页装入内存的第 8 块
页大小的选择 太大:浪费;太小:页表过长。 设页长为 1K,程序地址字长为 16 位,用户程序空间和页表如图。
快表又叫联想存储器(associative memory)或 TLB(Translation Lookaside Buffers) 基本分段存储管理方式