10. Взаимодействие процессов

 

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

Взаимодействие процессов удобно рассматривать в схеме производитель-потребитель. Например, программа вывода на печать производит последовательность символов, которые потребляются драйвером принтера, или компилятор производит ассемблерный текст, который затем потребляется ассемблером.

Для взаимодействия процесса-производителя и процесса-потребителя создается совместный буфер заполняемый процессом-производителем и потребляемым процессом потребителя.

Буфер имеет фиксированные размеры и, следовательно, процессы могут находится в состоянии ожидания, когда:

– буфер заполнен – ожидает процесс-производитель;

– буфер пуст – ожидает процесс-потребитель.

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

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

Транспортеры (каналы). Являются средством взаимодействия родственных процессов, представляют собой область памяти имеющую файловую организацию, для которой обеспечивается запись и считывание данных в транспортеры. Реализуется очередь обслуживания. Порядок записи данных на транспортер не изменен, не допускается повторное считывание данных. Обмен данными происходит не непосредственно, а через транспортер. Из вызвавшего процесса задается размер транспортера. Дочерние процессы могут использовать родительский транспортер.

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

Элемент очереди может быть считан с уничтожением или без уничтожения этого элемента. Чтение элемента может осуществляться в соответствии с механизмом очереди или стека. Чтение элементов очереди осуществляет только создающий очереди процесс, все другие процессы могут только записать элемент в очередь. Создающий процесс может выполнять следующие действия над очередью:

– создание очереди;

– просмотр очереди;

– чтение очереди;

– закрытие очереди.

Записывающий процесс осуществляет действия:

– открыть очередь;

– записать в очередь;

– закрыть в очередь.

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

–определение количества элементов в очереди в текущий момент;

– очистка очереди создавшим ее процессом.

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

Сигналы. Сигнал является механизмом передачи требования одного процесса к другому на немедленное выполнение действия.

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

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

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

Управление семафором реализуется с помощью функций:

– установки семафора с целью сигнализации;

– ожидания вызывающим потоком, пока семафор не будет выключен;

ожидание потоком выключения потоком одного из нескольких семафоров.


Информация о работе «Основы программирования»
Раздел: Информатика, программирование
Количество знаков с пробелами: 70107
Количество таблиц: 0
Количество изображений: 0

Похожие работы

Скачать
35016
10
1

... различных свойств. В результате выполнения методов объекта могут происходить новые события, воспринимаемые другими объектами программы или пользователем. 2. Интегрированная среда разработки Delphi: назначение и общее описание среды   Delphi – это потомок среды программирования Turbo Pascal. Название среды произошло от названия города в Древней Греции, где находился знаменитый Дельфийский ...

Скачать
69354
1
0

... , сколько времени потребуется для его составления, как много места для возможных ошибок? Естественно, об этом задумывались и авторы языков программирования. Поэтому во всех существующих языках имеются типы переменных, отвечающие за хранение больших массивов данных. В языке Паскаль они так и называются: "массивы".    Массивом будем называть упорядоченную последовательность данных одного типа, ...

Скачать
51776
17
0

... урожай который может быть обеспечен генетическим потенциалом сорта и приходом ФАР при реально существующих среднемноголетних условиях и применением агротехники. В Свердловской области величина действительно возможного урожа в основном определяется влагообеспеченностью, особенно продуктивной ее частью, которая рассчитывается по данным годового количества осадков. Таблица 7 Среднемноголетние ...

Скачать
39078
10
0

... следует до заморозков. Засилосованные початки в молочно – восковой спелости приравниваются по количеству кормовых единиц (на сухое вещество) к спелому зерну кукурузы. Следовательно, целесообразно их убирать и силосовать отдельно от стеблей и листьев. Технология возделывания и уборки кукурузы Уточни с препадом на счет дат и вид работ. 1 и 2 переставь местами строчки. № Виды работ Объем ...

0 комментариев


Наверх