¡GoConqr estrena diseño! Cuéntanos qué te parece.

Fichas

6. Очереди сообщений. Семафоры. Общая память.

Sergei Fomin Многопоточное программирование на C/C++ Certificate Inglés 7 fichas

Fichas del conjunto (7)

  1. 1Принцип межпроцессного взаимодействия с использованием объектов System VСначала получаем ключ объекта через ftok, которому передаём путь к реальному файлу в ФС. Потом создаём или открываем по этому ключу ресурс.
  2. 2Принцип межпроцессного взаимодействия с использованием объектов POSIXИмя объекта - произвольная строка, начинающаяся на '/'.
    Чтобы удалить объект, надо сделать один раз unlink и во всех запущенных процессах close.
  3. 3Очередь сообщений. Отличия от PIPEПозволяет передавать сообщений произвольной длины. В пайпах работаем с сырыми байтами, а тут уже с сообщениями.
  4. 4Различия очередей сообщений System V и POSIXSYSTEM V: позволяет поддерживать несколько параллельных очередей сообщений разных типов. Также реализует функциональность приоритетной очереди.
    POSIX: только приоритетная очередь. Позволяет одному потоку делать асинхронное чтение.
  5. 5Семафоры. Различия семафоров System V и POSIXСемафор - объект, позволяющий организовывать доступ к ресурсу ограниченного числа процессов.
    В System V можно работать с целыми массивами семафоров сразу и делать транзакции операций.
    В POSIX 1 семафор и 1 операция за раз. Есть безымянные семафоры и доступ с таймаутом.
  6. 6Общая памятьВозможность нескольким процессам иметь отображение в своё ВАП одного и того же фрагмента памяти. Изменение данных одним процессом отображается во всех других.
  7. 7Принцип использования общей памяти в POSIXЧерез вызов mmap - он позволяет отобразить файл из ФС в ВАП процесса.
    С помощью shm_open можно открыть виртуальный файл 0-го размера, увеличить его размер через ftruncate. Дальше использовать как простой файл через mmap.

Información

Descripción
Конспект к шестой лекции курса "Многопоточное программирование" на stepic.org
Creado por
Sergei Fomin
Visitas
36
Valoración

Escríbenos

¿Sobre qué es tu mensaje?

¿Qué te parece el nuevo diseño?

¿Te gusta?