0

(在 Linux 64 位上测试)

如果您查看/proc/<pid>/maps(作为系统中当时运行的任何进程的进程标识符)的内容,您将看到分配给进程的虚拟空间在 and 之间555xxxxxxxxx7FFxxxxxxxxx而不是在000000000000and之间FFFFFFFFF000。为什么是这样?

我已经了解,一个进程的虚拟空间是 64 位系统中的 48 位(在《计算机体系结构:定量方法》一书中阅读。Hennessy 和 Patterson。第 118 页),但如果它只使用它55Fxxxxxxxxx7FFxxxxxxxxx它之间的空间意味着仅使用或多或少的 45 位。为什么用户空间比我想象的要小?

4

0 回答 0