假设我有两个进程 p1,p2 作为我的应用程序的一部分运行。
假设 p1 正在运行,最初执行函数 f1(),然后 f1() 调用 f2()。随着 f2() 的调用,进程 p2 开始执行
我想确认的是:- 1)我们是否为不同的进程提供单独的堆栈?
2)我们是否为不同的进程提供单独的堆?或者不同的进程共享相同的堆?
3)众所周知,对于 32 位操作系统,每个进程的虚拟内存大小为 4GB。那么,对于每个具有 4GB 作为虚拟内存的进程,这 4GB 都会被分区吗进入堆、栈、文本、数据
谢谢。
最佳答案
1)是的,每个进程都有自己的堆栈。
2)是的,每个进程都有自己的堆。
3) 我认为您无法获得整个 4GB。其中一些是为内核内容保留的。
关于memory - 堆/栈和多进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1952019/