「浅入理解计算机系统中的分层」| 青训营笔记

131 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的第2篇笔记

应用分层

https://github.com/bxcodec/go-clean-arch

计算机应用领域最简洁的分层是三层分层,常见于后端单体架构应用。推荐阅读:github.com/bxcodec/go-…

层级功能
控制层调用服务层提供的服务处理外部的请求
服务层处理各种业务逻辑,将业务数据通过存储层持久化
存储层与数据库或微服务交互,管理数据仓库

网络分层

计算机网络领域虽然有很多种分层(一般七层指的是所有层,四层指的是应用层下面四层),但本质上表示的还是同一个东西,学习的关键在于打通整个链路,融会贯通。推荐阅读:《计算机网络:自顶向下方法》、《TCP/IP》

OSI经典TCP/IP
应用层应用层应用层
表示层应用层应用层
会话层应用层应用层
运输层运输层运输层
网络层网络层网际层
数据链路层数据链路层网络接口层
物理层物理层网络接口层

存储分层

计算机组成原理课上的内容,叫做memory hierarchy。推荐阅读:en.wikipedia.org/wiki/Memory…

层级特点
寄存器容量小,速度快
缓存(快取)昂贵,可以有多级缓存
内存(RAM)临时存储,断电易失
硬盘(SSD)容量较大,速度较慢
磁带廉价,少见

数据库管理系统分层

目前的数据库管理系统以关系数据库管理系统为主,常见的有Oracel,Mysql,PostgreSql,SQL server。以下查询引擎、优化引擎和执行引擎可以统称为SQL引擎,查询引擎和优化引擎也可以叫做查询优化器。推荐阅读:dev.mysql.com/doc/refman/…

查询引擎对SQL进行词法分析、语法分析、语义分析,生成语法树
优化引擎根据查询引擎生成的语法树,基于规则或基于代价生成执行计划
执行引擎用火山模型迭代运行执行计划
存储引擎数据的存储、管理和访问
事务引擎Undo log保证原子性;用约束保证一致性;用共享锁互斥锁MVCC保证隔离性;用Redo log保证持久性

计算机系统分层

推荐阅读:《深入理解计算机系统》

用户态应用、标准库、编译器、解释器
内核态驱动、文件系统、操作系统
硬件内存、硬盘、设备