Система V и Posix
В следующей таблице перечислены различия между System V IPC и POSIX IPC.
СИСТЕМА V | POSIX |
---|---|
AT&T представила (1983) три новых формы средств IPC, а именно очереди сообщений, разделяемую память и семафоры. | Стандарты интерфейса переносимой операционной системы, определенные IEEE для определения интерфейса прикладного программирования (API). POSIX охватывает все три формы IPC. |
SYSTEM V IPC охватывает все механизмы IPC, а именно каналы, именованные каналы, очереди сообщений, сигналы, семафоры и разделяемую память. Он также охватывает сокеты и сокеты домена Unix. | Практически все основные концепции такие же, как и в System V. Отличается только интерфейсом. |
Вызов интерфейса общей памяти shmget (), shmat (), shmdt (), shmctl () | Вызов интерфейса общей памяти shm_open (), mmap (), shm_unlink () |
Вызов интерфейса очереди сообщений msgget (), msgsnd (), msgrcv (), msgctl () | Вызовы интерфейса очереди сообщений mq_open (), mq_send (), mq_receive (), mq_unlink () |
Вызов интерфейса семафоров semget (), semop (), semctl () | Интерфейс семафоров вызывает именованные семафоры sem_open (), sem_close (), sem_unlink (), sem_post (), sem_wait (), sem_trywait (), sem_timedwait (), sem_getvalue () Семафоры без имени или памяти sem_init (), sem_post (), sem_wait (), sem_getvalue (), sem_destroy () |
Использует ключи и идентификаторы для идентификации объектов IPC. | Использует имена и дескрипторы файлов для идентификации объектов IPC |
NA | Очереди сообщений POSIX можно отслеживать с помощью API-интерфейсов select (), poll () и epoll. |
Предлагает вызов msgctl () | Предоставляет функции (mq_getattr () и mq_setattr ()) для доступа или установки атрибутов 11. IPC - System V & POSIX |
NA | Многопоточная безопасность. Охватывает функции синхронизации потоков, такие как блокировки мьютексов, условные переменные, блокировки чтения-записи и т. Д. |
NA | Предлагает несколько функций уведомления для очередей сообщений (например, mq_notify ()) |
Требуются системные вызовы, такие как shmctl (), команды (ipcs, ipcrm) для выполнения операций состояния / управления. | Объекты общей памяти можно исследовать и управлять с помощью системных вызовов, таких как fstat (), fchmod () |
Размер сегмента разделяемой памяти System V фиксируется во время создания (через shmget ()). | Мы можем использовать ftruncate () для настройки размера базового объекта, а затем воссоздать сопоставление с помощью munmap () и mmap () (или специфичной для Linux mremap ()) |