- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
今天我正在阅读有关同步的内容。读完 Peterson solution 后我有点困惑对于临界区问题是一个基于软件的解决方案。现在我的问题是:“基于软件的解决方案”是什么意思?
最佳答案
解决临界区问题和强制互斥有几种方法:
首先是基于软件的解决方案。该解决方案基于类似 Peterson algorithm 的算法, Dekker's algorithm和 Lamport's bakery algorithm (对于不止一个进程)保护临界区。这些解决方案仅假设内存访问级别的基本互斥。除此之外,假定不支持硬件、操作系统或编程语言。
软件方法的主要问题是它们的高进程开销和逻辑错误的风险(基于 Stallings 的操作系统内部结构)
除了软件解决方案,我们还有硬件解决方案,例如 Interrupt disabling , Compare&Swap instruction和交换指令。这些解决方案采用忙等待,并且存在饥饿和死锁的可能性。
另一种实现互斥的范例是使用信号量和监视器,它们是由操作系统和编程语言实现的机制。
关于synchronization - Peterson 的临界区解决方案是基于软件的解决方案——这是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11814806/
经典的无竞争复杂性 Peterson-2 algorithm是 4(因为它对共享寄存器内存执行 4 次读/写操作)是否有某种版本的 Peterson-2 算法,它需要较少的访问共享寄存器内存?显然1次
bool in_critical[2] = {false,false}; int turn; enter(int me, int other) { (S1:) in_critical[me] =
我编写了以下 Peterson 算法模型: bool want[2], turn ltl { []<>P[0]@cs } active [2] proctype P() { pid me =
今天我正在阅读有关同步的内容。读完 Peterson solution 后我有点困惑对于临界区问题是一个基于软件的解决方案。现在我的问题是:“基于软件的解决方案”是什么意思? 最佳答案 解决临界区问题
我有以下代码,我试图用它来理解彼得森的解决方案。当我对循环的小值运行此实现直到 9999 时,输出正确显示为 0,但是当我使用更高的循环值(如 9999999)测试它时,我得到的值接近 0,但不是 0
我读过这个关于 Peterson 的互斥算法。然后有一个问题,如果我们重新排序 do...while 循环中的第一个和第二个命令会发生什么?如果我们这样做,我看不到会发生什么......有人能告诉我我
我用多线程用 C++ 编写了 Peterson 算法的简单实现。该程序通过两个线程更改字符串。但我没有得到最终结果。我哪里错了? using namespace std; int flag[2]={0
我正在阅读“Operating System Concepts”并试图理解 Peterson 的解决方案(第 208 页),这是一种确保共享内存的两个进程不会同时访问共享资源的算法(可能会产生竞争条件
我正在尝试实现 Peterson's algorithm在 Java 中,暂时创建了以下内容 public class Peterson { private volatile boolean[
我需要对我的代码的反馈以执行以下声明,我走的路对吗? 问题陈述: 一个。实现一个具有私有(private) int 和三个公共(public)方法的信号量类:init、wait 和 signal。 w
大家好,我正在用 C 语言实现 Peterson 的算法。我有两个函数将由创建的线程执行,一个将变量加 1,另一个将同一个变量减 1。 该程序接收一个 int 类型的参数,该整数是我要创建的线程数的平
是的,这是一项家庭作业,但我已经尝试了所有可能的方法,但无法想出一个可能的方案。这个作业的目的是为了说明,在实现dekker算法/peterson算法之前,很可能两个进程不会先后走下去。 impor
我试图理解 Peterson 的 N-Process 算法,但我遇到了这个问题。 问题:假设 3 个进程具有进程 ID 0, 1 and 2 .这些进程在单处理器上并发执行,并使用 Peterson
我使用的是 Django 1.9、Python 3.6。我进行此迁移是为了尝试为任何缺少用户配置文件的用户填写用户配置文件。 但我收到以下错误。 奇怪的是“user”变量似乎是一个 User 实例。
(这个问题可能与“无软件推荐”规则有关;我理解为什么它可能会被关闭)。 在他们的论文中 F_2 Lanczos revisited 、Peterson 和 Monico 给出了 Lanczos 算法的
我是一名优秀的程序员,十分优秀!