1.基本分页存储管理
1.1页号、页内偏移量计算
1.1.1方式一
页号 = 逻辑地址 / 页面长度 (取除法的整数部分)
页内偏移量 = 逻辑地址 % 页面长度(取除法的余数部分)
如:逻辑地址为4097,页面大小为4096
页号 = 4097 / 4096 = 1
页内偏移量 = 4097 % 4096 = 1
1.1.2方式二
如果每个页面大小为 2KB,用二进制数表示逻辑地址, 则末尾 K 位即为页内偏移量,其余部分就是页号逻辑地址
如:逻辑地址为4097,页面大小为4096,用二进制表示应该是 00000000000000000001000000000001
页号 = 4097 / 4096 = 1
页内偏移量 = 4097 % 4096 = 1
1.2基本地址变换机构
基本地址变换机构可以借助进程的页表将逻辑地址转换为物理地址。 通常会在系统中设置一个页表寄存器(PTR)
,存放页表在内存中的起始地址F和页表长度M
。
页式管理中地址是一维的
进程未执行时,页表的始址和页表长度放在进程控制块(PCB)中
当进程被调度时,操作系统内核会把它们放到页表寄存器中。
1.3具有快表的地址变换机构
快表,又称联想寄存器(TLB, translation lookaside buffer ),是一种访问速度比内存快很多的 高速缓存(TLB不是内存!),用来存放最近访问的页表项的副本,可以加速地址变换的速度。 与此对应,内存中的页表常称为慢表。
1.4两级页表
2.基本分段存储管理
2.1分段
2.2段表
2.3地址变换
2.4分段、分页管理的对比
3.段页式管理方式
3.1分页、分段的优缺点分析
3.2段页式管理的逻辑地址结构
4.补充
- 页式和段页式与主存交换信息时均仅采用“页”
- 虚存对应用程序员透明,对系统程序员不透明。虚存需要通过对操作系统实现地址映射,因此对于操作系统的设计者即系统程序员是不透明的。而应用程序员写的程序所使用的是逻辑地址(虚地址),因此对其是透明的。
- 在虚拟存储器中,当程序正在执行时,由
操作系统
完成地址映射。