导图社区 程序员必会的计算机基础知识
计算机核心知识点与核心概念,包含进程,多进程,线程,多线程,进程间通信,并发和锁等内容。
编辑于2022-05-24 11:39:54核心知识与核心概念
计算机组成原理
理解冯诺伊曼体系结构和其演进
CPU
指令系统
控制器、寄存器组成
指令执行过程
流水线设计
SIMD
向量指令
分支预测
cacheline
编码
多核
超线程
NUMA
存储器
层次化存储
cache
局部性原理
内存
总线
高速缓存替换策略
IO
总线
DMA
设备:
IO地址
高速缓存与缓冲区
网卡的原理
数字信号转化
纠错码
以太网
GPU原理
操作系统
cpu管理(调度子系统)
进程,多进程
线程,多线程
进程间通信
并发和锁
内存管理(内存子系统)
物理内存管理
虚拟内存管理
内存分配框架(用户态内存池、glibc、内核)
磁盘管理(IO子系统)
文件系统
buffer和cache
块存储
零拷贝
DMA
网络管理(网络子系统)
协议栈
socket api
网卡
中断系统
DMA
数据结构和算法
数据结构
O(1)
数组 hash 位图
O(logn)树形
二叉树 avl 红黑树 B+树 skip list
O(n)
list 栈 队列
算法
排序算法
字符串匹配算法
遍历和减枝
二分法
分支算法
贪心算法/动态规划
图论
网络
网络协议
重点协议 理解
TCP
UDP
QUIC
HTTP/HTTPS/HTTP2.0
其他协议 了解
IP
ICMP
DNS
ARP
网络编程
进程间通信方式
信号量
管道
共享内存
socket
多线程编程
互斥锁
条件变量
读写锁
线程池
IO模型
阻塞IO
非阻塞IO
IO多路服用
select/poll
epoll
AIO
网络通信(非网络方向了解)
网络分层模型
IP交互和转发
交换机
路由器
接入网
抓包分析
语言
go
slice
channel gorotine
gc
struct interface
defer
环境变量和包管理
container
内存模型
栈和指针
逃逸机制
数据库
结构
数据库事务原理
分布式数据库
数据复制
读写分离
分库分表
数据备份恢复
容灾高可用
mysql
基础语法
索引
b+树
聚簇索引
二级索引
组合索引
最左匹配原则
索引失效
慢查询
事务
事务四大特性
事务隔离级别
mVCC
锁
全局锁
表级锁
行级锁
快照读
当前读
乐观锁
悲观锁
死锁
日志
redo log
undo log
binlog
架构
主从
数据库缓存双写一致性
缓存
线程模型
数据结构
AOP FRDB持久化技术
主从复制
哨兵模式
集群模式
核心问题
缓存穿透
缓存穿击
缓存雪崩
缓存污染(满)
数据一致性
分布式
CAP
BASE
一致性原理
paxos
raft
zab
rpc
zk
etcd
高可用 容灾 可伸缩
分布式事务
软件设计
代码设计核心原则
通用原则
隔离变化
面向接口
组合优于继承
DRY原则
KISS原则
SOLID原则
经典设计模式
创建型
结构型
行为模式
不同编程语言的惯用法
RAII
面向对象设计
模块化设计
微服务设计
编程经典模型
事件驱动
消息驱动
数据驱动
经典编程思想
策略与机制分离思想
分摊思想
消息队列
应用解耦
异步消息
流量削峰
broker
PartitionParion
producer
consumer
消息确认
消息删除
消息备份
消息投递
消费模式 push pull
可靠投递
重复消息
顺序消息
IOschedule
page cache /零拷贝
高性能 高可用 可伸缩 最终一致性
主题