Re: [理工] 108交大計系5

作者: kyuudonut (善良老百姓)   2020-10-27 20:59:11
※ 引述《waes81224 (changchang)》之銘言:
: 標題: [理工] 108交大計系5
: 時間: Mon Oct 26 00:17:33 2020
:
: 題目如下
: 答案是A
: https://i.imgur.com/KtILUJo.jpg
:
: 1. 想請問這題程式碼中的a是屬於global variable,當child process經由fork行程後,也
: 會共享同一個a。
不是,這個 a 是在 stack 上的 ...
: fork之後接下去執行時,應該會因為parent preocess與child process執
: 行順序的不同而造成a值有不同的可能對吧(race condiction發生)?
這不叫做 race condition,race condition 的定義是不同 thread 卻參照到同一個變數
process fork 後就不同 address space 了,怎麼會有 race condition?
: 2. 我把程式碼拿去執行,卻都是4 3 3 2 2 1這個順序,而沒有上述的情形發生,想請問為
: 什麼呢?
建議加上 sleep,你比較容易觀察到 OS scheduler 作動的情況,
或是你可以 hack 一下 scheduler 驗證所學
建議程式限制在 single core 上執行,也比較好觀察
:
: 這個想法影響到我對於 (a) 跟(b)的選擇,感謝大家。
:
:
作者: willy3570 (Lipper0703)   2020-10-28 08:40:00
推 k大詳細補充
作者: waes81224 (waes81224)   2020-10-28 11:46:00
謝謝K大的詳細解說,完全沒有沒有思考到copy-on-write
作者: gua0313 (gua)   2020-11-10 22:13:00
推 感謝大大詳細補充

Links booklink

Contact Us: admin [ a t ] ucptt.com