您的位置:首页 > 其它

储存管理 与 虚拟地址如何转换为物理地址

2014-09-26 15:03 369 查看
计算机系统的储存机制现在主要是 段页式储存,即分段也分页。

分页将程序分为相等的固定长且比较小的程序块,每一个程序块称为页,能分配到存储器中 分割为固定长度的储存块(称为页帧)上。

用页表来保存一些数据,保存的内容为进程中每一页的页帧地址。

逻辑地址为 在程序代码中 相对与程序起始地址的存储单元地址。转换为物理地址的操作为,根据逻辑地址的页号,找到其对应的页表中的信息,即页帧地址,然后将逻辑地址的页号改为页帧地址前部,获得完整的物理地址。

由于分页,导致了虚拟存储器的概念。即当程序加载时,外部看到的似乎整个程序已经被加载到 内存中,而事实上,其只是一部分在内存上,还有一些仍在磁盘上,则这个时候我们看到的这个加载了程序的内存称为虚拟存储器。由于分页导致抖动问题:抖动是指 处理器花费大量时间用于交换页而不是执行指令。

分段 是对程序员课件的,为组织程序和数据提供方便,并提供把特权,保护属性,与指令数据想联系的手段。分段允许程序员把存储器看成多个地址空间或段组成。段长度是可变的,是动态分配的。

对于分段分页存储器:

分段分页的地址称为虚拟地址,将其的段号解读,转换为线性地址,线性地址为整个程序作为一个整体时的地址,再转换为物理地址。

一开始的逻辑地址为段号 加 段内位移。将其查段表,计算获得线性地址,线性地址左端为 目录和页号,先在页目录表中找到对应的页表,然后再在页表中找到对应的页帧地址,与位移结合获得物理地址。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: