¿Es el semáforo un mecanismo de IPC?¿Es el semáforo un mecanismo de IPC?
Respuesta
Depende del sistema operativo
En Windows llamado semáforos se puede acceder entre los procesos utilizando el CreateSemaphore() y OpenSemaphore() funciones
http://msdn.microsoft.com/en-us/library/ms682438%28VS.85%29.aspx
Sí, en muchas plataformas semáforos pueden sincronizar a través de procesos. Usará semáforos "nombrados" para esto: múltiples procesos acceden al objeto a través de un nombre, similar a los objetos del sistema de archivos.
En POSIX, puede crear semáforos con nombre a través del sem_open()
. Para los semáforos unmed, si el segundo parámetro para sem_init()
es distinto de cero, puede ser interproceso, aunque no estoy seguro exactamente cómo se supone que funciona un semáforo entre procesos sin nombre.
Tenga en cuenta que en algunos sistemas estas funciones pueden fallar con ENOSYS
si los semáforos entre procesos no son compatibles (por ejemplo, OpenBSD).
En Windows, puede crear semáforos con nombre a través del CreateSemaphore()
como ha mencionado @sergiom.
Los semáforos POSIX no se pueden nombrar o con nombre. Los semáforos sin nombre son asignados en memoria de proceso y inicializados. Los semáforos sin nombre pueden ser utilizables por más de un proceso, dependiendo de cómo el semáforo esté asignado e inicializado. [...]
¿Le gustaría saber more?
realidad semáforo es una herramienta de sincronización, pero se cuenta como un IPC bcoz que se accede en más de 1 proceso
IPC tiene tres diferentes usos como intercambio de datos (cola de mensajes, PIPE, FIFO), la sincronización (archivo bloqueos, semáforos, MUTEX) y señales.
- 1. Mecanismo de tiempo de espera de semáforo en C#
- 2. ¿Hay algún mecanismo mutex/semáforo en los scripts de shell?
- 3. ¿Cuál es el mejor mecanismo de IPC para datos de tamaño mediano en Perl?
- 4. ¿Es Boost IPC bueno?
- 5. ¿Qué es un semáforo que no bloquea?
- 6. ¿Las CPU Core i3/5/7 proporcionan un mecanismo para medir IPC?
- 7. ¿Cómo funciona el semáforo?
- 8. ¿Usar un mutex como semáforo?
- 9. ¿Cómo implementar un semáforo distribuido?
- 10. Semáforo: ¿Cuál es el uso del recuento inicial?
- 11. orden de semáforo garantizado?
- 12. Sistema V IPC contra POSIX IPC
- 13. Muestra simple de semáforo
- 14. ¿Es posible crear un mecanismo de aprovisionamiento eclipse p2 * localmente *?
- 15. ¿Cuál es el mecanismo detrás de startActivityForResult() en Android?
- 16. ¿cuál es el mecanismo de sizeof() en C/C++?
- 17. Cómo inicializar un semáforo binario en C
- 18. Semáforo y sincronización
- 19. ¿Quieres consultar un semáforo PHP sin bloquear?
- 20. php semáforo no funciona
- 21. Punto muerto del semáforo
- 22. CountDownLatch vs Semáforo
- 23. pthread_cond_wait versus semáforo
- 24. ¿Dónde utilizar el semáforo binario cuando están disponibles mutex?
- 25. Período de espera del semáforo
- 26. ¿Groovy proporciona un mecanismo de inclusión?
- 27. ¿Cuál es el mejor mecanismo de bloqueo del núcleo de Linux para un escenario específico
- 28. Cruz plataforma IPC
- 29. constructor mecanismo de invocación
- 30. fast-ish python/jython IPC?
Desde la versión 5.4 (noviembre de 2013) OpenBSD tiene [semáforos nombrados] (http://www.openbsd.org/cgi-bin/man.cgi?query=sem_open&apropos=0&sektion=0&manpath=OpenBSD+Current&arch=i386&format= html). Ver [esta publicación del blog] (http://www.tedunangst.com/flak/post/sem-open-named-semaphores) – user454322
Re: "No estoy seguro exactamente cómo se supone que funciona un semáforo interproceso sin nombre": Puedes poner el semáforo en la memoria compartida. Además, si crea un semáforo entre procesos sin nombre en la memoria normal y luego llama a 'fork()', tiene IPC entre los procesos padre e hijo. En ninguno de los casos, por supuesto, es un semáforo sin nombre detectable en la forma en que es un semáforo con nombre. Pero en general solo necesitas un semáforo si hay alguna otra relación entre los procesos, de todos modos. – ruakh