【发布时间】:2019-09-06 00:24:49
【问题描述】:
我是 Linux 和计算机架构的新手,只是一些关于进程和线程如何与虚拟内存和物理内存 RAM 相关的问题。以下是我的问题。
Q1-当有两个进程(进程A和进程B)同时运行时,如果进程A现在正在运行,进程B的状态如寄存器值,堆对象等必须被推送到磁盘上存储(虚拟内存) ,而当下一次上下文切换发生时,进程B将从磁盘“恢复”到RAM,进程A的状态将被推送到磁盘,我的理解是否正确?
Q2- 如果我在 Q1 中的理解是正确的,为什么不将所有进程也保存在 RAM 上呢?通常我们有 16gb、32gb 之类的大 RAM,如何将每个进程的状态存储在 RAM 上,当进程太多并且 RAM 即将耗尽时,将进一步进程的状态存储到磁盘?
Q3-线程怎么样?如果有多个线程(例如线程A和线程B),当线程A运行时,线程B的状态是否也会被推送到磁盘存储?
【问题讨论】:
标签: linux memory virtual-memory