理解内存(3)
来源:互联网 发布:淘宝首页文案范文 编辑:程序博客网 时间:2024/06/05 05:15
MemoryMap
一旦ELF文件执行,那么一个text区和两个data段将被加载到不同的虚拟内存区域。按照惯例,text区占用了低的内存地址,而data区占用了高的内存地址。并且适当的权限分配给每个区域。通常情况下,text段是“可读-可执行”而data段是“读写”权限。A typical processmemorymap is illustrated in Figure 3.
Fig. 3 Process memory map showing text, data, and bss segments.
虚拟内存地址从上图中的底部0地址开始一直增长到512GB向上。大于512GB的地址被Linux 内核使用。但是这只是针对于AMD64硬件结构。其他的架构或许不同。尽管一个进程的大小(text+data+bss)在编译的时候被建立,并且在运行期保留了一些常量。但是进程仍然可以在运行期通过malloc()in c或者是ALLOCATABLE arrays in Fortran 90/95。通过动态分配的数据被放在内存中的堆中。如图4
Fig. 4 Memory map with heap segment included.
Data and bss segments are shown as one.
所有的三个segments,text,data(data+bss)和heap都是通过page table被映射到虚拟内存中。
All three segments, text,data (data+bss), and heap, are mapped to real memory through the page table.The figure shows that the heap segment expands and contracts as memory isallocated and deallocated. Consequently, page table entries are added ordeleted as necessary.- 理解内存(3)
- 理解内存(1)
- 理解内存(2)
- C提高(3):内存四区深入理解
- 内存理解
- 内存理解
- 内存理解
- 内存理解
- 深入理解内存(3):内存交换技术,虚拟内存
- 深入理解内存(3):内存交换技术,虚拟内存
- 理解内存泄漏与内存溢出(转载)
- Memcached(3)-------Memcached的内存存储理解
- 深入理解Linux内存管理机制(一)
- 深入理解Java内存模型(一)
- 深入理解Linux内存管理机制(一)
- 内存层次结构理解(一)
- 理解 Memory barrier(内存屏障)
- 理解 Memory barrier(内存屏障)
- Oracle 基于 RMAN 的不完全恢复(incomplete recovery by RMAN)
- Python 类属性介绍
- jsp传参时若Url为中文时的乱码问题
- Java/JSP中使用JDBC连接SQL Server 2005~
- Python进制转换(二进制、十进制和十六进制)
- 理解内存(3)
- C++ 用libcurl库进行http通讯网络编程
- Eclipse3.7集成jbpm4.4
- ezSQL 500条乱码 中文乱码
- 如何在Ubuntu下面识别Galaxy Nexus设备
- 2012年前端技术回顾
- JavaMail API详解
- Class.forName
- 渔线主线教你如何做