[理工] 108 交大 OS

作者: mandychad (新莊金城武)   2020-01-04 13:32:03
https://i.imgur.com/HI4hVzz.jpg
1. (d) 在many to one model 的時候,只允許一個user thread access kernel at a ti
me,那請問為什麼還會有race condition?
2. (b) 想問是不是也可以作I/O的關係?
https://i.imgur.com/6JSL9c4.jpg
10. (d) 想問這是什麼意思?以下我的解讀正確嗎?
查了恐龍本,提到extent是指修改的contiguous allocation scheme,當contiguous spa
ce不夠時,可以鏈結另外一塊contiguous space(稱為extent),所以利用extent alloc
ation可以減少file 的外碎情形,所以叫file defragmentation。
謝謝~
作者: zuchang (chang)   2020-01-04 13:39:00
1應該是完成前不被插隊 才完全防止race condition2 的描述感覺是不可插隊的rr 因為只有完成或timer到才放掉cpu現在的分時應該要可被插隊
作者: ccapricorntw (Eating)   2020-01-04 14:18:00
file defragmentation是指file block重新排列吧?
作者: dsa66253 (Kobe Mary)   2020-01-04 14:46:00
借問一下 10的d defragmentation 是為了解決外碎 可是我們已經用extent 基本上就已經沒有外碎了吧?
作者: plsmaop (plsmaop)   2020-01-04 16:42:00
1 還是有 race condition,一個 user thread 做一半換另外一個動到同樣的東西就有機會 GG具體而言可以參考 python GIL 的問題
作者: mistel (Mistel)   2020-01-04 17:48:00
extent allocation是contiguous allocation的延伸,怎麼不會有外碎?file defragmentation就是磁碟重組 相信都有用過CCleaner在memory上就叫compaction 應該都是類似的動作2.b是在問什麼時候可能會離開running這個狀態 答案是終止,timer,或者是要OS服務的system call等等(就像樓主說的I/O
作者: mandychad (新莊金城武)   2020-01-05 09:24:00
感謝大大們 懂了

Links booklink

Contact Us: admin [ a t ] ucptt.com