首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关系信号量,互斥量,监视器,测试集和消息传递

关系信号量,互斥量,监视器,测试集和消息传递
EN

Stack Overflow用户
提问于 2020-02-14 05:48:38
回答 1查看 56关注 0票数 0

我正在为考试学习,但教授给出的幻灯片没有多大帮助,任何搜索我都只给出了模糊的结果。据我所知:

信号量:有down()up()操作的计数器,当counter = 0调用down(counter)时,这些计数器会忙着等待,直到counter > 0再次出现

Mutex:只能由其拥有的进程/线程释放的二进制信号量

用于检索二进制值并将其设置为1的Test-and-set: CPU指令;用于实现互斥。

监视器:强制同步访问的对象,即一次只能访问一个进程/线程;可以使用互斥实现

消息传递:进程通过某个共享内存位置发送消息,以便彼此告知对方何时可以继续工作;这实际上是一个信号量,它不仅充当计数器,而且还可用于交换其他数据,即一些在生产者-消费者问题中产生的数据。

我有以下问题:

  1. 这些定义正确吗?
  2. 是否有一种没有互斥的实现监视器的方法?
  3. 是否有一种方法可以实现没有测试和集的互斥,特别是没有用于测试和集合的
  4. ,而不是实现互斥?

EN

回答 1

Stack Overflow用户

发布于 2020-02-15 02:32:19

  1. No.您可能能够或可能无法在繁忙的等待中实现它们,但这绝不是定义的一部分。当信号量可用时,获取的定义将返回;return将使信号量可用。他们是怎么做的取决于他们。没有其他的definition.
  2. Yes.粗略地说,您可以使用任何{消息传递、互斥、信号量}来实现{消息传递、变送器、信号量}。通过传递性,任何你可以用这些来实现的东西,你都可以用其中的任何一个来实现。但记住,你可以把球踢到沙滩上。球是像鲸鱼一样的物体,因此你可以把鲸鱼踢到海滩上。这可能有点困难。
  3. 是的。问问你最喜欢的搜索和蠕变服务,关于dekker和他精彩的algorithm.
  4. Yes.。例如,您可以使用test+set和test+clr实现多cpu状态机。图灵机器非常灵活;简单的抽象(如互斥)意味着将这种灵活性限制在comprehensible.

中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60220703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档