Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Гл.4 ОС буклет.doc
Скачиваний:
7
Добавлен:
11.11.2018
Размер:
157.18 Кб
Скачать

4.1.2. Методы передачи сообщений

В основе методов передачи сообщений (message passing) лежат разные технологии, которые дают возможность потокам разных процессов (которые, возможно, выполняются на разных компьютерах) обмениваться информацией в виде фрагментов данных фиксированной или сменной длины, которые называют сообщениями (теззаез). Процессы могут принимать и отсылать сообщение, при этом автоматически обеспечивается их пересылка между адресными пространствами процессов одного компьютера или через сеть. Важной особенностью технологий передачи сообщений есть то, что они не опираются на совместно используемые данные - процессы могут обмениваться сообщениями, даже не знавая один об одном.

4.1.3. Технология отображаемой памяти

Еще одной категорией средств межпроцесового взаимодействия есть отображаемая память (mapped memory). В ряде ОС отображаемая память есть базовым системным механизмом, на котором основываются другие виды межпроцесорного взаимодействия и системные решения. Обычно отображаемую память используют в сочетании с интерфейсом файловой системы, в таком случае говорят о файлах, отображаемых в память (memory-mapped files).

Эта технология сводится к тому, что с помощью специального системного вызова (обычно это mmap() определенную часть адресного пространства процесса однозначно связывают с содержимым файла. После этого любая операция записывания в такую память служит причиной изменения содержимого отображенного файла, которая сразу становится доступной всем приложениям, которые имеют доступ к этому файла. Другие приложения тоже могут отобразить тот самый файл в свое адресное пространство и обмениваться через него данными друг с другом.

4.1.4. Особенности межпроцесорного взаимодействия

Теперь можно сравнить характеристики межпроцесорного взаимодействия с характеристиками взаимодействия потоков одного процесса.

  • Проблема организации обмена данными есть актуальной только для межпроцесорного взаимодействия, поскольку потоки обмениваются данными через общее адресное пространство. Обмен данными между потоками похожий на использование распределенной памяти, но не нуждается в подготовительных действиях.

  • Проблема синхронизации доступа к совместно используемым данным есть акту­альною для взаимодействия потоков и для межпроцесорного взаимодействия с использованием распределенной памяти. Использование механизма передачи сообщений не основывается на совместно используемых данных.

4.2. Базовые механизмы межпроцессового взаимодействия

В этом параграфе рассмотрим особенности организации взаимодействия между потоками разных процессов. Основной характеристикой такого взаимодействия есть то, что у процессов нет общего адресного пространства, поэтому здесь нельзя непосредственно работать с совместно используемыми данными, как это было возможно для потоков. Здесь говориться преимущественно о процессах, под которыми понимают потоки разных процессов.

4.2.1. Межпроцессовое взаимодействие на базе общей памяти

Для решения проблемы межпроцессорной синхронизации необходимо:

♦ во-первых, организовать общую память между процессами (это может быть распределенная память или файл, отображенный в память);

  • во-вторых, разместить в этой памяти стандартные объекты синхронизации (семафоры, мютексы, условные сменные);

♦ в-третьих, используя эти объекты, работать с совместно разработанны­ми данными, как это делалось в случае использования потоков.

Такой подход широко применяют на практике. К сожалению, довольно сложно предложить способ его реализации для межпроцесорной синхронизации в большинстве систем, поскольку разные системы предлагают разный набор средств организации общей памяти и средств сигнализации, которые могут работать в такой памяти. Универсальным решением в данном разе есть применения семафоров.