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 ()) |