Существует две формы взаимодействия процессов:

1   передача данных между процессами (коммуникация)

2        синхронизация одного или нескольких процессов друг с другом

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

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

 

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

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

  • имя источника события (12 символов)
  • начальное значение (4 байта со знаком)
  • значение инкремента активизации и значение сигнального инкремента (2 байта со знаком)

Процессы выполняют вначале вызов прикрепления события. После этого любой процесс, прикрепивший источник событий, может использовать его тремя способами:

  1. Прочитать текущее значение.
  2. Изменить значение.
  3. Ожидать событие.

Каждый процесс сам декларирует ядру события, которое он будет ожидать от заданного источника события.

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

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

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

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

Системные функции и их форматы связаны с созданием события, прикреплением источника события к процессу, присвоение источнику событий нового значения, перехода процесса к ожиданию события, уничтожение источника событий и другие описаны подробно в приложении 4 учебного пособия «Организация и функционирование ОСРВ OS-9», Самара, 1996г.

 

Бесплатный хостинг uCoz