关于物理内存分配疑问

关于物理内存分配疑问

一个进程就分配4g虚拟内存,假设打开很多进程,为啥就能保证物理内存是够用的呢?
假设我一个进程就消耗满4g的虚拟内存,那为啥映射到物理内存的时候可以并不需要4g的物理内存就可以正常运行程序呢?

正在回答

登陆购买课程后可参与讨论,去登陆

4回答

不是所有都会映射到物理地址,很多变量都是到运行到对应的位置才分配内存的,所以操作系统并不会一开始就映射所有的空间,除非你全部是全局变量或者静态变量,那样肯定比较占空间

  • 我想跑路 提问者 #1

    那操作系统会限制我们运行进程的上限吗?

    2022-10-22 14:55:12
  • 无__名 回复 提问者 我想跑路 #2

    内存占完了,在运行肯定会有问题哈,资源用完了,自然就是进程上限

    2022-10-22 14:56:46
  • 我想跑路 提问者 回复 无__名 #3

    好的明白了。就是相当于没有资源保护机制。资源会被耗尽

    2022-10-22 15:03:50
无__名 2022-10-22 14:55:38

当然物理内存是有极限的,当你开的进程足够多,肯定也会占用完,这时候就会使用虚拟内存,就是将硬盘一部分空间当内存使用

无__名 2022-10-22 14:54:15

不是虚拟内存,而是虚拟地址空间,相当于就是一个地址编号排列

无__名 2022-10-22 14:53:34

所以使用局部变量的好处,就在于内存比较灵活,超过作用域就会释放

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师