C语言基础之位、字节、字...(2)

在电路里面每一个元器件都可以被看成是一个开关,而开关的有且只有两个状态即开和关,对应于二进制表示我们规定1表示开,0表示关。或者是0表示开,1表示关。但是我们一般说的是前一种规定。1表示开,0表示关。

1个元器件称为1位(1bit)

8个元器件称为1字节(1byte)

16个元器件称为2字节(2byte)

32个元器件称为4字节(4byte)

...

2**10 = 1024

8 * 1024 个元器件就是1024字节(1024byte),简写为1KB;

8 * 1024 * 1024 个元器件就是1024KB,简写为1MB;

8 * 1024 * 1024 * 1024 个元器件就是1024MB,简写为1GB。

单位换算:

1Byte = 8 Bit

1KB   = 1024Byte 

1MB   = 1024KB

1GB   = 1024MB

1TB   = 1024GB

1PB   = 1024TB

1EB   = 1024PB

为什么是以1024为单位量?

这个其实就像1000是10的整数次方一样,1024是2的整数次方,对于程序员就是整数

读写速度,内存 > 固态硬盘 > 机械硬盘

软件运行机制:首先是软件的安装位置肯定是位于硬盘上的,当软件运行时,系统就会将软件相关的数据复制到内存内,这样子CPU才可以进行处理,这个过程就叫作载入内存(Load into Memory)。完成这个过程需要一个特殊的程序(软件),这个程序就叫做加载器(Loader)。

 什么是加载器?

加载器又名载入器(Loader),是操作系统的一部分,负责程序的加载。

具体运行运行过程如下:

加载器是程序运行中不可或缺的一个步骤,加载器会将程序置放在内存(存储器)中,让它开始运行。加载程序的步骤包括,读取可执行文件,将可执行文件的内容写入内存(存储器)中,之后开展其它所需的准备工作,准备让可执行文件运行。当加载完成之后,操作系统会将控制权交给加载的代码,让它开始运作。

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

什么是虚拟内存?

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

操作系统(Operating System,简称 OS)为我们解决了这个问题:当程序运行需要的空间大于内存容量时,会将内 存中暂时不用的数据再写回硬盘;需要这些数据时再从硬盘中读取,并将另外一部分不用的数据写入硬盘。这样, 硬盘中就会有一部分空间用来存放内存中暂时不用的数据。这一部分空间就叫做虚拟内存(Virtual Memory)。
 
3G - 2G = 1G,上面的情况需要在硬盘上分配 1G 的虚拟内存。
 
硬盘的读写速度比内存慢很多,反复交换数据会消耗很多时间,所以如果你的内存太小,会严重影响计算机的运行 速度,甚至会出现”卡死“现象,即使 CPU 强劲,也不会有大的改观。如果经济条件允许,建议将内存升级为 4G, 在 win7、win8、win10 下运行软件就会比较流畅了。
 总结:CPU直接从内存中读取数据,处理完成后将结果再写入内存。

原文地址:https://www.cnblogs.com/iBoundary/p/11715815.html