CSAPP学习笔记 -- 第一章 计算机系统漫游
1.1 信息就是 位 + 上下文
系统中所有的信息都是由一串比特组成的。
区分不同数据对象的唯一方法就是我们读到的这些数据对象时的上下文。
1.2 程序被其他程序翻译成不同的格式
编译系统:
1.3 了解编译系统如何工作室大有益处的
优化程序性能、理解连接时出现的错误、避免安全漏洞
1.4 处理器读取并解释存储在内存中的指令
1.4.1 系统的硬件组成
总线、I/O设备、主存、处理器
1.5 高速缓存至关重要
1.6 存储设备形成层次结构
寄存器 > 高速缓存存储器(L1 > L2 > L3)(SRAM) > 主存(DRAM) > 本地二级存储(本地磁盘) > 远程二级存储(分布式文件系统、Web服务器)
<---------------------------------------------------------------------->
更小、更快、(每字节)更贵 --- 更大、更慢、(每字节)更便宜
存储器层次结构的主要思想是上一层的存储器作为低一层存储器的高速缓存
1.7 操作系统管理硬件
文件是对I/O设备的抽象
虚拟内存是对主存和磁盘I/O设备的抽象
进程是对处理器、主存和磁盘I/O设备的抽象
1.7.1 进程
上下文切换、系统调用
1.7.2 线程
多线程 比 多进程 之间更容易交换数据
1.7.3 虚拟内存
虚拟地址空间:
程序代码和数据、堆、共享库、栈、内核虚拟内存
1.7.4 文件
1.8 系统之间利用网络通信
1.9重要主题
1.9.1 Amdahl定律
加速比 S = Told / Tnew = 1 / [ (1 - α) + α / k ]
α 为系统某部分执行时间比例
k 为该部分性能提升比例
1.9.2 并发和并行
线程级并发
单处理器系统、多处理器系统、超线程
指令级并行
流水线、超标量处理器
单指令、多数据并行
1.9.3 计算机系统中抽象的重要性
沿用1.7的一系列抽象概念,虚拟机是操作系统和进程的抽象