【操作系统】 详解逻辑地址转物理地址(例题)

目录

  • 前言
  • 1. 定义
  • 2. 例题
    • 2.1 十进制
    • 2.2 十六进制

前言

这部分知识在软考或者考研408都比较常见

1. 定义

分页存储的物理地址转逻辑地址:

页式存储管理的逻辑地址分为两部分:页号和页内地址

逻辑地址 = 页号 + 页内地址
物理地址 = 页号 + 业内地址

2. 例题

常见的例题有十进制和十六进制

2.1 十进制

题目:

分页系统中,页面大小为1K,进程P有4个页面,页号分别为0~3。如下表所示:

页号 页框号/帧
0 3
1 4
2 6
3 8

进程P要访问十进制的逻辑地址为2300,求对应的物理地址


答案:

  1. 逻辑地址的页号:2300/1024=2 (整除)

  2. 根据逻辑地址的页号查出物理地址的页框号/帧号: 逻辑地址的第2页对应物理地址的第6页。

  3. 页内偏移量 : 2300 % 1024 =252 (取余)

  4. 求物理地址 = 6*1024 + 252 = 6396

2.2 十六进制

以19年软考高级真题例题讲解:

进程P有8个页面,页号分别为0~7,页面大小为4K,假设系统给进程P分配了4个存储块,进程P的页面变换表如下所示。表中状态位等于1和0分别表示页面在内存和不在内存。

  1. 若进程P要访问的逻辑地址为十六进制5148H,则该地址经过变换后,其物理地址应为十六进制XXXX
  2. 如果进程P要 访问的页面6不在内存,那么应该淘汰页号为XXXX的页面

【操作系统】 详解逻辑地址转物理地址(例题)_第1张图片


答案:

第一题:

根据题意,页面大小为4K,逻辑地址为十六进制5148H页号为5,页内地址为148H,查页表后可知页帧号(物理块号)为3,该地址经过变换后,其物理地址应为页帧号3拼上页内地址148H,即十六进制3148H。


之所以第一位为5,即可以通过查表来转换物理地址,最后拼上页内地址

主要的逻辑如下:

  • 5148H转换为二进制为0101 0001 0100 1000
  • 由于页面大小为4K字节,也就是12次方,对应上方二进制的后12位即为页内地址
  • 通过查表可知,前面4个二进制代表5,对应表格为3。 最后拼接后面的地址 即3 148

第二题:

据题意,页面变换表中状态位等于1和0分别表示页面在内存或不在内存,所以1、2、5和7号页面在内存。当访问的页面4不在内存时,系统应该首先淘汰未被访问的页面,因为根据程序的局部性原理,最近未被访问的页面下次被访问的概率更小;如果页面最近都被访问过,应该先淘汰未修改过的页面,因为未修改过的页面内存与辅存一致, 故淘汰时无须写回辅存,使系统页面置换代价更小。

综上分析,1、5和7号页面都是最近被访问过的,但2号页面最近未被访问过,故应该淘汰2号页面。

你可能感兴趣的:(408专业,操作系统,分页存储)