有关进程间通信

发布于 2022-10-15 07:38:07 字数 539 浏览 31 评论 0

=========
第一个问题:
=========
我所了解的,忙等待互斥、信号量、互斥量、管程这4个东东都应该是属于对共享资源所采取的保护机制,为何与IPC(进程间通信)关联在一起呢?这4个东东又是如何实现进程间通信的呢?进程间通信应与“消息传递”这个机制关联在一起才对阿.......

=========
第二个问题:
=========
如何实现信号量?我所指的是不用现成的函数实现,而是用C或汇编实现(可以只列伪代码,简单介绍实现步骤,如第一步、第二步等)。

=========
第三个问题:
=========
关于原子操作,我的理解是只能由2条指令实现(可能还有其他指令,这得根据不同CPU而定),TSL和XCHG。而实现共享资源的有效保护就有以下方法,如:忙等待互斥、信号量、互斥量、管程等。不论他们4种方法当中的哪一种实现,都是由相关的“锁“或“信号量“或“条件变量“实现互斥的。而对“锁“或“信号量“或“条件变量“的读、写就需要原子操作,以防多个进程“同时”获得“允许“而进入临界区。我的理解对吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

别闹i 2022-10-22 07:38:07

回复 1# kallytin

    先顶一下

荒芜了季节 2022-10-22 07:38:07

回复 1# kallytin

  有人知道吗?

她比我温柔 2022-10-22 07:38:07

回复 3# kallytin

.........

苦笑流年记忆 2022-10-22 07:38:07

1.进程间通信为啥非要和消息联系呢?同步和互斥这本身就是一种信息的传递啊。比如一个信号量被一个进程p了,另一个进程再去获取就会阻塞住,这不就是相当于消息告诉他资源暂时不可用吗?说话是通信,手语也是,眼神也是。

2.这个你可以参考linux信号量的实现机制,虽然基本原理简单,但是细节处理的地方很多

3.我觉得你理解的对,比如涉及到一些计数器之类的变量,需要使用原子加或者减

=========
第一个问题:
=========
我所了解的,忙等待互斥、信号量、互斥量、管程这4个东东都应该是属于 ...
kallytin 发表于 2011-05-07 22:48

奈何桥上唱咆哮 2022-10-22 07:38:07

Second: Pls refer to ULK v3 /
Third: The reading and writing of Semaphore and Mutex are not required atomic, because the implement of them are making it!

穿越时光隧道 2022-10-22 07:38:07

Second: Pls refer to ULK v3 /
Third: The reading and writing of Semaphore and Mutex are not require ...
alexbuaa 发表于 2011-05-08 21:33

楼上,我没有看过ULK V3,但信号量的读、写(或者说检测、修改及可能发生的睡眠操作均属于原子操作)应为原子操作。你提供的原文是否还有上下文环境说明?

夏有森光若流苏 2022-10-22 07:38:07

楼上,我没有看过ULK V3,但信号量的读、写(或者说检测、修改及可能发生的睡眠操作均属于原子操作) ...
kallytin 发表于 2011-05-08 21:43

    Sorry these opinions are all  my personal  thinking, not original saying from ULK.

み格子的夏天 2022-10-22 07:38:07

1.进程间通信为啥非要和消息联系呢?同步和互斥这本身就是一种信息的传递啊。比如一个信号量被一个进程p了, ...
marsbible 发表于 2011-05-08 21:29

对于1,我不太明白你的解释。如果A和B两个进程间要传递数据(比如将字符串“abc”从进程A传递到进程B,用消息传递就比较简单直接,将该字符串从进程A复制到进程B),那通过信号量或忙等待等(之前列举的4种方法)该如何实现?

对于2,可否列出步骤?本人是个新手.......

緦唸λ蓇 2022-10-22 07:38:07

回复 9# kallytin

......

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文