张赐荣——一位视障程序员。
赐荣小站: www.prc.cx

張賜榮

张赐荣的技术博客

博客园 首页 新随笔 联系 订阅 管理

如果你电脑上装有MSN程序,你希望和好友聊天,会用鼠标点击打开MSN图示,启动MSN软件,输入账户名和密码,然後登录就可以了。
那么,MSN是怎样在你的电脑上运行起来的呢?
装载道内存,让程序运行起来。
首先,有一点你要知道,你电脑上安装的MSN软件是保存在硬盘中的。
双击MSN图示,操作系统就会知道你要运行这个软件,它会在硬盘中找到你安装的MSN软件,将资源(硬盘里的软件本质上就是许多资源数据的集合)拷贝到内存。对!就是拷贝到内存条!MSN不是在硬盘中运行的,而是在内存中运行的。
这究竟是为什么呢?主要是由于内存的读写速度比硬盘快很多。
对於读写速度,内存远远 大于 固态硬盘 更加大于 机械硬盘。机械硬盘是靠电机带动盘片转动来读写资源的,而内存条通过电路来读写资源,电机的转速必定没有电的传输速率快。尽管固态硬盘也是经过电路来读写资源,可是由于与内存的控制方法不一样,速度也远不及内存。
所以,不管是运行MSN或编辑文本文档,都是先将硬盘上的资源拷贝到内存,才能让CPU来处理,这个过程称作载入内存(Load into Memory)。完成这一过程要一个特殊的程序,这个程序就叫做载入器(Loader)。
CPU直接与内存交互,它会读取内存中的资源进行处理,并将结果存入内存。当要保存到硬盘,才会将内存中的资源复制到硬盘。
比如,打开记事本软件,键入一些文字,尽管我们看上去是改变了,实际上硬盘中的文本文件并没有改动,新增的文字暂时保存到了内存,需按Ctrl+S才会保存到硬盘。由于内存断电後会丢失数据,所以假如你编辑完记事本文档忘记保存就关机了,那么你将永久无法找回这些内容。
虚拟内存
若我们运行的程序较多,占用的空间就会超过内存(内存条)容量。例如电脑的内存容量为2G,却运行着20个程序,这20个程序共占用3G的空间,也就意味着需要从硬盘拷贝 3G 的资源到内存,这显然是不可能的。
操作系统(Operating System,简称 OS)为我们解决了此问题:当程序运行需要的空间大於内存容量时,会将内存中暂时不要的资源再写回硬盘;需要这些资源时再从硬盘中读取,并将另外一部分暂时不要的资源写入硬盘。这样,硬盘中就会有一部分空间用来存放内存中暂时用不上的资源。这一部分空间就叫做虚拟内存(Virtual Memory)。
3G - 2G = 1G,以上情况需要在硬盘上分配 1G 的虚拟内存。
硬盘的读写速度比内存慢太多,重复交换资源会消耗许多时间,倘若你的内存太小,会严重影响电脑的运行速度,甚至会出现”卡死“现象,即便CPU微弱,也不会有大的改观。假如经济条件允许,建议增大内存,在 win7、win8、win10 下运行软件就会比较流畅了。

源文:
https://prc.cx/web/archives/7.html

posted on 2022-02-16 22:12  张赐荣  阅读(357)  评论(0编辑  收藏  举报

感谢访问张赐荣的技术分享博客!
博客地址:https://cnblogs.com/netlog/
知乎主页:https://www.zhihu.com/people/tzujung-chang
个人网站:https://prc.cx/