• 载入内存,让程序运行起来


    QQ是怎样运行起来的?

    双击QQ图标,操作系统就会知道你要运行这个软件,它会在硬盘中找到你安装的QQ软件,将数据(安装的软件本质上就是很多数据的集合)复制到内存。对!就是复制到内存!QQ不是在硬盘中运行的,而是在内存中运行的。

    为什么呢?因为内存的读写速度比硬盘快得多!

    对于读写速度,内存>固态硬盘>机械硬盘。机械硬盘是靠电机带动盘片转动来读写数据,内存条是通过电路来读写数据,电机的转动速度肯定没有电的传输速度(几乎是光速)快,虽然固态硬盘也是通过电路来读写数据,但是因为与内存的控制方式不一样,速度也不急内存。

    所以,不管试运行QQ还是编辑Word文档,都是先将硬盘上的数据复制到内存,才能让CPU来处理,这个过程就叫做载入内存(Load into Memory)。完成这个过程需要一个特殊的软件,这个程序就叫做加载器(Loader)

    CPU直接内存打交道,它会读取内存中的数据进行处理,并将结果保存到内存中。如果需要保存到硬盘,才会将内存中的数据复制到硬盘!

    例如:打开Word文档,输入一些文字,虽然我们看到的不一样了,但是硬盘中的文档没有改变,新建的文字暂时保存到了内存,Ctrl+S才会保存到硬盘中。因为内存断电后会丢失数据,所以如果你编辑完Word文档忘记保存就关机,那么你将永远无法找回这些内容。

    虚拟内存

    如果我们运行的程序较多,占用的空间就会超过(内存条)容量,例如计算机的内存容量为2G,却运行着10个程序。这10个程序共占用3G空间,也就意味着需要从硬盘中复制3G数据到内存中,这显然是不可能的。

    操作系统(Operating System,简称OS)为我们解决了这个问题:当程序运行需要的空间大于内存容量是,会将内存中暂时不用的数据再写回硬盘;需要这些数据时再从硬盘中读取,并将另外一部分不用的数据写入硬盘。这样,硬盘中就会有一部分空间用来存放暂时不用的数据,这一部分空间叫做虚拟内存(Virtual Memory)。

    3G-2G=1G,上面的情况需要在硬盘中分配1G的虚拟内存。

    硬盘的读写速度比内存慢很多,反复交换数据会消耗很多时间,所以如果你的内存太小,会严重影响计算机的运行速度。

    总结:CPU直接从内存中读取数据,处理完成后将结果再写入内存。

      

  • 相关阅读:
    rs
    stm32f767 usoc3
    stm32f767 RTT 日志
    stm32f767 标准库 工程模板
    stm32f767 HAL 工程模板
    docker tab 补全 linux tab 补全
    docker anconda 依赖 下载 不了
    docker run 常用 指令
    linux scp 命令
    Dockerfile 常用参数说明
  • 原文地址:https://www.cnblogs.com/YuanBo-China/p/10733031.html
Copyright © 2020-2023  润新知