memory - 堆/栈和多进程

标签 memory memory-management process

假设我有两个进程 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/

相关文章:

java - 为什么在 Android 中使用 Activity 的简单示例会导致内存泄漏?

java - 编写一个java程序来删除同一个java程序中的注释?

linux - 如何检查进程是否仍在 c 中的内核中运行?

linux - Matlab 图内存未释放

objective-c - 谁拥有自动释放对象?

c# - Visual C# 方法调用使用过多内存?

c - 传递结构指针的问题和 "conflicting types"错误

linux - Linux 上的 SetPriorityClass 等价物

c++ - 基于文件的内存池——这可能吗?

iphone - PerformSelector In后台泄漏在设备上