循環調度是否會導致死鎖?如果CPU調度基於循環法,並且在調度中的一個點上發生了什麼,兩個不同的進程會請求相同的文件,而沒有進程擁有該文件?這會導致死鎖,還是將文件提供給計劃的下一步要執行的進程?循環調度和死鎖
Q
循環調度和死鎖
0
A
回答
1
您描述的情況不會導致死鎖。鎖是原子的,所以一次只能有一個進程。因此,無論哪個進程在當時有控制權,都將獲得鎖定,而第二個進程將失敗。
但是,在更一般的情況下,RR調度中可能會發生死鎖。考慮兩個進程和兩個鎖。進程A獲取鎖1,然後使處理器進入進程B.進程B然後獲取鎖2並嘗試獲取鎖1.因爲鎖1屬於進程A,進程B將進入休眠狀態。進程A喚醒並試圖獲取鎖2.鎖2仍然屬於進程B,因此這兩個進程都不能向前移動,並且發生死鎖。
1
rr調度可能會發生死鎖。例如,如果進程A請求並獲取打印機但超出了其時間範圍,並且processB碰巧有其正常的cpu突發時間等於其時間範圍,則其執行將完成..然後它請求打印機哪個進程A仍然持有..當在隊列尾部等待進入內存仍然由進程B保留時,此時發生死鎖
相關問題
- 1. 沒有循環的死鎖
- 2. 並行循環上的死鎖
- 3. EndInvoke會()不返回(循環死鎖?)
- 4. pthread_cond_wait fifo循環隊列中的死鎖
- 5. Java:死循環後的死循環
- 6. 循環調度
- 7. 循環調度
- 8. 循環調度
- 9. Perl while循環和死
- 10. 死循環雙循環
- 11. 使用OpenMP和Eigen導致無限循環/死鎖
- 12. 在大循環中多處理,寫入文件和死鎖
- 13. 調試PyThread_acquire_lock死鎖
- 14. WCF回調死鎖
- 15. pthread_mutex_timedlock和死鎖
- 16. Quartz.NET和死鎖
- 17. Restkit和死鎖
- 18. 爲什麼不是Java雙重調度造成的死循環?
- 19. Python spyder調試死循環導入
- 20. Swift 2.2:循環和調度隊列
- 21. 了TerminateProcess和死鎖
- 22. 調試數據庫死鎖
- 23. 調試休眠/ Ehcache死鎖
- 24. SQL Server 2000 - 調試死鎖
- 25. 如何調試死鎖?
- 26. Postgresql鎖死鎖
- 27. Zend調度循環問題
- 28. 在matlab中循環調度
- 29. 循環執行(CE)調度
- 30. RabbitMQ非循環賽調度