在共享内存系统中,当两个进程共享一个共享内存系统时,其中一个进程被杀死后,共享内存系统如何通知另一个正在运行的进程被杀死?
发布于 2012-02-01 00:34:01
共享内存,顾名思义,是一种内存,一种被动对象。您需要使用互斥锁来跟踪另一个应用程序的活动。每个应用程序创建自己的互斥体,并等待另一个进程的互斥体。如果应用程序被终止,互斥锁状态将变为已放弃。
发布于 2012-02-01 08:22:02
一种方法是让父进程/控制进程作为子进程启动所有其他进程。
PostgreSQL的邮局主管和工作进程遵循此设计模式。
请注意,在大多数Unix系统上,互斥锁不会在进程终止期间被操作系统更改/解锁。信号量提供了一个撤销函数,但它们确实比互斥锁重得多。YMMV.
https://stackoverflow.com/questions/9083180
复制相似问题