今天我正在閱讀關於同步。我有點困惑閱讀了Peterson solution的關鍵部分問題是一個基於軟件的解決方案之後。 現在我的問題是:「基於軟件的解決方案」是什麼意思?Peterson的關鍵部分解決方案是基於軟件的解決方案 - 這意味着什麼?
3
A
回答
3
要解決關鍵部分的問題並強制互斥,有幾種方法:
首先是基於軟件的解決方案。該解決方案基於像Peterson algorithm,Dekker's algorithm和Lamport's bakery algorithm(超過一個過程)算法來保護關鍵部分。這些解決方案在內存訪問級別只假設基本的互斥。除此之外,硬件上不支持,操作系統或編程語言被假定。
的主要問題軟件approches是它們的開銷高的過程和邏輯錯誤的風險(根據斯托林操作系統內部)
除了軟件解決方案,我們也有硬件解決方案,如Interrupt disabling,Compare&Swap instruction交易指令。這些解決方案都在忙着等待,並有可能發生飢餓和僵局。
另一個範例執行互斥是使用信號燈和監控器,它們是由操作系統和編程語言實現的機制。
0
基於軟件的解決方案:
1)基於Sofware的解決方案,在這個意義上,它們依賴於硬件的唯一特性是,如果兩個過程嘗試存儲在相同的存儲單元中的值,則硬件將保證最終的價值將與二者之一所寫的相同,儘管關於訂單沒有保證。
2)軟件解決方案,我們不能保證一個變量不會給定的過程看它,它自己會嘗試的時間來改變它的時間之間改變。這是因爲檢查值和更改值通常需要兩條或更多條機器指令,可能會出現中斷(在單處理器上)或來自另一個處理器的訪問干擾。這增加了解決方案的複雜性。
基於硬件的解決方案:
1)在此特殊的硬件規定製成爲使得所執行的操作是原子(作爲單操作)。 2)許多處理器都有一條指令,它在單個原子操作中測試和修改內存中的某個位置,使得在檢查位置和修改位置之間不會有其他操作干預。 例如,Intel IA32具有交換寄存器和內存位置的XCHG操作。
相關問題
- 1. 操作系統:Peterson的解決方案
- 2. 基於棱鏡的解決方案基於棱鏡的解決方案
- 3. 基於解決方案
- 4. Cplex給出瞭解決方案狀態= 6,這意味着我的概率沒有最佳解決方案?
- 5. 解決方案文件夾外部解決方案目錄
- 6. VS 2010解決方案取決於另一個解決方案
- 7. 什麼是可能的解決方案
- 8. 'PageJacking'的解決方案是什麼?
- 9. 什麼樣的解決方案是thymeleaf?
- 10. ,基本解決方案
- 11. 基於Web的打印解決方案
- 12. 基於Java的Webmail解決方案
- 13. 我的緩存解決方案解決方案是否安全?
- 14. 基於Web的掃描解決方案
- 15. 基於LDAP的Office 365解決方案
- 16. Visual Studio:單一解決方案還是很多解決方案?
- 17. 分支解決方案
- 18. 這是Kotlin koan「分區」的首選解決方案,爲什麼?
- 19. 解決方案包 - 部署
- 20. 有人可以告訴我,在Peterson的關鍵部分的解決方案中發生了什麼?
- 21. paymentWithProductIdentifier是什麼替代解決方案?
- 22. Haskell任務 - 什麼是解決方案
- 23. 重構解決方案文件夾到新解決方案
- 24. 爲VS2008解決方案創建VS2010解決方案文件
- 25. ,這是什麼工廠方法的最佳解決方案
- 26. 包含多個解決方案的Visual Studio解決方案
- 27. 軟件設計解決方案 - 遊戲
- 28. SSRS解決方案部署
- 29. 安裝Nuget軟件包解決方案
- 30. 部署CRM解決方案
一些同步方法需要的硬件支持,例如原子指令,而這看起來似乎是不需要硬件支持的解決方案,即僅用於軟件的解決方案。 – 2012-08-05 08:07:49