程序是怎么运行起来的

  1 我们用c语言写一个exe程序,双击就可以运行,它是怎么运行起来的呢?

实际上,我们写的exe程序保存在硬盘上,双击运行程序的时候操作系统会把保存在硬盘上的数据复制到内存。为什么?因为CPU被设计成只能从内存中读取数据和指令。

为什么这么设计CPU?因为为了运行速度,在读写速度上,内存是远高于硬盘的,为了不拖累CPU的高速度,操作系统运行程序时先把数据复制到内存。

 

2 谁把硬盘上的数据复制到内存?

这个程序叫做加载器。Windows平台上就是Windows加载器。

 

3 我的电脑内存8G,我运行了5个程序,这5个程序共需要占12G的内存空间,如果程序运行前都需要把数据加载到内存,当前程序需要的内存超出了电脑内存上限,为什么程序还是正常运行?

  这涉及到虚拟内存的概念,Windows上叫虚拟内存,Linux上叫交换空间。

操作系统是这么做的,当程序运行需要的空间大于内存容量时,会将内存中暂时不用的数据再写回硬盘,需要这些数据时再从硬盘中读取,读取同时把另外一部分暂时不用的数据写回硬盘。

由此可见,内存小,硬盘读取速度低都是影响电脑运行速度低的重要原因

 4 虚拟内存

  Windows上作为内存使用的一部分硬盘空间叫做虚拟内存。虚拟内存在硬盘上其实就是为一个硕大无比的文件,文件名是PageFile.Sys,通常状态下是看不到的。必须关闭资源管理器对系统文件的保护功能才能看到这个文件。虚拟内存有时候也被称为是“页面文件”就是从这个文件的文件名中来的。

posted on 2019-01-02 16:45  锋邢天下  阅读(966)  评论(0编辑  收藏  举报

导航