今天我正在阅读关于同步。我有点困惑阅读了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. Cplex给出了解决方案状态= 6,这意味着我的概率没有最佳解决方案?
- 4. VS 2010解决方案取决于另一个解决方案
- 5. ,基本解决方案
- 6. 基于Web的打印解决方案
- 7. 基于Java的Webmail解决方案
- 8. 我的缓存解决方案解决方案是否安全?
- 9. 基于Web的扫描解决方案
- 10. 基于LDAP的Office 365解决方案
- 11. Visual Studio:单一解决方案还是很多解决方案?
- 12. 分支解决方案
- 13. 解决方案包 - 部署
- 14. 有人可以告诉我,在Peterson的关键部分的解决方案中发生了什么?
- 15. 重构解决方案文件夹到新解决方案
- 16. 为VS2008解决方案创建VS2010解决方案文件
- 17. SSRS解决方案部署
- 18. 软件设计解决方案 - 游戏
- 19. 部署CRM解决方案
- 20. 安装Nuget软件包解决方案
- 21. 什么是这种称为竞争条件的解决方案?
- 22. Python解决方案
- 23. MSBuild解决方案
- 24. 递归解决方案的动态编程解决方案
- 25. 微软针对.NET的GWT解决方案是什么?
- 26. codechef解决方案
- 27. SharePoint解决方案设计
- 28. 为什么递归解决方案比DP解决方案有更复杂的基础案例?
- 29. Firefox的innerText解决方案
- 30. Qt:QStackedWidget解决方案
一些同步方法需要的硬件支持,例如原子指令,而这看起来似乎是不需要硬件支持的解决方案,即仅用于软件的解决方案。 – 2012-08-05 08:07:49