📔【深入理解计算机系统】第 1 章:计算机系统漫游
编译系统的四个阶段
预处理:将头文件的内容直接插入到文本
编译:源码到汇编
汇编:汇编指令到机器指令,这时得到的可重定位目标程序还无法执行
链接:将标准库函数所在的预编译文件合入到上一步的程序中,得到最终的可执行文件
系统硬件组成
32 位、64 位也是计算机总线依次传递的字的大小
控制器和适配器:控制器存在硬件上,硬件直接与 I/O 总线相连,在主板内部;适配器:不在主机内部而是通过扩展槽相连到主板,比如网络适配器作为网络 I/O 设备
存储器层次结构
存储器层次结构:上一层的存储器作为第一层存储器的高速缓存。
高速缓存:缓存分为 L1、L2、L3,每一级存储空间更大,访问速度变慢。
缓存主要利用了局部性原理,即程序具有访问局部区域里的数据和代码的趋势。
虚拟地址空间
从下往上依次是:
- 程序代码和数据,也就是声明的变量
- 堆:new 动态分配的变量
- 共享库:动态链接库
- 用户栈:函数调用的栈
- 内核虚拟内存:内核态才能读写
并发与并行
并发:同时能够运行多个活动,即使这些活动是交错运行而不是真正的并行运行
并行:同时执行多个任务,重点在同时
并发的三个层次:
- 线程级并发
- 指令级并行:一条指令执行要多个时钟周期,但是可以并行的在同一个时钟周期里执行不同指令的不同阶段,称为流水线
- 单指令、多数据并行:一条指令可以产生多个可以并行执行的操作
五个抽象概念
- 指令集架构是对实际处理器硬件的抽象
- 文件是对 I/O 设备的抽象
- 虚拟内存是对程序存储器的抽象
- 进程是对正在运行的程序的抽象
- 虚拟机是对整个计算机的抽象
- 版权声明:本文采用知识共享 3.0 许可证 (保持署名-自由转载-非商用-非衍生)
- 发表于 2019-11-18