gpt4 book ai didi

multithreading - 'critical section algorithm' 中的进度和有限等待是什么?

转载 作者:行者123 更新时间:2023-12-04 22:12:04 26 4
gpt4 key购买 nike

考虑以下代码

  //proces i:                             //proces j:

flag[i] = true; flag[j] = true;
turn = j; turn = i;
while(flag[j] == true && turn==j); while(flag[i] == true && turn == i);

<critical section> <critical section>

flag[i] = false; flag[j] = false;

<remainder section <remainder section>

我确定上面的代码将满足互斥属性,但我不确定以下内容
  • progress 到底是什么意思?并且上面的代码是否满足它,上面的代码要求严格交替执行临界区。这被认为是 progress 吗?
  • 从我看到的上面的代码没有维护任何关于进程进入临界区的次数的信息,这是否意味着上面的代码不满足 bounded waiting
  • 最佳答案

    Progress 意味着该进程最终会做一些工作 - 一个可能不是这种情况的例子是低优先级线程可能被高优先级线程抢占和回滚。一旦您的流程到达它们的临界区,它们就不会被抢占,因此它们会取得进展。
    Bounded waiting 意味着该进程最终将获得处理器的控制权 - 可能不是这种情况的一个例子是当另一个进程在临界区有一个非终止循环而线程不可能被中断时。如果临界区终止并且剩余部分不会重新调用进程的临界区(否则一个进程可能会继续运行其临界区,而另一个进程从未获得对处理器的控制),则您的代码有界等待。

    关于multithreading - 'critical section algorithm' 中的进度和有限等待是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25962097/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com