guotong1988
运动码农
采纳率36.6%
2015-01-05 05:26 阅读 1.8k

有几百个进程却只有几G的内存,求解释这几百个进程如何共享内存的?

我感觉每个进程“占的内存”加起来应该大于物理内存,,
怎样的内存管理和调度可以让这几百个进程看起来是一块运行的啊?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

6条回答 默认 最新

  • 已采纳
    jiangsheng 蒋晟 2015-01-09 04:48

    同一个物理页可以映射到不同进程的地址空间,比如如果多个版本的程序都用同一个Visual C++运行时的DLL,那么只读数据是共享的。一个进程的私有内存才是说占就真占的。

    另外,系统会把暂时不用的内存(比如窗口正在被最小化的程序的内存)交换到磁盘上的虚拟内存交换文件,直到下次程序想起来用(比如窗口正在被还原)的时候再交换回来。一个机器上的可用内存应该是对操作系统可见的物理内存(32位的Windows因为地址空间限制一些内存可能用不了)+虚拟内存。

    点赞 评论 复制链接分享
  • bdmh bdmh 2015-01-05 05:33

    你怎么认为,几百个进程,就不可能是几个G呢

    点赞 评论 复制链接分享
  • q107770540 兔子党-督察 2015-01-05 05:53

    你的机器还有 虚拟内存的哦

    点赞 评论 复制链接分享
  • oyljerry oyljerry 2015-01-05 07:02

    虚拟内存概念,每个进程都有2G的虚拟内存
    但物理内存是共享,OS给你通过页面等做了映射

    点赞 评论 复制链接分享
  • u013696015 g07032010299 2015-01-05 07:09

    每一个进程占用一个很短的时间段,操作系统在不同的时间段处理不同的进程,切换的非常快,看上去就像同时运行一样。

    点赞 评论 复制链接分享
  • wangyaninglm shiter 2015-01-07 02:33

    这个你看看深入理解计算机操作系统这个书

    点赞 评论 复制链接分享

相关推荐