Karteikarten
6. Очереди сообщений. Семафоры. Общая память.
Karten in diesem Stapel (7)
- 1Принцип межпроцессного взаимодействия с использованием объектов System VСначала получаем ключ объекта через ftok, которому передаём путь к реальному файлу в ФС. Потом создаём или открываем по этому ключу ресурс.
- 2Принцип межпроцессного взаимодействия с использованием объектов POSIXИмя объекта - произвольная строка, начинающаяся на '/'.
Чтобы удалить объект, надо сделать один раз unlink и во всех запущенных процессах close. - 3Очередь сообщений. Отличия от PIPEПозволяет передавать сообщений произвольной длины. В пайпах работаем с сырыми байтами, а тут уже с сообщениями.
- 4Различия очередей сообщений System V и POSIXSYSTEM V: позволяет поддерживать несколько параллельных очередей сообщений разных типов. Также реализует функциональность приоритетной очереди.
POSIX: только приоритетная очередь. Позволяет одному потоку делать асинхронное чтение. - 5Семафоры. Различия семафоров System V и POSIXСемафор - объект, позволяющий организовывать доступ к ресурсу ограниченного числа процессов.
В System V можно работать с целыми массивами семафоров сразу и делать транзакции операций.
В POSIX 1 семафор и 1 операция за раз. Есть безымянные семафоры и доступ с таймаутом. - 6Общая памятьВозможность нескольким процессам иметь отображение в своё ВАП одного и того же фрагмента памяти. Изменение данных одним процессом отображается во всех других.
- 7Принцип использования общей памяти в POSIXЧерез вызов mmap - он позволяет отобразить файл из ФС в ВАП процесса.
С помощью shm_open можно открыть виртуальный файл 0-го размера, увеличить его размер через ftruncate. Дальше использовать как простой файл через mmap.
Informationen
- Beschreibung
- Конспект к шестой лекции курса "Многопоточное программирование" на stepic.org
- Erstellt von
- Sergei Fomin
- Aufrufe
- 36
- Tags
- Bewertung