计算机系统漫游
1.1信息就是位+上下文
程序的生命从一个源程序开始的,该程序通过编辑器创建并保存为文本文件,文件名命为***.c,由0和1组成的位序列。
1.2程序被其他的程序翻译成不同的格式
在Unix系统上,从源文件到目标文件的转化是由编译器驱动程序完成的
unix > gcc -o hello hello.c
gcc编译器读取源文件***.c,并把它翻译成一个可执行的目标文件,执行四个阶段的程序(预处理器、编译器、汇编器和链接器)
1.3编译系统的优点:
1.优化程序性能
2.理解链接时出现的错误
3.避免安全漏洞
1.4处理器读并解释存储在存储器的指令
1.4.1系统的硬件组成
总线:贯彻整个系统的电子管,它携带信息字节并负责各个部件间传递。通常总线被设计成传送定长的字节块,即字。
I/O设备: 即输入/输出设备,是系统与外界的联系通道。
主存: 是一个临时的存储设备,处理程序时,用来存放程序和程序处理的数据。物理上说由一组DRAM(动态随机存取存储器)组成的。
处理器:即cpu,是解释(或执行)存储在主存中指令的引擎,处理器的核心是一个被称为程序计数器pc的字长大小的存储设备。
1.4.2执行hello程序
1.从键盘上读取hello命令
2.从磁盘加载可执行文件到主存
3从存储器写输出串到显示器
1.5高速缓存
程序的机器指令最初存放在磁盘上,当程序加载时,他们被拷贝到主存,当处理器运行程序时,指令又从主存拷贝到处理器。
1.6层次机构的存储设备
1.7操作系统管理硬件
所有应用程序对硬件的操作必须通过操作系统
操作系统的两个基本功能:1、防止硬件被失控的应用程序滥用 2、位应用程序提供简单一致的方法。
1.7.1进程
进程是操作系统对运行程序的一种抽象,一个系统可以同时运行多个进程,而每个进程
都好像独占硬件,称为并发运行。
进程的上下文切换
1.7.2线程
一个进程可以由多个线程组成,因为多线程比多进程之间更容易分享数据,也因为进程一般都比进程更高效。
1.7.3文件
文件是字节序列。每一I/O设备都可以看成文件。