精華區beta Programming 關於我們 聯絡資訊
> ==>發信人: gw@bbs.ee.ntu.edu.tw (walter), 信區: programming > 我想也許舉個例子比較能說明。 > 比如資料庫裡某個產品剩餘 m 個, 我們打算取出 n 個, 若庫存量不 > 足則 print error message, 否則把剩餘量減 n 再存回資料庫。 > 如果這是多人多工系統, 一般沒受過良好訓練的 programmer > 在某些狀況下即使庫存量不足也會讓 user 取出 n 個。這就是 > bug, 而這 bug 一般自己測試測不出來, 只有在流量大的時候會 > 發生, 流量大的時候可能公司忙得不可開交卻要撥人力來處理這 > 種問題, 而且公司聲譽可能大受影響 ====== 這個例子就幾個條件看來像是 OS 的 Producer-Consumer Synchronization problem. 1.多人多工, 這是 併行/平行 系統會同時多個發生的環境. 2.這理有 Shared Code 或 Shared Variable 的 "共用" 問題. 3.這裡有 concurrent update 要求. 4.出的錯屬 time dependent error 不易被查出, 也不容易靠 trace debug 查得出來. 這是程式的 "正確性" 問題, 跟效率的關係少, 但 "同時" 執 行的請求一多就會發生接近 "同時發生" 的狀況. 不論是否本科系, 如果是這類題做為區分的關鍵, 那就是能否 發展 "系統支援程式" 還是只做 "應用程式" 的差別. 不過, 台灣多數是利用已開發商做好的支援程式去做應用程式(AP). -- ◎ Origin: 中央松濤站□bbs.csie.ncu.edu.tw From: 140.115.6.234