System V e Posix

A tabela a seguir lista as diferenças entre System V IPC e POSIX IPC.

SISTEMA V POSIX
A AT&T introduziu (1983) três novas formas de recursos IPC, a saber, filas de mensagens, memória compartilhada e semáforos. Padrões de interface de sistema operacional portátil especificados pelo IEEE para definir a interface de programação de aplicativos (API). POSIX cobre todas as três formas de IPC
O SYSTEM V IPC cobre todos os mecanismos de IPC, viz., Pipes, pipes nomeados, filas de mensagens, sinais, semáforos e memória compartilhada. Ele também cobre soquetes e soquetes de domínio Unix. Quase todos os conceitos básicos são iguais aos do Sistema V. Só difere com a interface
Interface de memória compartilhada chama shmget (), shmat (), shmdt (), shmctl () Interface de memória compartilhada chama shm_open (), mmap (), shm_unlink ()
A interface da fila de mensagens chama msgget (), msgsnd (), msgrcv (), msgctl () A interface da fila de mensagens chama mq_open (), mq_send (), mq_receive (), mq_unlink ()
A interface do semáforo chama semget (), semop (), semctl () Chamadas de interface de semáforo Semáforos nomeados sem_open (), sem_close (), sem_unlink (), sem_post (), sem_wait (), sem_trywait (), sem_timedwait (), sem_getvalue () Semáforos sem nome ou baseados em memória sem_init (), sem_post (), sem_wait (), sem_getvalue (), sem_destroy ()
Usa chaves e identificadores para identificar os objetos IPC. Usa nomes e descritores de arquivo para identificar objetos IPC
N / D As filas de mensagens POSIX podem ser monitoradas usando APIs select (), poll () e epoll
Oferece chamada msgctl () Fornece funções (mq_getattr () e mq_setattr ()) para acessar ou definir atributos 11. IPC - System V e POSIX
N / D Multi-thread seguro. Abrange funções de sincronização de thread, como bloqueios de mutex, variáveis ​​condicionais, bloqueios de leitura e gravação etc.
N / D Oferece poucos recursos de notificação para filas de mensagens (como mq_notify ())
Requer chamadas de sistema, como shmctl (), comandos (ipcs, ipcrm) para realizar operações de status / controle. Objetos de memória compartilhada podem ser examinados e manipulados usando chamadas de sistema como fstat (), fchmod ()
O tamanho de um segmento de memória compartilhada do System V é fixado no momento da criação (via shmget ()) Podemos usar ftruncate () para ajustar o tamanho do objeto subjacente e, em seguida, recriar o mapeamento usando munmap () e mmap () (ou o mremap específico do Linux ())