`
阿尔萨斯
  • 浏览: 4170364 次
社区版块
存档分类
最新评论

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

 
阅读更多

计算机系统的储存机制现在主要是 段页式储存,即分段也分页。

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

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

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


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


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


对于分段分页存储器:

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

一开始的逻辑地址为段号 加 段内位移。将其查段表,计算获得线性地址,线性地址左端为 目录和页号,先在页目录表中找到对应的页表,然后再在页表中找到对应的页帧地址,与位移结合获得物理地址。


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics