白话/图示 从逻辑地址到线性地址的转换流程
2011-07-13 22:44
393 查看
逻辑地址是程序源码编译后所形成的跟实际内存没有直接联系的地址,即在不同的机器上,使用相同的编译器来编译同一个源程序,则其逻辑地址是相同的,但是相同的逻辑地址,在不同的机器上运行,其生成的线性地址又不相同,因为把逻辑地址转换成线性地址的公式是
线性地址=段基址*16+偏移的逻辑地址,而段基址由于不同的机器其任务不同,其所分配的段基址(线性地址)也会不相同,因此,其线性地址会不同。
即使,对于转换后线性地址相同的逻辑地址,也因为在不同的任务中,而不同的任务有不同的页目录表和页表把线性地址转换成物理地址,因此,也不会有相同的物理地址冲突。
注意的是,源码编译后生成的地址,只是偏移的地址,而形成逻辑地址的[段基址:偏移地址]中的段基址,是在生成任务时才定下来的,也就是说,[段基址:偏移地址]只有在进程中才会用到,在程序中只有偏移地址的概念。
线性地址=段基址*16+偏移的逻辑地址,而段基址由于不同的机器其任务不同,其所分配的段基址(线性地址)也会不相同,因此,其线性地址会不同。
即使,对于转换后线性地址相同的逻辑地址,也因为在不同的任务中,而不同的任务有不同的页目录表和页表把线性地址转换成物理地址,因此,也不会有相同的物理地址冲突。
注意的是,源码编译后生成的地址,只是偏移的地址,而形成逻辑地址的[段基址:偏移地址]中的段基址,是在生成任务时才定下来的,也就是说,[段基址:偏移地址]只有在进程中才会用到,在程序中只有偏移地址的概念。
相关文章推荐
- 白话/图示 从逻辑地址到线性地址的转换流程
- Linux内存管理:逻辑地址到线性地址和物理地址的转换
- Linux中的逻辑地址,线性地址和物理地址转换关系
- 《linux 内核完全剖析》 由逻辑地址转换成线性地址代码分析 get_base get_limit 代码分析笔记
- 图示逻辑地址转换到物理地址
- Linux中的逻辑地址,线性地址和物理地址转换关系
- 图示逻辑地址转换到物理地址
- Linux中的逻辑地址,线性地址和物理地址转换关系
- 逻辑地址到线性地址的转换,线性地址到物理地址
- 逻辑地址到线性地址的转换
- Linux内存管理:逻辑地址到线性地址和物理地址的转换
- 物理地址 虚拟地址 逻辑地址 线性地址
- 虚拟地址、线性地址和物理地址的转换
- Linux_分页管理机制(线性地址转换到物理地址)
- Linux内存管理--虚拟地址、逻辑地址、线性地址和物理地址的区别(一)【转】
- 操作系统--分页存储管理中逻辑地址转换为物理地址
- 逻辑地址到物理地址的转换
- 逻辑地址(段式)-> 线性地址或者虚拟地址(页式) -> 物理地址(页框) 解释 深入浅出