Abh*_*nav 5 operating-system kernel virtual-memory
虚拟内存是现代操作系统目前使用的一个很好的概念.但我一直在回答一个问题,对此并不确定.这是一个问题:
假设在一台机器上只运行几个应用程序,这样系统的物理内存就超过了所有应用程序所需的内存.为了支持虚拟内存,操作系统需要做很多工作.因此,如果运行的应用程序都适合物理内存,真的需要虚拟内存吗?
(此外,一起运行的应用程序将始终适合RAM.)
即使所有应用程序的内存使用量都适合物理内存,虚拟内存仍然很有用.VM可以提供以下功能:
main()的地址为0x0800 0000)虽然在这种情况下并不严格需要,但虚拟内存不仅仅是提供比实际可用(交换)更多的内存.例如,它有助于避免内存碎片(从应用程序的角度来看),并且取决于动态/共享库的实现方式,它可以帮助避免重定位(重定位是指动态链接器需要调整库或可执行文件中的指针时刚加载).