- 内存地址编址
- 内存和寄存器是CPU唯一能直接访问的存储器
- 内存地址范围由基地址寄存器,界限地址寄存器定义
- 保护内存:系统区域不被用户区域访问,用户区域不被其他程序访问
- 地址绑定:逻辑地址(可直接寻址)到物理地址(不可直接寻址)的映射
- 符号地址-》(编译器)》可重定位地址-》(连接程序和加载程序)》绝对地址
- 动态加载:运行时加载,把程序调入内存
- 静态链接:始终驻留内存
- 动态链接:链接延迟到加载,通常适用于系统库,有存根
- 交换:滚入 和滚出 考虑是 合适绑定的地址,编译和加载时不可改地址,运行时绑定的可改
- 内存分配方式:连续分配、分页分配、分段分配
- 连续分配:多分区分配、可变区分配
- 碎片:外部碎片(区外产生),内部碎片(区内产生)。紧缩解决,适用于动态重定位,开销大,静态定位不适用
- 分页分配:帧(物理内存划分为固定大小块)页(逻辑内存),地址不必连续
- 地址映射:页号、页偏移
- 页表存储:页表基寄存器,页表长寄存器
- 页表存入内存:一个字节两次访问内存降低访问速度
- 分页实现内存保护方式:与每个帧关联一个保护位,是有效位时合法,无效位时不合法 (访问保护、地址保护)
- 优点:可共享代码逻辑地址相同,不可共享的逻辑地址不同
- 页表结构:层次(优势原因)、哈希、反向
- 哈希页表:逻辑地址:虚拟页码,偏移量
- 每一条目对应链表元素:虚拟页码,所映射帧号,下一个元素指针
- 反向页表:整个系统只有一个页表,查找费事
- 编址:进程标识符,页码,页偏移
- 哈希页表:逻辑地址:虚拟页码,偏移量
- 分段:以用户视角拆分逻辑段 逻辑地址:分段号,偏移
- 连续分配:多分区分配、可变区分配