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