System V e Posix

La tabella seguente elenca le differenze tra System V IPC e POSIX IPC.

SISTEMA V POSIX
AT & T ha introdotto (1983) tre nuove forme di servizi IPC: code di messaggi, memoria condivisa e semafori. Standard di interfaccia del sistema operativo portatile specificati da IEEE per definire l'interfaccia di programmazione dell'applicazione (API). POSIX copre tutte e tre le forme di IPC
SYSTEM V IPC copre tutti i meccanismi IPC, vale a dire pipe, named pipe, code di messaggi, segnali, semafori e memoria condivisa. Copre anche socket e socket di dominio Unix. Quasi tutti i concetti di base sono gli stessi del sistema V. Differisce solo con l'interfaccia
Chiamate all'interfaccia di memoria condivisa shmget (), shmat (), shmdt (), shmctl () Chiamate all'interfaccia di memoria condivisa shm_open (), mmap (), shm_unlink ()
Chiamate all'interfaccia della coda messaggi msgget (), msgsnd (), msgrcv (), msgctl () Chiamate interfaccia coda messaggi mq_open (), mq_send (), mq_receive (), mq_unlink ()
Chiamate all'interfaccia semaforo semget (), semop (), semctl () Interfaccia semaforo Chiamate Semafori con nome sem_open (), sem_close (), sem_unlink (), sem_post (), sem_wait (), sem_trywait (), sem_timedwait (), sem_getvalue () Semafori senza nome o basati sulla memoria sem_init (), sem_post (), sem_wait (), sem_getvalue (), sem_destroy ()
Utilizza chiavi e identificatori per identificare gli oggetti IPC. Utilizza nomi e descrittori di file per identificare gli oggetti IPC
N / A Le code di messaggi POSIX possono essere monitorate utilizzando le API select (), poll () ed epoll
Offre la chiamata msgctl () Fornisce funzioni (mq_getattr () e mq_setattr ()) per accedere o impostare gli attributi 11. IPC - System V e POSIX
N / A Sicuro multi-thread. Copre le funzioni di sincronizzazione dei thread come i blocchi mutex, le variabili condizionali, i blocchi di lettura-scrittura, ecc.
N / A Offre poche funzionalità di notifica per le code di messaggi (come mq_notify ())
Richiede chiamate di sistema come shmctl (), comandi (ipcs, ipcrm) per eseguire operazioni di stato / controllo. Gli oggetti di memoria condivisa possono essere esaminati e manipolati utilizzando chiamate di sistema come fstat (), fchmod ()
La dimensione di un segmento di memoria condivisa di System V è fissata al momento della creazione (tramite shmget ()) Possiamo usare ftruncate () per regolare la dimensione dell'oggetto sottostante, quindi ricreare la mappatura usando munmap () e mmap () (o il mremap () specifico per Linux)