601 字
3 分钟
分层与抽象
2024-11-23
无标签

概念#

抽象与分层是计算机基本思想方法,有效地降低了计算机系统的复杂度。

抽象#

抽象是一个泛化与概括的方式。在计算机编程中,抽象编程是一种在复杂的软件系统中,降低复杂度、实现系统高效设计与实现的方法。它将系统各功能实现的技术细节隐藏在相对简单的服务中。

分层#

而分层就是基于抽象来进行的,我们对底层的数据和计算过程抽象之后,底层就可以通过调用接口对外提供某种服务,在这个基础上我们又可以进行更高一层的抽象,就这样一层一层的往上构建我们就可以得到内在结构高度自动化,对外通过接口提供强大的功能的虚拟机

子层#

某一层次内部可以划分成若干子层,对外表现为一层

#

层层堆叠形成了栈结构

服务#

本层能够向上层提供服务

接口#

本层向上层提供服务的入口

透明性#

底层的实现对上层工作是透明的,上层不需要考虑底层的细节

  • 对于设计CPU的工程师,CPU微架构是不透明的
  • 对于汇编语言程序员,CPU微架构是透明的,ISA是不透明的。流水线,cache等是透明的,通用寄存器,PC,PSW是不透明的(移位寄存器透明)。
  • 对于系统程序员,系统的工作细节是不透明的,虚存是不透明的。
  • 对于高级语言程序员,寄存器是透明的,虚存是透明的。甚至内存都是透明的。
  • 透明传输是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样(即保证接收方接到的数据是完整的数据)

抽象击穿#

  • 引用就是指针

零开销抽象#

例子#

  • iso7层模型
  • tcp/ip栈
  • 计算机的层次结构
    • 模拟电路
    • 数字电路
    • 晶体管
    • 大规模数字电路
    • 裸机
    • 操作系统
    • 用户库与基础设施
    • 用户程序
  • 存储栈
  • 总线通信协议栈
  • 操作系统层次结构
  • 操作系统io栈
  • 操作系统存储栈
分层与抽象
https://blog.pipago360.site/posts/考研408/层次与抽象/
作者
Ashenye
发布于
2024-11-23
许可协议
CC BY-NC-SA 4.0