> ==>發信人: 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