一、信息就是位+上下文
a在内存中存储的是00000000000000000000000000001010,以整形的方式解读他是10,但是以浮点数的方式解释,他就不是10了,因此上下文不同,即使内存中存储的一段相同的二进制位,解读方式也不一样。
(一)、源程序(源文件)(hello.c)
#include<stdio.h>int main(){ printf("Hello world\n"); return 0;}
(二)、c语言优点
二、程序被其它程序翻译成不同的格式
GCC编译器驱动 hello.c--->可执行目标文件hello
三、了解编译器如何工作的好处
四、处理器读并解释存储在内存中的指令
(一)、系统的硬件组成
1.总线
作用:传输字(1个字4个字节(32位),1个字8个字节(64位))
2.IO设备
长期存储数据和程序的磁盘驱动器(磁盘),最初的可执行目标程序hello就储存在这里。
3.主存
4.
4.1处理器(中央处理单元,CPU)
1.CPU的核心是寄存器(或者叫PC计数器)(实质上是大小为1个字(4个字节)的存储区域)
2.任何时刻PC都指向主存中的某条机器语言,PC中存储的是某一条指令的地址,直到系统断电前,他都不断地执行着处理器要他执行的指令,PC不断更新指向下一条指令,下一条指令与刚刚执行的指令不一定是相邻的。
- 1.加载:把一个字节或者一个字从主存复制到寄存器,以覆盖寄存器原来的内容。
- 2.存储:把一个字节或者一个字从寄存器复制到主存的某个位置,以覆盖寄原来的内容。
- 3.操作:把两个寄存器的内容复制到ALU(算数/逻辑单元)中,ALU对这两个字作算数操作,将运算结果放到原来的一个寄存器中,覆盖原来寄存器中的内容。
- 4.跳转:从指令中拿一个字,复制到PC中,覆盖PC中原来的值。
4.2hello程序的运行过程
程序写完保存后,就是被存储在了硬盘中,运行的时候,从硬盘中把信息先复制到主存,再从主存复制到寄存器,再从寄存器通过IO总线输出到显示器上面
2.根据机械原理,较大的存储设备要比较小的存储设备运行得慢。
五、高速缓存至关重要
为了解决寄存器内存小,主存访问速度慢等等这些问题,系统设计者采用了更小更快的存储设备:高速缓存存储器(简称高速缓存)
那么,有了高速缓存后,程序写完代码保存,即就是被存储在了硬盘中,运行的时候,从硬盘中把信息先复制到主存,再从主存复制到寄存器或者高速缓存存储器,再从寄存器通过IO总线输出到显示器上面。
我们得到一个重要结论:程序员可以利用高速缓存将程序的性能提高一个数量级。
六、存储设备形成层次结构
在这张图中,本层次的存储器可以作为低一层次存储器的高速缓存,例如L1是L2的高速缓存,L2是L3的高速缓存,L3是主存的高速缓存。