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的值。

          主站蜘蛛池模板: 达州市| 米林县| 建水县| 淮安市| 山阴县| 泸定县| 怀集县| 潞西市| 上犹县| 清镇市| 精河县| 丹凤县| 崇阳县| 宽甸| 南木林县| 大冶市| 洛阳市| 泗洪县| 黔西| 石渠县| 石门县| 新沂市| 博兴县| 郎溪县| 绥德县| 青阳县| 轮台县| 分宜县| 乌鲁木齐县| 永年县| 鄢陵县| 靖州| 肥西县| 剑河县| 平谷区| 牙克石市| 虞城县| 邓州市| 吉首市| 特克斯县| 南乐县|