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