文章标内存到底是什么东西,到底是如何分配的?

*问题:由于程序都是在内存中运行的。那一个非常长大的游戏,比如说魔兽世界,有10多G,电脑内存才2G,那么游戏怎么还可以玩,程序在电脑内存中是怎么运行的?*
**答:其实不是很复杂。虽然程序很大,但并不是所有的东西都要载入内存,也并不是同时载入内存的。
这样说吧,其实就是个状态切换、控制权的切换和资源切换的问题。
当你打开电脑,进入windows,系统初始化完成后,电脑处于一个状态:等待你做操作。
当你点击魔兽世界的快捷键的时候,操作系统根据你的操作找到对应的可执行文件,将那个可执行文件载入系统内存。然后开始运行这个程序(注意每一个可执行文件都是按照某种操作系统规定的格式写的。)。在这个时候,我们用非专业的话来说,实际上电脑的控制权就交给了这个可执行程序。那么这个可执行程序比如魔兽世界程序就开始控制电脑进行一些游戏的初始化工作,比如运行游戏引擎,读取登陆界面所需的图片资源载入内存等等。
魔兽世界初始化完成后,电脑又处于一个状态:等待你做操作。
你输入账号密码点击按钮登陆游戏的时候,程序将你输入的东东加密通过网络传到服务器进行验证,服务器会回传一些数据回来,程序接收到这些数据后,验证了你的身份等级地图等信息后,开始读取一些你电脑上的文件,更新游戏引擎状态,向内存载入地图,绘制,向内存载入音乐,播放等等。在这个时刻,之前载入的登录界面所需的图片资源和声音等等就可以从内存中清除掉了。然后就是你操作,程序接收到你的操作,进行相应的处理,每次你切换场景的时候,之前场景用到的一些内存资源就可以被释放了,这样你在玩的过程中,就只用得到当前用到的那些内存了,基本就是这个样子了。
不管怎样,在同一时刻,必须驻留在内存中的只有你当时所在的地图资源音乐资源和必须的游戏引擎等等。

/内存/
计算机的存储器分为内存和外存,也分别称之为主存和辅存。
内存就是主板上的俗称内存条的存储器,外存就是硬盘、软盘、磁带等存储器。

当然CPU是计算机的核心,是计算处理的关键部件。但是谁来使用CPU,则是由操作系统决定的,系统按照程序进程的优先级,分配时间片,每个任务轮流使用CPU,形成多任务机制。

当程序开始运行时,如果内存空间足够大,操作系统会按分页机制,将程序调入内存中。否则,操作系统会分批将程序的部分内容调入内存。由于程序运行的内存需求是动态的,操作系统会有相应的机制将当前不使用或不急需的页面放弃,或者调入新的程序页面。多任务之间的内存页面也会进行相应的调度。这里面有很复杂的内存管理的分配映射机制。

而且,现代操作系统都会使用”虚拟内存”机制,将硬盘的部分空间,虚拟作为内存来使用,这时就会发生硬盘的频繁IO操作。

所以说:计算机所有程序都是在内存中运行的。只不过,这个内存可能包括虚拟内存。同时也离不开硬盘这样的外存支持。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值