美文网首页
物理内存和虚拟内存

物理内存和虚拟内存

作者: 顶儿响叮当 | 来源:发表于2016-03-13 22:23 被阅读308次

想起之前上过的操作系统课,没认真听啊。。

1. 每个进程都有自己独立的4G内存空间,各个进程的内存空间具有类似的结构

2. 一个新进程建立的时候,将会建立起自己的内存空间,此进程的数据,代码等从磁盘拷贝到自己的进程空间,哪些数据在哪里,都由进程控制表中的task_struct记录,task_struct中记录中一条链表,记录中内存空间的分配情况,哪些地址有数据,哪些地址无数据,哪些可读,哪些可写,都可以通过这个链表记录

问题

计算机明明没有那么多内存(n个进程的话就需要n4G)内存*
建立一个进程,就要把磁盘上的程序文件拷贝到进程对应的内存中去,对于一个程序对应的多个进程这种情况,浪费内存!
第二层理解
1. 每个进程的4G内存空间只是虚拟内存空间,每次访问内存空间的某个地址,都需要把地址翻译为实际物理内存地址。
2. 所有进程共享同一物理内存,每个进程只把自己目前需要的虚拟内存空间映射并存储到物理内存上。
3. 进程要知道哪些内存地址上的数据在物理内存上,哪些不在,还有在物理内存上的哪里,需要用页表来记录
4. 页表的每一个表项分两部分,第一部分记录此页是否在物理内存上,第二部分记录物理内存页的地址(如果在的话)
5. 当进程访问某个虚拟地址,去看页表,如果发现对应的数据不在物理内存中,则缺页异常
6. 缺页异常的处理过程,就是把进程需要的数据从磁盘上拷贝到物理内存中,如果内存已经满了,没有空地方了,那就找一个页覆盖,当然如果被覆盖的页曾经被修改过,需要将此页写回磁盘

总结
每个进程都有4G内存空间,这个4G空间为虚拟内存,当进程访问数据时。页表记录哪些逻辑地址(物理内存+虚拟内存)在物理内存上哪些不在,页表的每一个表项分两部分,第一部分记录此页是否在物理内存上,第二部分记录物理内存的地址(如果在的话),当进程访问某个地址时,先看页表,如果发现不在物理内存中则缺页异常,则把进程所需的数据从磁盘上拷贝到内存中,如果内存已满,则找一个页覆盖,当然此页若已被更改与磁盘中的不一致,则要将此页写会磁盘。

优点:
1.既然每个进程的内存空间都是一致而且固定的,所以链接器在链接可执行文件时,可以设定内存地址,而不用去管这些数据最终实际的内存地址,这是有独立内存空间的好处
2.当不同的进程使用同样的代码时,比如库文件中的代码,物理内存中可以只存储一份这样的代码,不同的进程只需要把自己的虚拟内存映射过去就可以了,节省内存
3.在程序需要分配连续的内存空间的时候,只需要在虚拟内存空间分配连续空间,而不需要实际物理内存的连续空间,可以利用碎片。


原文:http://www.cnblogs.com/dyllove98/archive/2013/06/12/3132940.html

相关文章

  • Linux 内存管理 应用篇

    1、物理内存和虚拟内存 物理内存:物理内存就是系统硬件提供的内存大小,是真正的内存 虚拟内存:为了满足物理内存的不...

  • linux io与zero copy

    1. 物理内存与虚拟内存 1.1 物理内存 物理内存指通过物理内存条而获得的内存空间。 1.2 虚拟内存 虚拟内存...

  • linux 虚拟内存的作用?

    虚拟内存可以用来管理物理内存,进程直接和虚拟内存进行打交道而不是物理内存,为什么这样设计? 什么是虚拟内存? 虚拟...

  • 你不知道的内存管理

    抓主线,三个点: 虚拟内存组织 虚拟内存和物理内存的转换 物理内存组织 虚拟内存组织 平时在进程中,所谓的内存地址...

  • iOS 中的虚拟内存和物理内存

    iOS 中的虚拟内存和物理内存 1. 虚拟内存和物理内存 1.1 起源 在早期的计算机中我们使用的都是物理内存。 ...

  • iOS虚拟内存系统

    内存分为虚拟内存(virtual memory)和物理内存(resident memory)。物理内存 指的是设备...

  • 内存

    虚拟内存、物理内存

  • 什么是物理/虚拟/共享内存——Linux内存管理小结一

    物理内存和虚拟内存到底有什么区别? 提到内存,我们会想到经常接触的三个词:虚拟内存、物理内存、共享内存。它们分别...

  • 25用户态内存映射

    mmap 将虚拟地址空间映射到物理内存 匿名映射,即虚拟内存和物理内存直接映射文件映射,将文件映射到虚拟内存ima...

  • Android内存管理机制

    Linux 的虚拟内存、物理内存、磁盘 为什么要有虚拟内存的概念 进程创建时,会分配4G的虚拟内存,如果分配物理内...

网友评论

      本文标题:物理内存和虚拟内存

      本文链接:https://www.haomeiwen.com/subject/huhflttx.html