抽象层次结构
计算机系统采用层次化设计的思想,从底层硬件到高层应用构成一个多层的抽象堆栈。
层次模型
从底层到顶层,计算机系统大致可分为以下层次:
- 应用软件层 — 用户直接交互的程序(浏览器、编辑器等)
- 操作系统层 — 提供进程管理、虚拟内存、文件系统等抽象
- 指令集架构层(ISA) — CPU执行的机器指令集合,是硬件/软件的分界线
- 微体系结构层 — ISA的具体硬件实现方式(流水线、缓存等)
- 硬件逻辑层 — 数字电路、门电路、寄存器等物理实现
每一层的作用
- 对上层提供抽象:每一层都隐藏了下层的实现细节,向上层提供简洁的接口。例如,操作系统将磁盘抽象为文件,将CPU抽象为进程,程序员无需关心磁盘的磁道扇区或CPU的流水线级数。
- 对下层是具体实现:每一层使用下层提供的机制来实现本层的功能。例如,ISA层通过微体系结构的硬件电路来实现指令的执行。
不同课程关注的层次
- 程序设计课程:关注应用层和高级语言
- 操作系统课程:关注操作系统层
- 计算机组成/体系结构课程:关注ISA和微体系结构
- 数字逻辑课程:关注硬件逻辑层
CSAPP的核心视角是”站在程序员的立场理解计算机系统”,因此特别关注ISA层(尤其是x86-64)以及操作系统提供的抽象机制。
“点点鼠标”的层次转化链
用户点击鼠标 → 操作系统捕获中断事件 → 内核解析事件并分发给对应的进程 → 进程通过GUI框架处理事件 → 应用程序执行对应逻辑 → 编译器生成的机器指令在CPU上执行 → 微体系结构取指/译码/执行 → 硬件电路完成运算
这一链条清晰地展示了抽象层次是如何协同工作的。
相关笔记
链接到
- 上一个知识点:无(本章第一个知识点)
- 下一个知识点:1.2 Amdahl定律