2011-02-27 125 views
0

循環調度是否會導致死鎖?如果CPU調度基於循環法,並且在調度中的一個點上發生了什麼,兩個不同的進程會請求相同的文件,而沒有進程擁有該文件?這會導致死鎖,還是將文件提供給計劃的下一步要執行的進程?循環調度和死鎖

回答

1

您描述的情況不會導致死鎖。鎖是原子的,所以一次只能有一個進程。因此,無論哪個進程在當時有控制權,都將獲得鎖定,而第二個進程將失敗。

但是,在更一般的情況下,RR調度中可能會發生死鎖。考慮兩個進程和兩個鎖。進程A獲取鎖1,然後使處理器進入進程B.進程B然後獲取鎖2並嘗試獲取鎖1.因爲鎖1屬於進程A,進程B將進入休眠狀態。進程A喚醒並試圖獲取鎖2.鎖2仍然屬於進程B,因此這兩個進程都不能向前移動,並且發生死鎖。

1

rr調度可能會發生死鎖。例如,如果進程A請求並獲取打印機但超出了其時間範圍,並且processB碰巧有其正常的cpu突發時間等於其時間範圍,則其執行將完成..然後它請求打印機哪個進程A仍然持有..當在隊列尾部等待進入內存仍然由進程B保留時,此時發生死鎖