计算机系统由硬件和系统软件组成,它们共同工作来运行应用程序。 存储在计算机的文件实际上是由0或1组成的位(bit)序列,8bit组成1字节(Byte)。 在现代计算机系统中都使用ASCII码来表示文本字符,是用唯一的单字节来表示每个字符。只由ASCII码组成的文件称为文本文件,其他所有文件都为二进制文件。
程序是如何运行的?
以下代码由程序员利用编辑器创建的文件叫源程序(源文件),而源程序是无法在系统上直接执行,它需要被其他程序转化为一系列的低级机器语言指令,这些指令按照可执行目标程序的格式打包,并以二进制磁盘文件的形式存放。
#include <stdio.h>
int main()
{
printf('hello, world\n');
}
在Unix系统中,可以采用GCC编译器对C语言进行编译,形成可执行目标程序。而这个编译过程分为4个阶段:预处理器,编译器,汇编器和链接器。
系统的硬件组成
系统的硬件由总线,I/O设备,主存和处理器组成。
- 总线:贯穿系统的一组电子管道,携带字节信息并负责在各个部件间传递。
- I/O设备:系统与外部的联系通道,例如键盘,鼠标,显示器,磁盘。
- 主存:一个临时存储设备,用来存放执行程序和程序处理的数据。
- 处理器:中央处理单元(CPU)是解释执行存储在主存中指令的引擎。其核心是一个字长的寄存器,称为程序计数器(PC),任何时候,PC都指向主存的一条机器语言指令。
高速缓存的重要性
一个程序的运行一般是将磁盘中的代码和数据复制到主存中,再将主存的代码和数据复制到寄存器中,寄存器处理完毕后,若需要显示,则再从寄存器文件中复制到显示设备,最终显示在屏幕上。所以系统花费大量的时间进行信息的挪动,这个就需要设置高速缓存。
存储设备的层次结构
存储器层次结构的主要思想是一层上的存储器作为低一层存储器的高速缓存。即寄存器是L1的高速缓存,依次类推。
操作系统管理硬件
操作系统有2个基本功能:
- 防止硬件被失控的应用程序滥用
- 向应用程序提供简单一致的机制来控制复杂而又通常大相径庭的低级硬件设备
这2个基本功能由进程,虚拟存储器和文件来实现。
重要主题
并发:指一个同时具有多个活动的系统
并行:指用并发使一个系统运行更快