载入内存,让程序运转起来。

如果你的电脑上安装了QQ,你希望和好友聊天,会双击QQ图标,打开QQ软件,输入账号和密码,然后登录就可以了。

那么,QQ是怎么运行起来的呢?

首先,有一点你要明确,你安装的QQ软件是保存在硬盘中的。

双击QQ图标,操作系统就会知道你要运行这个软件,它会在硬盘中找到你安装的QQ软件,然后复制到内存。对!就是复制到内存!QQ不是在硬盘中运行的,而是在内存中运行的。

为什么呢?因为内存条的读写速度比硬盘快很多。

对于读写速度,内存 > 固态硬盘 >
机械硬盘。你想呀,机械硬盘是靠电机带动盘片转动来读写数据的,而内存条通过电路来读写数据,你丫的,电机转的再快有电的速度(光速)快吗。虽然固态硬盘
也是通过电路来读写数据,但是因为与内存的控制方式不一样,速度也不及内存。

所以,不管你运行QQ还是编辑Word文档,都是先将硬盘上的数据复制到内存,才能让CPU来处理,这个过程就叫作“载入内存”。

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

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

所以,如果你的内存太小,会严重影响计算机的运行速度,即使CPU给力,也不会有大的改观。

例如,你的计算机只有1G内存,操作系统自身占用几百M内存,如果你打开的软件过多,运行它们需要很大的内存,就会超过1G。没办法,操作系统只能将内存
中暂时不用的数据保存到硬盘,用到时再从硬盘中读取,同时再将内存中的其他数据写入硬盘。因为硬盘的读写速度慢,这样频繁的切换会严重影响计算机运行速
度,经常出现“卡死”现象。

值得庆幸的是,目前市面上很少有1G内存的计算机了。

总结起来,CPU、内存、硬盘和主板的关系如下:


图 0-9   CPU、内存、硬盘和主板的关系


转自:http://see.xidian.edu.cn/cpp/html/2838.html

时间: 2024-09-27 13:31:33

载入内存,让程序运转起来。的相关文章

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

如果你的电脑上安装了QQ,你希望和好友聊天,会双击QQ图标,打开QQ软件,输入账号和密码,然后登录就可以了. 那么,QQ是怎么运行起来的呢? 首先,有一点你要明确,你安装的QQ软件是保存在硬盘中的. 双击QQ图标,操作系统就会知道你要运行这个软件,它会在硬盘中找到你安装的QQ软件,将数据(安装的软件本质上就是很多数据的集合)复制到内存.对!就是复制到内存!QQ不是在硬盘中运行的,而是在内存中运行的. 为什么呢?因为内存的读写速度比硬盘快很多. 对于读写速度,内存 > 固态硬盘 > 机械硬盘.机

内存管理--程序在内存中的分布

在多任务操作系统中的每一个进程都运行在一个属于它自己的内存沙盘中.这个沙盘就是虚拟地址空间(virtual address space). 1 32位虚拟内存布局 在32位模式下虚拟地址空间总是一个4GB的内存地址块.这些虚拟地址通过页表(page table)映射到物理内存,页表由操作系统维护并被处理器引用.每一个进程拥有一套属于它自己的页表,但是还有一个隐情.只要虚拟地址被使用,那么它就会作用于这台机器上运行的所有软件,包括内核本身.因此一部分虚拟地址必须保留给内核使用: 图 1 这并不意味

在向server发送请求时发生传输级错误。 (provider: 共享内存提供程序, error: 0 - 管道的还有一端上无不论什么进程。

作者:卿笃军 原文地址:http://blog.csdn.net/qingdujun/article/details/36425825 SQL Server 2008 + VS2010 用C#编写的代码,进行数据库还原的时候,出错: 错误内容: 在向server发送请求时发生传输级错误. (provider: 共享内存提供程序, error: 0 - 管道的还有一端上无不论什么进程. 解决方法: 将SQL链接语句构造成例如以下: string strLink = @"server=.;datab

在向服务器发送请求时发生传输级错误。 (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程。

作者:卿笃军 原文地址:http://blog.csdn.net/qingdujun/article/details/36425825 SQL Server 2008 + VS2010 用C#编写的代码,进行数据库还原的时候,出错: 错误内容: 在向服务器发送请求时发生传输级错误. (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程. 解决方法: 将SQL链接语句构造成如下: string strLink = @"server=.;database=Data

SQL Server 2005 sa登录失败。已成功与服务器建立连接 但是在登录过程中发生错误。 provider 共享内存提供程序 error 0 管道的另一端上无任何进程。

SQL Server 2005 Express版 用户 'sa' 登录失败.该用户与可信 SQL Server 连接无关联.提示错误:已成功与服务器建立连接 但是在登录过程中发生错误. provider 共享内存提供程序 error 0 管道的另一端上无任何进程. 解决方案: 1.首先选中服务器(右键)->属性->安全性->服务器身份验证修改为"SQL SERVER和WINDOWS身份验证模式"2.其次展开服务器下面的"安全性"文件夹->登陆

C# 内存运行程序 / CRTMemExecute

内存运行程序或称傀儡程序也可以称外壳程序中运行你的程序, 简单的摆在程序被创建后强制挂起 并卸载原程序的原有区.写 入新的程序的代码 在重新执行.它如果是光明面可以保护程序, 如果黑暗面便是一个纯病毒木马 最好选择在系统进程中运行,如cmd,svchost它只是一个可以 直接穿透防火墙就是一个非常诱人的条件.更别谈svchost连杀 软也不敢轻易动手. 如果是在QQ自身进程运行,你可以制作一个与QQ相同的界面 在你的程序写各种各样的恶意代码.窃取QQ账号密码及监视 用户操作及QQ窗体上所有的信息

Java内存管理-程序运行过程(一)

勿在流沙住高台,出来混迟早要还的. 做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 相信在做Java开发的伙伴一定知道 JVM(Java Virtual Machine(Java虚拟机)!本系列会开启对JVM相关的知识的探索和总结,让我们一起踏入JVM的学习之旅中,去了解和发现更加精彩的Java世界! 正如奥古斯特·罗丹 说过:世界上不是缺少美,而是缺少发现美的眼睛.Java的世界也是如此! 本文地图: 1.什么是程序 在计算机领域当中,程序就是为了能够让计算机执行

Windows 程序启动性能优化(先载入EXE,后载入DLL,只取有限的代码载入内存,将CPU的IP指向程序的入口点)

一.重定位链接时重定位:目标文件一般由多个节组成,编译器在编译每个目标文件时一般都是从0地址开始生成代码.当多个代码节合成一个代码段时,需要根据其在最终代码段中的位置做出调整.同时,链接器需要对已经解析的符号分配运行时地址.这个过程就是重定位. 加载时重定位:程序中可能调用了DLL,由于EXE是最先被加载的,所以一般都能加载到其想要的内存地址上:而DLL的加载一般在EXE之后,就需要对DLL中的地址进行重定位了. 二.程序的启动过程WIN32程序启动过程包括: (1)操作系统把程序加载到内存,并

c++ 载入内存中dll ,以及内存注入

用c++ 许多代码都得自己写, 这里是我自己修改的一个内存载入的一个封装库 , c++ 的程序员可以直接拿来用 特点如下: 直接在内存中载入,无磁盘占用 支持加壳保护的dll , 平时用的最多的vmp ,其它壳子还请自己测试 无模块载入, 因为重写了loadlibary ,如需要请自己注册 支持注入到目标进程,前提请先使用相应权限打开目标 对原代码的修改如下: 使用内联汇编将原 c/c++的库调用 代替, 使得 注入代码可行 支持直接使用资源加载和注入 支持加载exe ,请自行 hook 某些函