601 字
3 分钟
分层与抽象
2024-11-23
无标签
概念
抽象与分层是计算机基本思想方法,有效地降低了计算机系统的复杂度。
抽象
抽象是一个泛化与概括的方式。在计算机编程中,抽象编程是一种在复杂的软件系统中,降低复杂度、实现系统高效设计与实现的方法。它将系统各功能实现的技术细节隐藏在相对简单的服务中。
分层
而分层就是基于抽象来进行的,我们对底层的数据和计算过程抽象之后,底层就可以通过调用接口对外提供某种服务,在这个基础上我们又可以进行更高一层的抽象,就这样一层一层的往上构建我们就可以得到内在结构高度自动化,对外通过接口提供强大的功能的虚拟机。
子层
某一层次内部可以划分成若干子层,对外表现为一层
栈
层层堆叠形成了栈结构
服务
本层能够向上层提供服务
接口
本层向上层提供服务的入口
透明性
底层的实现对上层工作是透明的,上层不需要考虑底层的细节
- 对于设计CPU的工程师,CPU微架构是不透明的
- 对于汇编语言程序员,CPU微架构是透明的,ISA是不透明的。流水线,cache等是透明的,通用寄存器,PC,PSW是不透明的(移位寄存器透明)。
- 对于系统程序员,系统的工作细节是不透明的,虚存是不透明的。
- 对于高级语言程序员,寄存器是透明的,虚存是透明的。甚至内存都是透明的。
- 透明传输是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样(即保证接收方接到的数据是完整的数据)
抽象击穿
- 引用就是指针
零开销抽象
例子
- iso7层模型
- tcp/ip栈
- 计算机的层次结构
- 模拟电路
- 数字电路
- 晶体管
- 大规模数字电路
- 裸机
- 操作系统
- 用户库与基础设施
- 用户程序
- 存储栈
- 总线通信协议栈
- 操作系统层次结构
- 操作系统io栈
- 操作系统存储栈
