术语表
计算机科学核心术语,按 15 层抽象层级索引。每个术语至少被一个层级页引用。
一种半导体器件,通过控制栅极电压调节源极和漏极之间的电流,是现代计算的基本构建单元。
金属-氧化物-半导体场效应晶体管,当前主流的晶体管结构。
集成电路上可容纳的晶体管数目约每两年翻一番的经验观察。
用晶体管搭建的基本逻辑单元,执行 AND、OR、NOT 等布尔运算。
处理真(1)和假(0)两种值的数学代数系统,是数字电路的理论基础。
将数千到数十亿个逻辑门封装在一块芯片上的电路。
计算两个 1-bit 数的和与进位的电路。
计算两个 1-bit 数和低位进位的和与进位的电路。
算术逻辑单元,CPU 中执行算术和逻辑运算的核心组件。
多个全加器串联构成的加法器,进位逐级传播,延迟为 O(n)。
能够存储 1-bit 信息的时序逻辑电路,是 CPU 内部最快的存储单元。
存储 1-bit 信息的基本时序逻辑电路,包括 D 触发器、JK 触发器等。
输出不仅取决于当前输入,还取决于历史状态的逻辑电路。
同步所有状态变化的周期性信号,决定 CPU 的工作频率。
将指令执行分为多个阶段(取指、译码、执行、访存、写回),每个时钟周期完成一条指令。
CPU 猜测条件分支方向的技术,预测失败会导致流水线清空。
每个时钟周期可以发射和执行多条指令的 CPU 架构。
CPU 按数据可用性而非程序顺序执行指令,以提高流水线利用率。
位于 CPU 和主存之间的高速存储器,利用局部性原理减少平均访问延迟。
程序倾向于重复访问最近访问过的数据(时间局部性)和相邻数据(空间局部性)。
缓存虚拟地址到物理地址映射的硬件结构,加速地址转换。
访问的数据不在缓存中,需要从更慢的存储层级加载。
程序和数据存储在同一内存中,CPU 按顺序执行指令的计算机架构。
连接 CPU、内存和 IO 设备的通信通道,包括数据总线、地址总线和控制总线。
IO 设备在需要服务时通知 CPU 的机制,避免 CPU 轮询等待。
允许 IO 设备直接与内存交换数据,不经过 CPU 的机制。
指令集架构,定义程序员可见的指令集,是软硬件之间的接口。
单指令多数据,一条指令同时处理多个数据的并行技术。
程序的加速比受限于串行部分的比例,即使使用无限多处理器。
运行中的程序实例,拥有独立的地址空间和资源。
进程内的执行单元,共享进程的地址空间,但拥有独立的栈和寄存器。
通过页表将虚拟地址映射到物理地址,使每个进程'看到'独立的地址空间。
应用程序请求内核服务的接口,如 read/write/fork/exec。
在进程/线程间切换时保存和恢复 CPU 状态的过程。
将高级语言源代码翻译成机器码或中间代码的程序。
将多个目标文件和库合并为可执行文件的程序。
在运行时将字节码编译为机器码的编译器,如 Java HotSpot、V8。
C/C++ 中某些操作的行为未由标准定义,编译器可做出任意假设。
通过对象封装数据和行为的编程范式,支持继承、多态、封装。
通过纯函数和不可变数据避免副作用的编程范式。
在编译时或运行时检查数据类型正确性的形式化规则集合。
解决软件设计中常见问题的可复用方案,如工厂、策略、观察者模式。
数据库事务的四个保证:原子性、一致性、隔离性、持久性。
多版本并发控制,通过维护数据多个版本实现读写不冲突。
分布式系统最多同时满足一致性、可用性、分区容忍性中的两个。
在没有新写入的情况下,所有副本最终会达到一致的一致性模型。
为短期收益牺牲长期质量的代价,需要持续偿还。
持续集成/持续交付,自动化构建-测试-部署流水线。
由其他开发者检查代码变更的实践,用于知识共享和质量把关。
在故障节点间达成一致的算法,如 Paxos、Raft。
一种易于理解的分布式共识算法,通过 leader 选举和日志复制实现一致性。
跨多个节点的事务,需要保证原子性和一致性,如两阶段提交(2PC)。
防止级联故障的模式,当下游服务故障时快速失败。
通过 Linux namespace 和 cgroup 实现进程隔离的轻量级虚拟化技术。
声明式管理容器部署、扩缩容、自愈的容器编排系统。
通过 Sidecar 代理处理服务间通信、负载均衡、熔断的基础设施层。
按调用计价的无服务器计算模型,开发者只需编写函数代码。
通过日志、指标、追踪三大支柱理解和诊断系统行为的能力。