深入理解计算机系统---读书笔记1

文件就是字节序列,仅此而已。
系统中的所有输入都是通过使用一小组称为Unix I/O的系统函数调用读写文件来实现的。

Amdaha定律(Amdahl's law)
该定律的主要思想是,当我们对系统的某个部分加速时,其对系统性能的影响取决于该部分的重要性
和加速程度。

虽然我们对系统的一个主要部分做出了重大改进,但是获得的系统加速比却明显小于这部分的加速比。
这就是Amdahl定律的主要观点-----要想显著加速整个系统,必须提升全系统中相当大的部分的速度。

当构建一个由单操作系统内核控制的多处理器组成的系统时,我们就得到了一个多处理器系统。

多内核运行多少个系统????

Intel Core i7处理器可以让每个核执行两个线程,所以一个4核的系统实际上可以并行地执行8个线程。

在较低的抽象层次上,现代处理器可以同时执行多条指令的属性称为指令级并行。

在最低层次上,许多现代处理器拥有特殊的硬件,允许一条指令产生多个可以并行执行的操作,
的操作,这种方式称为单指令、多数据,即SIMD并行。

文件是对I/O设备的抽象,
虚拟内存是对程序存储器的抽象
进程是对一个正在运行的程序的抽象

虚拟机,它提供对这个计算机的抽象,包括操作系统、处理器和程序。

因为虚拟地址是以这样的一个字来编码的,所以字长决定的最重要的系统参数就是虚拟地址
空间的最大大小。

参数12345的十六进制表示为0x00003039
最低有效字节值0x39最先输出,这说明它们是小端法机器。

C语言中字符串被编码为一个以null(其值为0)字符结尾的字符数组。
“12345”  31 32 33 34 35 00    ASCII 字符码

linux> gcc -0g -o p p1.c p2.c

long mult2(long, long);

void multstore(long x, long y, long *dest) {
    long t = mult2(x, y);
    *dest = t;
}

linux> gcc -0g -S mstore.c
C语言编译器生成的汇编代码

linux> gcc -0g -c mstore.c
GCC 会编译并汇编该代码

linux> objdump -d mstore.o
反汇编器

你可能感兴趣的:(自己的小笔记)