精華區beta Programming 關於我們 聯絡資訊
※ 引述《tester.bbs@bbs.csie.ncu.edu.tw (try or test)》之銘言: > > 我想也許舉個例子比較能說明。 > > 比如資料庫裡某個產品剩餘 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). 不管是不是科班的,只要有心,人人都可以讀懂 "Operating System Concepts"。 這些都只是 knowing factor,只要有心,人人都可學 :) 為什麼科班的學生的表現常常會不如預期? 以前我也很懷疑這點,現在我似乎了解了。 discipline,這是學校沒教給資訊科系學生的東西。 這使的學生的專業性無法突顯出來,只是表現出一些知識。 可惜,知識又是最廉價的。智彗、態度、方法和記律的表現才更重要。 這些都是大學所不教的 skill。 有本書可以參考: http://www.amazon.com/gp/product/0321305493/ 學校其實是做這種訓諫的最好場所。 -- ※ Origin: SayYA 資訊站 <bbs.sayya.org> ◆ From: 220-139-85-89.dynamic.hinet.net