储存管理 与 虚拟地址如何转换为物理地址
2014-09-26 15:03
369 查看
计算机系统的储存机制现在主要是 段页式储存,即分段也分页。
分页将程序分为相等的固定长且比较小的程序块,每一个程序块称为页,能分配到存储器中 分割为固定长度的储存块(称为页帧)上。
用页表来保存一些数据,保存的内容为进程中每一页的页帧地址。
逻辑地址为 在程序代码中 相对与程序起始地址的存储单元地址。转换为物理地址的操作为,根据逻辑地址的页号,找到其对应的页表中的信息,即页帧地址,然后将逻辑地址的页号改为页帧地址前部,获得完整的物理地址。
由于分页,导致了虚拟存储器的概念。即当程序加载时,外部看到的似乎整个程序已经被加载到 内存中,而事实上,其只是一部分在内存上,还有一些仍在磁盘上,则这个时候我们看到的这个加载了程序的内存称为虚拟存储器。由于分页导致抖动问题:抖动是指 处理器花费大量时间用于交换页而不是执行指令。
分段 是对程序员课件的,为组织程序和数据提供方便,并提供把特权,保护属性,与指令数据想联系的手段。分段允许程序员把存储器看成多个地址空间或段组成。段长度是可变的,是动态分配的。
对于分段分页存储器:
分段分页的地址称为虚拟地址,将其的段号解读,转换为线性地址,线性地址为整个程序作为一个整体时的地址,再转换为物理地址。
一开始的逻辑地址为段号 加 段内位移。将其查段表,计算获得线性地址,线性地址左端为 目录和页号,先在页目录表中找到对应的页表,然后再在页表中找到对应的页帧地址,与位移结合获得物理地址。
分页将程序分为相等的固定长且比较小的程序块,每一个程序块称为页,能分配到存储器中 分割为固定长度的储存块(称为页帧)上。
用页表来保存一些数据,保存的内容为进程中每一页的页帧地址。
逻辑地址为 在程序代码中 相对与程序起始地址的存储单元地址。转换为物理地址的操作为,根据逻辑地址的页号,找到其对应的页表中的信息,即页帧地址,然后将逻辑地址的页号改为页帧地址前部,获得完整的物理地址。
由于分页,导致了虚拟存储器的概念。即当程序加载时,外部看到的似乎整个程序已经被加载到 内存中,而事实上,其只是一部分在内存上,还有一些仍在磁盘上,则这个时候我们看到的这个加载了程序的内存称为虚拟存储器。由于分页导致抖动问题:抖动是指 处理器花费大量时间用于交换页而不是执行指令。
分段 是对程序员课件的,为组织程序和数据提供方便,并提供把特权,保护属性,与指令数据想联系的手段。分段允许程序员把存储器看成多个地址空间或段组成。段长度是可变的,是动态分配的。
对于分段分页存储器:
分段分页的地址称为虚拟地址,将其的段号解读,转换为线性地址,线性地址为整个程序作为一个整体时的地址,再转换为物理地址。
一开始的逻辑地址为段号 加 段内位移。将其查段表,计算获得线性地址,线性地址左端为 目录和页号,先在页目录表中找到对应的页表,然后再在页表中找到对应的页帧地址,与位移结合获得物理地址。
相关文章推荐
- 用户态进程的虚拟地址如何转换成物理地址
- 用户空间的虚拟地址如何转换得到实际的物理地址
- Linux_分页管理机制(线性地址转换到物理地址)
- WinCE中的虚拟地址和实际的物理地址是如何对应
- 在用户态进行虚拟空间地址向物理空间地址的转换
- 虚拟地址到物理地址的转换步骤
- 物理地址转换成虚拟地址MmMapIoSpace
- 虚拟地址转换成物理地址
- 0.ring0-PAE-(虚拟地址转换成物理地址详细示例)
- Linux_分页管理机制(线性地址转换到物理地址)
- 启用PAE机制下虚拟地址到物理地址的转换
- 实践使用WinDBG从虚拟地址转换到物理地址
- 用户虚拟地址转换成物理地址
- 在用户态进行虚拟空间地址向物理空间地址的转换
- Linux的内存管理主要分为两部分:物理地址到虚拟地址的映射,内核内存分配管理(主要基于slab)。
- Linux_虚拟地址、线性地址和物理地址的转换
- 关于数据如何从物理虚拟地址转到文件虚拟地址
- 分页管理机制(线性地址转换到物理地址)
- windbg调xp的calc(手工虚拟地址到物理地址转换练习)
- Linux 内核 虚拟地址 物理地址 转换