Sistema V y Posix
La siguiente tabla enumera las diferencias entre System V IPC y POSIX IPC.
SISTEMA V | POSIX |
---|---|
AT&T introdujo (1983) tres nuevas formas de instalaciones IPC, a saber, colas de mensajes, memoria compartida y semáforos. | Estándares de interfaz de sistema operativo portátil especificados por IEEE para definir la interfaz de programación de aplicaciones (API). POSIX cubre las tres formas de IPC |
SYSTEM V IPC cubre todos los mecanismos de IPC, a saber, conductos, conductos con nombre, colas de mensajes, señales, semáforos y memoria compartida. También cubre socket y socket de dominio Unix. | Casi todos los conceptos básicos son los mismos que en System V. Solo difiere con la interfaz |
Llamadas de interfaz de memoria compartida shmget (), shmat (), shmdt (), shmctl () | Llamadas de interfaz de memoria compartida shm_open (), mmap (), shm_unlink () |
Llamadas de interfaz de cola de mensajes msgget (), msgsnd (), msgrcv (), msgctl () | Llamadas de interfaz de cola de mensajes mq_open (), mq_send (), mq_receive (), mq_unlink () |
Llamadas de interfaz de semáforo semget (), semop (), semctl () | Llamadas a la interfaz del semáforo Semáforos con nombre sem_open (), sem_close (), sem_unlink (), sem_post (), sem_wait (), sem_trywait (), sem_timedwait (), sem_getvalue () Semáforos sin nombre o basados en memoria sem_init (), sem_post (), sem_wait (), sem_getvalue (), sem_destroy () |
Utiliza claves e identificadores para identificar los objetos IPC. | Utiliza nombres y descriptores de archivos para identificar objetos IPC |
N / A | Las colas de mensajes POSIX se pueden monitorear usando las API select (), poll () y epoll |
Ofrece la llamada msgctl () | Proporciona funciones (mq_getattr () y mq_setattr ()) para acceder o establecer atributos 11. IPC - System V y POSIX |
N / A | Caja fuerte multihilo. Cubre funciones de sincronización de subprocesos como bloqueos mutex, variables condicionales, bloqueos de lectura y escritura, etc. |
N / A | Ofrece pocas funciones de notificación para colas de mensajes (como mq_notify ()) |
Requiere llamadas al sistema como shmctl (), comandos (ipcs, ipcrm) para realizar operaciones de estado / control. | Los objetos de memoria compartida se pueden examinar y manipular mediante llamadas al sistema como fstat (), fchmod () |
El tamaño de un segmento de memoria compartida de System V se fija en el momento de la creación (a través de shmget ()) | Podemos usar ftruncate () para ajustar el tamaño del objeto subyacente y luego volver a crear el mapeo usando munmap () y mmap () (o el mremap () específico de Linux) |