程序的生命周期(以hello.c为例)
Linux:> gcc -o hello hello.c
- 预处理:预处理器根据以
);#
`开头的命令,将头文件等相关内容插入到原程序文本中(
`hello.i
- 编译:编译器预处理结果转换为汇编程序(
);hello.s
- 汇编:汇编器将汇编程序转换为机器语言指令并打包为可重定位目标程序(
);hello.o
- 链接:对于程序中调用的函数对应的预编译后的目标文件,链接器将该文件与程序的目标文件合并生成可执行文件。
系统的硬件组成
总线、I/O设备、主存(DRAM组成)、处理器;
存储器的层次结构
上一层的存储器作为低一层存储器的高速缓存。
操作系统管理硬件
操作系统功能:1.防止硬件被失控程序滥用;2.向程序提供一直的机制来控制复杂的硬件设备。上述功能的实现通过(进程,虚拟内存和文件)来实现。
进程是操作系统对一个正在运行程序的抽象;对每个进程来说都好像在独占的使用硬件。
并发运行则指的是一个进程的指令和另一个进程的指令是交错运行的。操作系统实现这种交错运行的机制被称为上下文切换。
线程:一个进程可以有多个线程组成,每个线程都运行在进程的上下文中,并共享同样的代码和全局数据。
虚拟内存:为每个进程提供一个假象,即每个进程都在独占地使用主存。
todo:加图片
计算机中抽象的概念
文件是对I/O设备的抽象;虚拟内存是对程序存储器的抽象;进程是对一个正在运行程序的抽象;虚拟机是对计算机的抽象。
引用
Computer Systems: A Programmer’s Perspective, 3/E (CS:APP3e)