一、概述
- 虚地址,逻辑地址,用户编程的地址空间
- 实地址,物理地址,实际的主存单元地址
- 虚拟地址空间远大于实地址;
- 程序运行时发出虚地址,由操作系统(软件)和内存管理单元(硬件)负责将当前运行的程序片段调入主存,完成虚地址向实地址转换。
- 虚拟存储分类:页式、段氏、段页式
二、页式存储机制
基本概念
- 实页,物理页,主存中固定大小的存储块;
- 虚页,逻辑页,每个进程被分成的大小相同的程序块;
- 页表,记录虚页和实页的映射关系
- 每个进程都有一个页表,页表在虚址中的首地址记录在页表基址寄存器中。
分页式虚存地址转换:
1.发出虚拟地址:虚拟页号&页内地址
2.页表基址寄存器,找到页表基地址
3.找到页表内的物理页号,通过 基地址+虚拟页号
4.得到内存地址:物理页号&页内地址
三、段氏存储机制
基本概念
- 程序在虚拟内存中是模块化存储,可划分为独立的部分,称为段,将段作为基本单位在主存和辅存之间传送。
- 每个段有一个段表基址寄存器,存放段的首地址;根据段号,能找到对应段表项。
- 段名、段起点、段长等属性。
段式虚地址转换
1.发出虚地址:段号&段内地址
2.段表基址寄存器,找到段表基地址
3.通过段号+基地址 ,在段表中找到段地址
4.得到物理地址:段地址+段内地址
四、段页式存储机制
程序先分段,段内再分页
段页式存储转换
1.虚拟地址:基号&段号&页号&页内地址
2.基址寄存器组,通过基号访问对应寄存器,得到相应用户进程的段首地址。
3.查找段表,段首地址+段号得到页首地址
4.查找页表,页首地址+页号得到物理页码
5.得到物理地址:物理页码&页内地址