1.地址转换过程
访问3次内存,第一次是段表,第二次是页表,第三次是真正物理内存
在段页式系统中,为了便于实现地址变换,须配置个段表寄存器, 其中存放段表始址和段长TL。进行地址变换时,
- 首先利用段号s,将它与段长TL进行比较。若S<TL,表示未越界,
- 于是利用段表始址和段号来求出该段所对应的段表项在段表中的位置,从中得到该段的页表始址,
- 并利用逻辑地址中的段内页号P来获得对应页的页表项位置,如果页号P小于页表长度,表示未越界。
- 从中读出该页所在的物理块号b,再利用块号b和页内地址来构成物理地址。
2.例题
在一个采用段页式存储管理的系统中,页的大小为1KB。某个正在执行的作业情况如下:
(1)将逻辑地址(2,3500)转换成物理地址
解析过程:
- 逻辑地址中的段号 2 跟段表控制寄存器中的段表长 3 进行比较,由于 2<3 ,故段号没有越界;
- 根据段表控制寄存器中的段表起始地址加上段号 2 ,找到段表中对应于第 2 段的段表项,从而得到第 2 段的页表长度和页表起始地址;
- 根据段内偏移 3500 得到段内页号为 3 ,页内偏移为 428;
- 把段内页号 3 和段表项中的页表长度 5 进行比较,得知页号没越界;
- 页表起始地址加上页号得到对应的页表项,从而得到第 2 段的第 3 页的物理块号 30;
- 物理块号 30 和块内偏移 428 拼接成物理地址 31148;
- 逻辑地址 (2,3500) 对应的物理地址为十进制数 31148 ,十六进制 79AC 。