附上題目 http://0rz.tw/Lf8p5
我想問第三題
題目說有一個預防processor be blocked forever的程式:
int fd; char buffer[100];
...
alarm(3); // set timer for 3 seconds
write(fd, buffer, 100); //write 100 byte from buffer
//to the open file descriptor fd
...
(b) 問這段程式為什麼會產生race condition,導致processor be blocked forever
(c) 問解決race condition的方法,提示是跟write()和polling有關
可是我實在看不太懂這段程式碼的作用是什麼
是要讓想要write的程序先等幾秒在執行的意思嗎@@?
那這樣race condition就只可能發生在alarm一直被設置,讓程序不斷等待的情況吧@@?
可是(c)小題又完全不懂了
不知我是不是哪裡誤會題目了,請各位高手指點一下,謝謝!!
另外也問一下第四題,有點不確定
題目問在multicore processor上,當有個core是overload
而此時thread是 (1)computation (2)IO intensive 要不要搬到idle core上
我的想法是(1)時計算可以分開,所以可以搬到idle core
(2)時處理IO,多個core一起處理也沒有什麼幫助,所以應該不要搬
不知道有沒有想錯,肯請各位高手指教!!
謝謝!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.25.106