GoConqr has a new look! Let us know what you think.

Flashcards

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

Sergei Fomin Многопоточное программирование на C/C++ Certificate English 7 cards

Cards in this deck (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.

Information

Description
Конспект к шестой лекции курса "Многопоточное программирование" на stepic.org
Created by
Sergei Fomin
Views
36
Rating

Feedback

What is it about?

What do you think of the new look?

How do you like it?