程序抽象流程
在C语言中
1. C预处理器(cpp)扩展源代码,插入所有用#include 命名指定的文件,并扩展所有用#define 声明指定的宏。
2. 编译器(ccl)产生两个源代码的汇编代码,名字命名分别为p1.s
3. 汇编器(as)将汇编代码转化为二进制目标代码为p1.o(目标代码是机器代码的一种形式,包含所有指令的二进制表示,但还没有填入地址的全局值)
4. 链接器(ld)将目标代码文件与实现库函数(例如printf)的代码合并,并产生最终的可执行代码文件p(可执行文件是机器代码的第二种形式,也就是处理器执行的代码格式)
文件:是对I/O的抽象
虚拟存储器:是对程序存储器的抽象
指令集结构:是对处理器的抽象
进程:是对一个正在运行的程序的抽象
虚拟机:是对整个计算机的抽象(操作系统、处理器、程序等)
虚拟机 | |||
| 进程 | ||
指令集结构 | 虚拟存储器 | ||
|
| 文件 | |
操作系统 | 处理器 | 主存 | I/O设备 |