CSAPP Ch1 计算机系统漫游
It is better to fail in originality than to succeed in imitation.
计算机系统漫游
- 计算机系统是由硬件和系统软件组成的
- 源程序中由
ASCII
字符构成的文件称为文本文件, 所有其他文都称为二进制文件 - 预处理阶段预处理器根据以字符
#
开头的命令,修改原始C程序,读取系统头文件的内容,并把它直接插入程序文本中,如:1
2
3#if 0
--
#endif 字(word)
: 总线传送定长字节块的大小- 磁盘驱动器(HDD)简单说其实就是磁盘
- 适配器: 插在主板插槽的卡(比如图形适配器,显示屏); 控制器:I/O设备本身或系统主板上的芯片组
- 在键盘上读取
hello
命令。通过将数据读取到KBDR
中(中间涉及到ASCII到Binary的转换),再将KBDR
中的数据存入主存中。整个过程需要CPU参与,引出了概念可编程I/O
- 因此也延伸出了优化的方案(使用
DMA
) - 将字符串显示到显示器上。通过将数据写入到
DDR
中(要将Binary转换为ASCII),再将DDR
中的数据显示到图形适配器上 Cache
产生的原因:随着时间的推移DRAM
的性能和Disk
相差三个数量级; Cache充分利用了局部性原理。Posix标准
:标准化Unix
的开发上下文切换
涉及到PC
和寄存器组
的Save和Restore- 进程虚拟内存中的内容存储在磁盘上,而主存作为磁盘的缓存, 造成
容量又大速度又快
的假象。 - Unix I/O的读写系统调用为
逻辑读写
- 通过
网络适配器
可以在不同主机之间在交换主存中的数据 Amdahl's law
: $S=\frac{1}{(1-\alpha)+\alpha/k}$, 其中$S$为加速比, $\alpha$为提高部分的执行时间占总时间的比例, $k$为该部分性能提升的比例; 其中2.2倍
可以表示为2.2x
TLP
,ISP
,SIMD