posts - 403, comments - 310, trackbacks - 0, articles - 7
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          Finding and Reproducing Heisenbugs in Concurrent Programs

          Posted on 2009-02-17 11:30 ZelluX 閱讀(641) 評論(0)  編輯  收藏 所屬分類: System

          今年的ASPLOS '09上zhou yuanyuan也有一篇關(guān)于如何concurrent program中發(fā)現(xiàn)隱藏的atomicity violation bugs的paper,里面提到了這篇paper

          2008-11-30

          OSDI '08上MSR發(fā)的paper,針對并發(fā)編程中難以發(fā)現(xiàn)的bug問題。

          paper的內(nèi)容主要分兩大塊。

          一是如何在發(fā)現(xiàn)bug的時候記錄下線程的運行先后(thread interleaving),途徑是在線程API和用戶程序多寫一層wrapper functions,這里還有一些其他的問題,比如只記錄下了thread interleaving的話出現(xiàn)data race怎么解決等。

          另外一塊內(nèi)容是如何遍歷出給定程序運行后所能產(chǎn)生的結(jié)果的集合,加入這個能實現(xiàn)的話那就能把所有隱藏的bug都找出來了。但是這個搜索空間很大,是 指數(shù)級的,的一個結(jié)論就是:給定一個程序有n個的線程,所有線程共完成k條指令,那么c次占先調(diào)度后線程的排列情況數(shù)的復(fù)雜度是k^{c}的,所以在實現(xiàn)遍歷代碼的時候必須有效的降低k和c的值。

          主站蜘蛛池模板: 夹江县| 怀远县| 安溪县| 体育| 渑池县| 黑山县| 都昌县| 洛川县| 威宁| 武邑县| 高青县| 高要市| 老河口市| 太谷县| 平山县| 达孜县| 尼玛县| 安仁县| 隆回县| 烟台市| 顺义区| 本溪市| 略阳县| 茶陵县| 铁岭市| 平武县| 泗洪县| 油尖旺区| 北川| 定南县| 五峰| 宜春市| 青海省| 光山县| 中西区| 正阳县| 榕江县| 长海县| 怀远县| 南康市| 休宁县|