编译系统如何工作
- 预处理器 | 编译器 | 汇编阶段 | 链接器
- 预编译:根据 字符 # 开头的命令
- 编译阶段:生成汇编语言
- 汇编阶段:翻译成 机器码指令,可重定位目标程序,将结果保存在二进制文件
- 链接阶段:合并乘可执行目标文件(单独预编译好的 printf.o 文件)
- 了解编译系统如何工作:① 知道怎么写代码会得到更优的性能 ② 理解链接时的错误 ③ 避免一些安全的漏洞
计算机硬件入门
- 总线:携带信息字节并负责在各个部件之间的传递,设计出传送定长的字节快(word字),字长在32位系统下4个字节,64位则为8个字节
- IO设备:联系系统和外界世界的联系通道(键鼠显示器等),每个设备都由一个 控制器或者适配器 与IO总线相连,控制器一般为IO设备本身或是系统主印刷电路板上的芯片,适配器是插在主板上插槽上的卡
- 主存:临时存储设备,用于存放程序运行时用来存放程序和数据,一块 动态随机存取芯片 DRAM芯片,逻辑上就是一个线性的字节数组,每个字节都有唯一的字节构成
- 处理器:中央处理单元CPU 解释或执行 存储在 主存中指令的 引擎,核心是一个 大小为一个字的存储设备寄存器 程序计数器 PC,每个时刻都指向主存的某条机器语言指令,指令集架构,算术逻辑单元 ALU
- 高速缓存:
- 存储设备的层次结构
- 操作系统管理硬件:1、防止硬件被失控的应用程序滥用;2、向应用程序提供简单一致的机制来控制复杂而通常大不相同的低级硬件设备(进程 + 虚拟内存 + 文件)
- 进程:是操作系统对一个正在运行的程序的一种抽象,进程之间 交错执行的机制 成为 上下文切换
- 操作系统 保存跟踪 进程运行所需的所有状态信息,又叫上下文(PC寄存器等的值,主存内容)
- 并发机制
- 一个进程 由 多个执行单元(线程)组成,多线程之间比多进程之间 更容易共享数据 且更加高效!
- 虚拟内存:虚拟地址空间,用户栈,实现函数调用;基本思想:把进程虚拟内存的内容存储在磁盘上,然后你有主存作为磁盘的高速缓存!
- 文件:字节序列,所有IO设备都可以看作文件
- 系统之间的网络通信:
- 系统是 硬件和系统软件互相 交织的集合体,需要共同协作
- Amdahl 定律:当对系统的某个部分进行加速,其对整个系统的性能影响 取决于该部分重要性程度和加速程度!
- 并发和并行:计算机做的更多 + 运行的更快
- Concurrency:同时具有·多个活动的系统
- Parallelism:使用并发让系统更快,可以在计算机系统中多个抽象层次中使用,注重结果
- 并行的多个层次:① 线程级并行:超线程又叫 同时多线程(Simultaneous Multi-threading)② 指令级并行:处理器同时处理 多条指令 ③ 单指令多数据并行:SIMD并行
- 计算机中的抽象: