计算机系统是由硬件和系统软件组成,他们共同工作来运行应用程序,这本书的目的就在于帮助人们理解·当系统在运行hello程序时,系统发生了什么以及为什么会这样,换句话说,当运行简单程序hello时,整个电脑系统从应用程序,操作系统,缓存设备,等等,在这个程序运行的过程中做了什么,以及为什么会这样。
1.编译系统
将源文件转化为可执行目标文件的过程。即将c语言转化为计算机能够理解和执行的语言系统汇编语言,形成可执行目标文件。
主要有四部分组成:预处理器,编译器,汇编器,链接器。
-
预处理阶段:根据字符#开头的命令,修改原始的c程序。
-
编译阶段:将c语言转化为汇编语言
-
汇编阶段:汇编器(as) 将.s 文件翻译成机器语言指令,并将其打包成可重定位目标程序的格式。并将结构保存在.o
-
链接阶段: 将会把一个工程中所有的.o文件链接合并成一个可执行目标文件,可以被加载在内存中,由系统运行。
2 硬件组成
计算机硬件系统主要有总线,I/O设备,主存和处理器组成。
- 总线:贯穿整个系统的一组电子管道
作用:携带信息字节并负责在各个组建之间传递。 - I/O设备:系统和外部世界的连接通道。通过控制器或适配器与总线相连。
常见的I/O设备:作为用户输入的键盘和鼠标,作为用户输出的显示器,用来长期存储数据和程序的磁盘。 - 主存:物理结构,一组动态随机存取存储器(DRAM),逻辑结构:一个线性的字节数组。
作用:用来存放数据和程序。 - 处理器:CPU,一个大小为一个字的存储设备,即程序计数器
作用:解释或执行存储在竹村中的指令。CPU常见操作:加载,存储,操作,跳转。
运行hello程序的步骤:键盘读入命令到寄存器中,再存到主存中。按回车后通过DMA将hello文件和数据加载到内存中。加载完成后,CPU开始执行hello程序,将输出的数据复制到显示设备。
3 缓存设备
存储器结构层次的主要思想是:上一层存储器作为第一层存储器的高速缓存。
4.操作系统管理硬件
操作系统可以看成应用软件和硬件之间的一层软件。操作系统有两个基本功能:1)防止硬件被失控的应用程序滥用。2)向应用程序提供简单一致的机制来控制复杂而又通常大相径庭的低级硬件设备。
操作系统的三个抽象:文件是对于I/O设备的抽象,虚拟内存是对于程序存储器的抽象,进程是对于以后个正在运行的程序的抽象。 - 线程和进程
进程:是操作系统对一个正在运行的程序的抽象,多个进程并发运行,一个CPU会在多个进程间切换,这种机制称为上下文切换。
内核:操作系统代码常驻主存的部分,是系统管理全部进程所用的代码和数据结合的集合。
线程:一个进程有多个线程组成,共享进程的代码和全局数据,。 - 虚拟内存
虚拟内存:为每个进程提供一个假象,即每个进程都在独立地使用主存。每个进程看到的内存是一致的,称为虚拟地址空间。图中地址是从下往上增大的。
主要思想是:把一个进程虚拟内存的内容存储在磁盘上,然后用主存作为磁盘的虚拟内存
主要有:程序代码和数据,堆,共享库,用户栈,内核虚拟存储器。
- 网络通信
互联网的应用让我们将系统不仅仅看作为一个孤立的软件和硬件的集合体,而是基于同一互联网下的整体,是一种特殊的I/O设备。 - 并发和并行
并发指同时具有多个活动的系统,并行指利用并发使系统运行的更快。
¥¥备注: