zoukankan      html  css  js  c++  java
  • 程序是怎么运行起来的

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

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

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

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

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

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

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

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

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

     4 虚拟内存

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

  • 相关阅读:
    C#------对SQLServer进行简单的增,删,改,查
    WinForm------点击Control弹出MessageBox
    WinForm------窗体初始化位置的显示
    WinForm------GridControl的部分属性介绍
    C#------编码规范
    vs------安装window net.framework 出现严重错误解决方法
    jsp------实现MD5加密
    jquery------捕获异常处理
    jquery------显示加载的js时出现中文乱码解决方法
    sublime3 常用功能总结
  • 原文地址:https://www.cnblogs.com/fengxing999/p/10209421.html
Copyright © 2011-2022 走看看