3
A
回答
5
一般來說,關鍵區域是一個地方,如果存在兩個獨立的執行線程,則會出現競態條件或其他不良影響。信號量是防止兩個線程在同一時間點處於關鍵區域的一種方式。
2
GUARD一次只允許1個線程進入關鍵區域,而信號量可以允許n個線程(您指定n)同時進入關鍵區域。
0
還有「臨界區」的兩種解釋:
的代碼,如果由兩個線程同時執行,將產生不確定的結果的區域。
與除當前線程以外的所有執行程序隔離的代碼區域。這個例子就是一箇中斷處理程序。這些地區通常被稱爲「關鍵部分」。在Intel CPU上,您可以使用CLI/STI指令開始/結束關鍵部分。
+0
請注意,在虛擬內存的操作系統,CLI/STI可能不足以防範關鍵部分。如果代碼嘗試訪問不是立即可用的內存頁面,則無論是否啓用異步中斷,都會觸發中斷。 「期望」是,該中斷將從磁盤獲取必要頁面並返回到正在執行的代碼,但硬件中的任何內容都不會阻止操作系統在等待所需頁面被讀取時執行任何其他線程。 – supercat 2012-11-19 17:19:13
1
當一個進程執行操縱共享數據(或資源)的代碼,我們說該方法是在它的關鍵部(CS)(用於共享數據) 和信號燈使用非負整數變量作爲標誌和 信號如果和當資源是免費的
相關問題
- 1. javascript臨界區或信號量問題
- 2. SIGCLD和SIGCHLD信號有什麼區別?
- 3. 信號量和互斥量在實現中有什麼區別?
- 4. 在windows中,有名和無名信號量有什麼區別?
- 5. 區域激活和區域RequestNavigate有什麼區別?
- 6. 實現Qt臨界區域
- 7. 「interned」和「uninterned」符號有什麼區別
- 8. nohup和&符號有什麼區別
- 9. IND和NAN號碼有什麼區別
- 10. Mysql臨時表和oracle臨時表有什麼區別
- 11. 在C++中使用臨界區/信號量
- 12. 有界和無界設備有什麼區別?
- 13. 有什麼區別`和$(Bash中有什麼區別?
- 14. TARGET_ARCH和TARGET_MACH變量有什麼區別?
- 15. 變量的=和=>有什麼區別?
- 16. definePlugin和env變量有什麼區別?
- 17. 對象和變量有什麼區別?
- 18. 區域設置有什麼區別:zh_CN,zh_CN.utf8和zh_CN.UTF-8
- 19. 段,卷和分區有什麼區別?(在存儲域中)
- 20. 區域設置和編碼(終端)有什麼區別
- 21. 有什麼區別? :和||
- 22. &&和||有什麼區別?
- 23. 「/」和「/ *」有什麼區別?
- 24. 有什麼區別:。!和:r!?
- 25. ==和===有什麼區別?
- 26. Appender和〜有什麼區別?
- 27. $ @和$ *有什麼區別?
- 28. is和=有什麼區別?
- 29. #.00和#。##有什麼區別?
- 30. `==`和`is`有什麼區別?
將研究更多然後slw answr,thnku耐心 – user287745 2010-08-28 06:36:20