January
28th,
2019
目标:高效地实现监听式缓存,类似思想可以应用到并行程序的编写
回顾:
- deadlock:互斥资源、持有并等待、非抢占、循环等待
- livelock:系统执行线程,但没有实质性进展
- starvation:系统整体在执行,但某些线程在等待
监听的基本实现(假设原子总线)
考虑一个基本设计:
- 每个处理器有一个内存请求
- 单层、写回式缓存
- 缓存在进行一致性操作时,处理器停止
- 系统间连接使用原子总线(同一时间只有一次缓存通信)
在多处理器系统中,原子总线意味着:传输数据时没有其他总线操作;???
竞争:
- 缓存连接处理器与总线
- 总线操作时,处理器无法读取缓存
- 处理器操作时,缓存无法响应监听信息 解决:
- 多个标签???(两个标签需要保持同步)
