ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 虚拟内存

虚拟内存

原创 Linux操作系统 作者:tengrid 时间:2009-05-18 19:49:51 0 删除 编辑

--from davidlee (他应该是转载的)

虚拟内存为一个比物理内存大许多倍的虚拟出来的内存,它做为文件被保存在硬盘上。
每个进程拥有自己的页表,页表的存在是为了把虚拟内存地址转换为物理内存地址,因为对于进程来说,它看到的是
虚拟内存,它使用的也是虚拟内存。

专业术语解释:
page fault :当进程访问的内存在虚拟内存中存在,而在物理内存中不存在,将会发生page fault错误,从而告知
操作系统;
Demand Paging:只有在进程需要的时候,才把数据加载到物理内存中,而不是把和进程所有相关的数据都加载到物理
内存中。
dirty page :已经被修改过的内存,在要被物理内存废弃时,需要保存到交换文件中。
Shared Vitual Memory :同一个物理页在虚拟页的不同地方(看起来很晕,为什么叫Shared Vitual Memory,而不叫
Shared Memory?)
 Physical and Vitual Addressing Modes :看懂了汉字,没看懂意思。
Access Control :页表包括访问控制信息,限制进程对所要操作的内存,是否可写,只读等权限。访问控制信息放在

page table entry 中,而且和具体的处理器相关。
Buffer Cache :用于块设备驱动程序的数据缓冲区,硬盘都是块设备。
Page Cache :当数据从磁盘读到内存中时,它会被缓存到这里。
Swap Cache :只有改动过的页,当它被废弃时,才保存到这里。
Hardware Cache:硬件高速缓存的常见的实现方法是在处理器里面。CPU里有TLB(转换表缓冲区),用来把一个或多

个进程的页表条目放在这里,来提高地址转换的速度。
Page Allocation and Deallocation:进程运行时为进程分配内存,进程结束时为进程回收内存。页分配代码用

free_area来查找空闲页。
Page Deallocation :回收内存,并把零散的内存聚集到一块。
Memory Mapping :映像和进程虚拟地址空间的连接。
Demand Paging:只有映像的最开始部分放在物理内存中,所以当程序继续运行的时候,很快会访问到还没有放到
物理内存的虚拟空间区,就会发生page fault信息,然后把映像加到物理内存中,依次类推。
Swapping out and Discarding Pages:当物理页小于Free_page_low 时,核心交换守护进程将交换和废弃页。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/94384/viewspace-600317/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 进程管理
请登录后发表评论 登录
全部评论

注册时间:2009-05-18

  • 博文量
    136
  • 访问量
    381303