OS - 用户堆栈 - 不是真正的 4096 可用内存
OS - User stack - not really 4096 of usable memory
有人可以确认当我们说一个应用程序有 4096 字节的堆栈时,它实际上不能使用所有这些 space 因为有用于在应用程序之间切换的内存(trapframes,...)通常位于堆栈的顶部。
这 space 可能取决于不同的 OS 实现。
我说得对吗?
谢谢
1) 4096 现在是一个很小的堆栈。
2) 你是说对应用程序可用吗?
当您到达 "your" 代码(主要代码,无论什么)时,堆栈将已经有许多调用帧(占用您的 4096 字节)。通常,在顶部,有一个框架来处理返回操作系统。然后可能有用于设置库和异常处理程序的框架。这些天通常有一个带有命令行参数的框架。
所有这些都吃进了堆栈。
有人可以确认当我们说一个应用程序有 4096 字节的堆栈时,它实际上不能使用所有这些 space 因为有用于在应用程序之间切换的内存(trapframes,...)通常位于堆栈的顶部。
这 space 可能取决于不同的 OS 实现。
我说得对吗?
谢谢
1) 4096 现在是一个很小的堆栈。 2) 你是说对应用程序可用吗?
当您到达 "your" 代码(主要代码,无论什么)时,堆栈将已经有许多调用帧(占用您的 4096 字节)。通常,在顶部,有一个框架来处理返回操作系统。然后可能有用于设置库和异常处理程序的框架。这些天通常有一个带有命令行参数的框架。
所有这些都吃进了堆栈。