守住发际线:南大蒋炎岩谈读博那些事儿(10)

2023-04-30 来源:飞速影视

守住发际线:南大蒋炎岩谈读博那些事儿


图 1:「哲学家吃中餐问题」示意图。R/W 分别代表读/写事件,红色表示满足顺序一致性的线程调度
哲学家和摄像机
「哲学家吃中餐问题」为什么重要?想想我们身边的并发程序——操作系统内核、云计算/分布式系统、服务器应用,大家都有的体验是它们很难写、更难写对。因为不确定性的存在,即使我们已经知道程序里有缺陷 (bug),要想复现缺陷触发的过程都很困难,更不用说测试了。哲学家吃中餐问题恰恰就是要解决从日志中恢复出程序执行过程的难题,这对并发程序调试技术的重要性是不言而喻的。不仅是调试,我们还可以针对观测到的一次执行预测程序中的缺陷,例如数据竞争或 use-after-free;甚至在运行时就对程序的行为进行干预,避免并发缺陷被触发。这一大类基于程序执行轨迹实现的技术统一称为并发程序的动态分析技术。
「哲学家吃中餐问题」的 NP-完全性 (固有的困难) 并不意味着我们无法在实际中解决它。为了实现并发程序的动态分析,必须在运行时观测并发程序的执行,而观测却并不局限于「线程本地的记录」。我们希望有一台「摄像机」拍摄下哲 ♂ 学 (家吃饭) 的全过程,而修改程序的代码或运行时环境,恰好能实现这样的摄像机:为所有共享内存的读/写操作上锁,并在锁的保护下记录它们发生的顺序,就得到了共享内存访问的日志,如图 2 所示。从此意义上,观测并发程序执行又是容易的。

守住发际线:南大蒋炎岩谈读博那些事儿


相关影视
合作伙伴
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)

www.fs94.org-飞速影视 粤ICP备74369512号