基于共享内存的低延迟数据交换实战
📚 共计 30 章节
01
共享内存初探
什么是共享内存?为什么需要它?低延迟场景下的核心优势。
概念
入门
02
操作系统原理
虚拟内存与物理内存映射,mmap系统调用深度解析。
OS
mmap
03
POSIX共享内存
shm_open与mmap结合,创建与销毁共享内存段。
POSIX
shm
04
System V共享内存
shmget、shmat、shmdt、shmctl 经典API实战。
SystemV
经典
05
同步机制入门
为什么共享内存需要同步?竞态条件与临界区。
同步
基础
06
互斥锁(Mutex)
pthread_mutex_t在共享内存中的使用与陷阱。
Mutex
pthread
07
读写锁(RWLock)
读多写少场景下的优化策略。
RWLock
性能
08
信号量(Semaphore)
POSIX有名信号量与无名信号量在进程间同步中的应用。
信号量
进程
09
条件变量
配合互斥锁实现高效等待/通知机制。
CondVar
通知
10
原子操作
C11 atomic与GCC __sync_builtins,无锁编程基础。
原子
无锁
11
内存屏障
编译器屏障与CPU屏障,防止指令重排导致的数据不一致。
屏障
重排
12
无锁队列(Lock-Free Queue)
基于CAS操作的单生产者单消费者实现。
无锁
SPSC
13
多生产者多消费者无锁队列
Dmitry Vyukov的Bounded MPMC Queue解析。
MPMC
Vyukov
14
Ring Buffer(环形缓冲区)
经典实现与内存对齐优化。
RingBuffer
对齐
15
零拷贝技术
通过共享内存避免用户态与内核态数据拷贝。
零拷贝
性能
16
共享内存中的内存分配器
实现一个简单的定长内存池。
分配器
内存池
17
共享内存中的哈希表
无锁哈希表的设计与实现。
哈希表
无锁
18
共享内存中的日志系统
高并发写入,低延迟落盘方案。
日志
低延迟
19
跨语言数据交换
C/C++与Python通过共享内存交换数据(multiprocessing.shared_memory)。
跨语言
Python
20
共享内存与RDMA
结合远程直接内存访问实现分布式低延迟通信。
RDMA
分布式
21
性能调优
CPU缓存行对齐、False Sharing(伪共享)问题与解决。
缓存行
伪共享
22
性能测试工具
使用perf、flamegraph分析共享内存程序性能瓶颈。
perf
flamegraph
23
共享内存的持久化
将共享内存映射到文件,实现进程重启后数据恢复。
持久化
文件映射
24
共享内存的安全问题
权限控制、信号处理与优雅退出。
安全
信号
25
共享内存的调试
使用ipcs、gdb、strace排查共享内存问题。
调试
ipcs
26
实战案例一:金融行情分发
基于共享内存的金融行情分发系统(低延迟撮合)。
金融
撮合
27
实战案例二:游戏引擎数据总线
游戏引擎中的共享内存数据总线(ECS架构)。
游戏
ECS
28
实战案例三:嵌入式核间通信
嵌入式系统中共享内存用于核间通信(AMP架构)。
嵌入式
AMP
29
共享内存与DDS
对比与融合:数据分发服务与共享内存。
DDS
中间件
30
未来趋势:CXL与内存池化
CXL(Compute Express Link)与共享内存池化技术展望。
CXL
池化