然后我使用“uname -m”命令检查了进程可以访问多少内存,结果显示为“不限制”。
既然操作系统和CPU都是64位的,并且存在交换分区,那么操作系统应该已经使用了虚拟内存,即[ > 3.4GB + yGB来自交换空间]的总量,只有当进程需要更多的内存时,才会被杀死。
所以,我有以下问题:
- 在64位机器上,理论上进程可以访问多少物理内存?我的答案是2^48字节。
- 如果物理内存不足2^48字节,则操作系统应该使用虚拟内存,对吗?
- 如果上述问题的答案是肯定的,那么操作系统应该使用SWAP空间,为什么它没有使用,而是直接杀掉了进程?我认为我们不必在编写程序时使用某些特定的系统调用来实现这一点。