Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Топ:
Определение места расположения распределительного центра: Фирма реализует продукцию на рынках сбыта и имеет постоянных поставщиков в разных регионах. Увеличение объема продаж...
Процедура выполнения команд. Рабочий цикл процессора: Функционирование процессора в основном состоит из повторяющихся рабочих циклов, каждый из которых соответствует...
Комплексной системы оценки состояния охраны труда на производственном объекте (КСОТ-П): Цели и задачи Комплексной системы оценки состояния охраны труда и определению факторов рисков по охране труда...
Интересное:
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Лечение прогрессирующих форм рака: Одним из наиболее важных достижений экспериментальной химиотерапии опухолей, начатой в 60-х и реализованной в 70-х годах, является...
Уполаживание и террасирование склонов: Если глубина оврага более 5 м необходимо устройство берм. Варианты использования оврагов для градостроительных целей...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
IPC (Inter-Process Communication – межпроцессное взаимодействие) — это набор способов обмена данными между множеством потоков в одном или более процессах. Процессы могут быть запущены на одном или более компьютерах, связанных между собой сетью.
Процесс – экземпляр выполняющейся программы:
- код и данные необходимые выполняемой программой;
- работа процессора по выполнению программы.
Методы IPC зависят от пропускной способности и задержки взаимодействия между потоками и типа передаваемых данных.
Методы IPC:
1. Обмен сообщениями. Сообщение реализуется путём посылки пакетов информации получателям, которые могут означать множество вещей: вызов функций, сигналы, данные. Этот термин широко используется в MPI.
2. Синхронизация. Приведение двух или нескольких процессов к такому их протеканию, когда определённые стадии разных процессов совершаются в определённом порядке, либо одновременно.Наиболее часто используемые средства синхронизации:
- Сигналы. Асинхронное уведомление процесса о каком-либо событии.
SIG_DFL - Подразумеваемые действия, зависящие от сигнала.
SIG_IGN - Игнорировать сигнал. Доставка сигнала не оказывает воздействия на процесс.
- Семафор. Объект, позволяющий войти в заданный участок кода не более чем n потокам. Определение введено Э. Дейкстрой.
- Мьютекс. Одноместный семафор, служащий в программировании для синхронизации одновременно выполняющихся потоков.
- Каналы (анонимные и именованные).
Анонимные (неименованные) каналы позволяют родственным процессам передавать информацию друг другу. Обычно такой канал используется для перенаправления стандартного ввода или вывода дочернего процесса так, что он может обмениваться данными со своим родительским процессом. Анонимные каналы не могут быть использованы в сети или неродственными процессами.
Именованные каналы используются для передачи данных между процессами, которые не являются родственными, и между процессами на разных компьютерах. Обычно, процесс-сервер создает именованный канал с широко известным именем или таким именем, которое предназначено для связи с клиентами. Процесс-клиент, который знает это имя, может открыть именованный канал в соответствии с ограничениями, наложенными сервером. После того как оба процесса присоединились к каналу, они могут обмениваться данными.
3. Разделяемая память. Позволяет осуществить обмен информацией не через ядро, а используя некоторую часть виртуального адресного пространства, куда помещаются и откуда считываются данные. После создания разделяемого сегмента памяти любой из пользовательских процессов может подсоединить его к своему собственному виртуальному пространству и работать с ним, как с обычным сегментом памяти. Недостатком такого обмена информацией является отсутствие каких бы то ни было средств синхронизации, однако для преодоления этого недостатка можно использовать технику семафоров.
Для работы с разделяемой памятью используются системные вызовы:
shmget — создание сегмента разделяемой памяти;
shmctl — установка параметров;
shmat — подсоединение сегмента памяти;
shmdt — отсоединение сегмента.
4. Вызов удаленных процедур (RPC - Remote Procedure Call). Класс технологий, позволяющих компьютерным программам вызывать функции или процедуры в другом адресном пространстве (как правило, на удалённых компьютерах).
Проблемы и задачи, которые необходимо решить при реализации RPC:
- Значения параметров должны копироваться с одного компьютера на другой. Для копирования параметров процедуры и результата выполнения через сеть выполняется их сериализация (процесс перевода какой-либо структуры данных в последовательность битов).
- В отличие от локального вызова удалённый вызов процедур обязательно использует транспортный уровень сетевой архитектуры (например, TCP).
- В реализации RPC участвуют как минимум два процесса — по одному в каждой машине. В случае если один из них аварийно завершится, второй будет безрезультатно ожидать ответа от умершего процесса.
- Проблема совместимости (неоднородность языков программирования и операционных сред) до сих пор не решена (пробовали решить с помощью введения одного общепринятого стандарта).
5. Очереди сообщений. Прежде чем процессы смогут обмениваться сообщениями, один из них должен создать очередь. Процессы, отправляющие или принимающие сообщение, могут приостанавливаться, если требуемую операцию невозможно выполнить немедленно. В частности, могут быть отложены попытки отправить сообщение в заполненную до отказа очередь, получить сообщение из пустой очереди и т.п. ("операции с блокировкой"). Если же указано, что приостанавливать процесс нельзя, "операции без блокировки" либо выполняются немедленно, либо завершаются неудачей.
msgget() – получение идентификатора очереди сообщения;
msgctl() – управление;
msgsnd() – отправка;
msgrсv() – прием.
|
|
|
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...
Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...
© cyberpedia.su 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!