[請益] Shared-Data Bug

看板Electronics作者 (brotherD)時間6年前 (2017/09/05 14:38), 6年前編輯推噓3(3011)
留言14則, 6人參與, 最新討論串1/1
各位好,小弟目前正在拜讀David E.Simon的An Embedded Software Primer一書。 目前唸到4.3中的Characteristics of the Shared-Data Bug 如圖:https://imgur.com/a/iiQqB 小弟真的很好奇,為什麼在這種情況下發生的Shared-Data Bug這麼有名? 1.通常在禮拜五的下午五點(禮拜五的下午五點比較有特別嗎?因為明天不用上班?) 2.當產品在火星上的時候(黑人問號???) (另外,如果有人有這本實體書想賣的話,歡迎聯絡小弟我><) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.248.26.157 ※ 文章網址: https://www.ptt.cc/bbs/Electronics/M.1504593532.A.75A.html ※ 編輯: zzss2003 (60.248.26.157), 09/05/2017 14:39:19

09/05 14:50, , 1F
這是作者的幽默,bug只會出在你最不願意出槌的時候
09/05 14:50, 1F

09/05 14:51, , 2F
比如探險車在地球測試都好好的,到火星一開出來就當機
09/05 14:51, 2F

09/05 14:52, , 3F
這是 interrupt 引發的 race condition
09/05 14:52, 3F

09/05 14:54, , 4F
實務上真的超難抓,只能預先 review 和設法預防
09/05 14:54, 4F

09/05 14:55, , 5F
應該是說interrupt沒辦法真正達到atomic operation,使
09/05 14:55, 5F

09/05 14:55, , 6F
data race的情況會發生
09/05 14:55, 6F

09/05 14:56, , 7F
所以要確保interrupt期間不會發生 不然就要引入critical
09/05 14:56, 7F

09/05 14:56, , 8F
section了
09/05 14:56, 8F

09/05 16:22, , 9F
曾經用過critical section
09/05 16:22, 9F

09/05 16:22, , 10F
只能說盡量別用
09/05 16:22, 10F
我還不懂什麼是race condition和atomic operation,知道critical section但是不知道 甚麼時候要用甚麼時候不該用QQ ※ 編輯: zzss2003 (60.248.26.157), 09/05/2017 16:56:24

09/05 22:19, , 11F
這是個LOL
09/05 22:19, 11F

09/06 08:35, , 12F
這本有中譯版
09/06 08:35, 12F
謝謝J大,不過我已經習慣看原文書惹 ※ 編輯: zzss2003 (60.248.26.157), 09/06/2017 09:17:26

09/08 13:37, , 13F
你可以參考wiki這個經典案例: https://goo.gl/HtyPF3Y
09/08 13:37, 13F

09/08 13:40, , 14F
剛手殘自己多按一個Y... https://goo.gl/HtyPF3
09/08 13:40, 14F
文章代碼(AID): #1PhaPyTQ (Electronics)