【发布时间】:2018-01-18 06:10:46
【问题描述】:
我必须编写一个守护进程来决定互斥锁的访问策略(如果多个进程在任何条件下想要相同的互斥锁,它会确定哪个进程获得互斥锁)
为此,我建立了一些代码:L 1 231 (LOCK mtx_id process_pid)。 当一个进程请求一个互斥体时,它会在共享内存区域上写入一些类似于上面的代码。 守护进程读取它。 (对于每个互斥体,我都有一个进程等待获取它的队列。)将进程 pid 放入队列中。 如果已解锁,则弹出队列,给互斥体。(写入共享内存id_mutex和获得它的pid的进程,以供其他进程读取并知道谁拥有互斥体。
我的问题是:更多进程如何请求相同的互斥锁?首先创建它们并手动选择请求的进程似乎不是一个好选择。
感谢您的帮助。谢谢
【问题讨论】:
-
互斥锁需要守护进程吗?为什么要这么做?不能只使用状态数据吗?
-
..此外,“当进程请求互斥体时,它会在共享内存区域上写入” - 写入将需要互斥体。
-
...和'写入共享内存 id_mutex 和获得它的 pid 进程,以便其他进程读取并知道谁拥有互斥锁' 为什么其他进程会关心?
标签: concurrency operating-system mutex daemon