※ 引述《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)的选择,感谢大家。
:
: