《深入理解计算机系统》第一章 计算机系统漫游
1、本章从一个程序的生命周期讲起,分别对程序的创建、编译、执行、输出、终止进行了详细的解读,从中引出了关于信息上下文、编译系统、高速缓存、操作系统等重要概念。
网上找到一张框架图:
参考:框架图链接
2、一个程序的生命周期是从源程序开始的,通过编译器创建并保存的文本文件。源程序实际上是一个由0和1组成的位序列,又叫做比特序列,8个位被组织成一组,成为字节,程序以字节的方式储存在文件中。系统中所有的信息都是以一串比特表示的,所以区分数据对象的唯一方法就是读到这些数据的上下文。
3、在程序编译的过程中,程序被其他程序翻译成不同的格式,.c文件通过执行预处理、编译、汇编、链接四个阶段变为可执行文件。这部分在linux系统的操作中应用较多。
4、高速缓存:当我们从外壳执行hello程序的时候,首先是将程序的数据和代码从磁盘复制到主存,处理器开始执行指令,并将需要显示的数据从主存复制到寄存器中,最后需要显示是将寄存器的数据复制到显示设备,最终显示出来的。这些复制操作就是开销,减缓了程序真正的工作。因此就需要高速缓存技术:暂时集结区域。我们可以看看高速缓存存储器的位置
5、虚拟存储器:一个抽象概念,为每个进程提供了一个假象,即每个进程都独占地使用主存。每个进程看到的是一致的存储器,称为虚拟地址空间。地址空间最上面的区域为操作系统中的代码和数据保留的。地址空间的底部区域存放用户进程定义的代码和数据,地址是从下往上增大的。虚拟存储区的运作需要硬件和操作系统软件之间精密复杂的交互,包括对处理器生成的每个地址的硬件翻译。其基本思想 是把一个进程虚拟存储器的内容存储在磁盘上,然后用主存作为磁盘的高速缓存。
6、由于机械原理,访问速度越快的存储设备造价相对越高,拿硬盘和主存来说。硬盘的造价可能是主存的1000倍,但是访问的开销却要比主存大10000000倍。高速缓存就是为了存放可能经常访问到的数据,这就大大提高了访问的速度,减小了开销。 其主要思想是:一层上的存储器作为低一层存储器的高速缓存。
7、操作系统提供了软件与硬件之间的一层抽象,既可以防止程序滥用硬件也方便了我们对于程序的编写。这里的抽象主要是指:
- 对运行中程序的抽象(进程);
- 对于存储器的抽象(虚拟存储器);
- 对输入输出的抽象(文件)甚至包括网络;
- 虚拟机等。
8、并发:具有多个活动的系统
并行:用并发使一个系统运行得更快