我必须编写一个守护进程来决定互斥锁的访问策略(它确定哪个进程获得互斥锁,如果多个进程在任何条件下都需要相同的互斥锁)
为此,我建立了一些代码:L 1 231(LOCK mtx_id process_pid)。 当进程请求互斥锁时,它会在共享内存区域写入一些与上面类似的代码。 守护进程读取它。 (对于每个互斥锁,我都有一个进程等待获取它的队列。)将进程pid放入队列中。 如果它被解锁,则弹出队列,给予互斥。(写入共享内存id_mutex和获取它的pid进程,以便其他进程读取并知道谁拥有互斥锁。
我的问题是:如何处理更多进程请求相同的互斥锁?首先创建它们并手动选择所请求的过程似乎不是一个好的选择。
感谢任何帮助。感谢你
答案 0 :(得分:0)
许多操作系统都有一个可以按名称存储的操作系统对象的容器,目录,目录或注册表。存储在容器中后,可以按名称查找它们并返回引用令牌。然后可以使用该令牌来访问该对象。
像进程间互斥体这样的同步对象将是容器中存储的良好候选对象。然后,多个进程可以按名称查找互斥锁并使用它。
这些编目对象经常被引用计数,以便只有在带有令牌的最后一个进程要求它被关闭时才会销毁它们。
BTW - 看到评论,你的设计成功......有问题:(