Concurrency 互斥体进程的并发性

Concurrency 互斥体进程的并发性,concurrency,operating-system,mutex,daemon,Concurrency,Operating System,Mutex,Daemon,我必须编写一个守护进程来决定互斥对象的访问策略(如果多个进程在任何条件下都需要相同的互斥对象,它将确定哪个进程获得互斥对象) 为此,我建立了一些代码:l1231(锁定mtx\u id进程\u pid)。 当进程请求互斥时,它会在共享内存区域中写入一些类似于上面的代码。 守护进程读取它。(对于每个互斥体,我都有一个队列,processe正在等待获取它。)将进程pid放入队列中。 如果它被解锁,弹出队列,给出互斥锁。(在共享内存中写入id_互斥锁和获取它的pid进程,以便其他进程读取并知道谁拥有互斥

我必须编写一个守护进程来决定互斥对象的访问策略(如果多个进程在任何条件下都需要相同的互斥对象,它将确定哪个进程获得互斥对象)

为此,我建立了一些代码:l1231(锁定mtx\u id进程\u pid)。 当进程请求互斥时,它会在共享内存区域中写入一些类似于上面的代码。 守护进程读取它。(对于每个互斥体,我都有一个队列,processe正在等待获取它。)将进程pid放入队列中。 如果它被解锁,弹出队列,给出互斥锁。(在共享内存中写入id_互斥锁和获取它的pid进程,以便其他进程读取并知道谁拥有互斥锁。)

我的问题是:更多的进程如何请求相同的互斥?首先创建它们并手动选择请求的进程似乎不是一个好的选择


非常感谢您的帮助。谢谢

许多操作系统都有一个容器、目录、目录或注册表,可以按名称存储操作系统对象。一旦存储在容器中,就可以按名称查找这些对象,并返回一个引用令牌。然后可以使用该令牌访问该对象

像进程间互斥体这样的同步对象很适合存储在容器中。然后,多个进程可以按名称查找互斥体并使用它

这类编目对象通常是引用计数的,因此只有在最后一个带有令牌的进程要求关闭时,才会销毁它们


顺便说一句-请参阅评论,您的设计suc…存在问题:(

一个互斥体需要一个守护进程?你为什么要这样做?你不能只使用状态数据吗?。此外,“当一个进程请求一个互斥体时,它会在一个共享内存区域上写入”-写入时需要一个互斥体…以及“在共享内存id中写入互斥体和获取它的pid的进程,以便其他进程读取并知道谁拥有互斥体”为什么任何治疗过程护理?