有关进程间通信的问题

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

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

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

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

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

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

发布评论

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

评论(8

爱*していゐ 2022-10-22 07:38:05

回复 1# kallytin

先顶一下

Saygoodbye 2022-10-22 07:38:05

回复 1# kallytin

有人知道吗?

只为一人 2022-10-22 07:38:05

进程间通信不仅仅只有信号量、互斥量,还有消息队列、共享内存
合理挑选使用合适的IPC,不要一味追求先进和 ...
BetonArmEE 发表于 2011-05-08 11:05

........似乎还没有回答到问题.........且忙等待互斥、信号量、互斥量、管程这4个都是几十年前的技术,何来先进华丽?....

不寐倦长更 2022-10-22 07:38:05

回复 5# kallytin

有人知道吗?

葵雨 2022-10-22 07:38:05

第一个问题:利用互斥机制告诉其他上下文“我要独占资源”、“我要释放资源”,本身不就是“消息传递”吗?

第二个问题是条件变量的标准例题,能讲一堂课...

第三个问题要看你如何定义“原子操作”

我还不会笑 2022-10-22 07:38:05

第一个问题:利用互斥机制告诉其他上下文“我要独占资源”、“我要释放资源”,本身不就是“消息传递”吗? ...
JohnBull 发表于 2011-05-08 23:56

楼上,谢谢你的回复。对于你的回复,我仍有以下疑问:

第一个问题,如果要实现将字符串"abc"从进程A“传递"到进程B,使用信号量、互斥、忙等待、管程等该如何实现?(用消息传递的方式我清楚)。

第二个问题,可否列出大致步骤?

第三个问题,不太明白你的解释.......可否说明得详细些

红墙和绿瓦 2022-10-22 07:38:05

我觉得unix 网络编程 第二卷 可以完全解决你的问题,我觉得 socket 信号 也可以作为ipc 的一种手段
unix 网络编程 第二卷 中有关于 可以实现posix 信号量的源码,我记得好像用了管道方式 svr4 信号量 共享内存 中 的pthread_cond 三种方式
用户态 一窜 中间不能被别人打断的代码,我觉得就可以认为是原子操作

乖乖 2022-10-22 07:38:05

我觉得unix 网络编程 第二卷 可以完全解决你的问题,我觉得 socket 信号 也可以作为ipc 的一种手段
unix 网 ...
wang_guang_ping 发表于 2011-05-09 14:59

楼上,是否可以说得具体点,因为似乎第一个问题和第三个问题并不能在你的回答中反映出(但从你的回答里似乎已包括了)........

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