当前位置: 技术问答>linux和unix
关于linux内存管理的一些问题
来源: 互联网 发布时间:2015-03-07
本文导语: 下面是我看linux内存管理的一些总结,其中有一些问题和说的不对的地方,希望大家指点一二: 系统读取可执行文件,将其映射到进程虚拟空间。进程的虚拟空间有0—4G,其中前三G是用户程序使用。后一个G由内核使...
下面是我看linux内存管理的一些总结,其中有一些问题和说的不对的地方,希望大家指点一二:
系统读取可执行文件,将其映射到进程虚拟空间。进程的虚拟空间有0—4G,其中前三G是用户程序使用。后一个G由内核使用。后一个G的映射是固定的,所有的进程使用相同的映射。可执行文件的内容被链接到虚拟空间中,生成了交换文件,储存在交换空间里(问题:那这个交换文件会不会很大?因为虚拟地址的内容信息映射到特定的虚拟地址块里,而虚拟地址光用户空间就有3个G。请多指教)。在进程被执行时,开始要被执行的代码和数据被装载到内存中,当执行到缺页的情况,产生中断,由系统将缺的页装载进内存,刷新页表,中断结束,程序继续执行。问题:Linux进行虚拟内存映射的规则是什么呢?有相关的书籍介绍嘛?三级页表如何工作,实现虚拟内存和物理内存间的映射,它工作的如此之好,在linux这样一个多线程的系统中,做到进程与进程间互不干扰,希望大家多多指点迷津。
系统读取可执行文件,将其映射到进程虚拟空间。进程的虚拟空间有0—4G,其中前三G是用户程序使用。后一个G由内核使用。后一个G的映射是固定的,所有的进程使用相同的映射。可执行文件的内容被链接到虚拟空间中,生成了交换文件,储存在交换空间里(问题:那这个交换文件会不会很大?因为虚拟地址的内容信息映射到特定的虚拟地址块里,而虚拟地址光用户空间就有3个G。请多指教)。在进程被执行时,开始要被执行的代码和数据被装载到内存中,当执行到缺页的情况,产生中断,由系统将缺的页装载进内存,刷新页表,中断结束,程序继续执行。问题:Linux进行虚拟内存映射的规则是什么呢?有相关的书籍介绍嘛?三级页表如何工作,实现虚拟内存和物理内存间的映射,它工作的如此之好,在linux这样一个多线程的系统中,做到进程与进程间互不干扰,希望大家多多指点迷津。
|
向你推荐两本书:
1.《Understanding the linux kernel》第二版 讲的是2.4.20的内核
2.《Linux内核源代码情景分析》 讲2.4.0的内核
另外,如果想与大家交流linux内核方面的经验,建议你到www.linuxforum.net这个论坛去,因为我觉得这个这个论坛是linux论坛中水平最高的。
1.《Understanding the linux kernel》第二版 讲的是2.4.20的内核
2.《Linux内核源代码情景分析》 讲2.4.0的内核
另外,如果想与大家交流linux内核方面的经验,建议你到www.linuxforum.net这个论坛去,因为我觉得这个这个论坛是linux论坛中水平最高的。
|
263.aka.org.cn/Lectures/003/Lecture-3.1.3/ Lecture-3.1.3.html www.linuxaid.com.cn/articles/ history.jsp?pn=10&rp=30
对你应该有帮助
对你应该有帮助