Очереди и счетчики приема-передачи

Очереди и счетчики приема-передачи

В основе метода синхронизации выполнения задач, а также и для связи между задачами лежит семафор Дейкстры (Dijkstra). В 1968 году Дейкстра предложил примитив для синхронизации исполнения процессов в ОС с мультипрограммированием. Синхронизация — это способность задачи приостанавливаться и ждать до тех пор, пока другая задача не выполнит некоторую операцию. Семафор предоставляет задаче механизм ожидания.

Семафор имеет счетчик и список ожидания. Определены две операции (команды). Синхронизация задач осуществляется следующим образом. Оператор V увеличивает значение счетчика на 1. Оператор P проверяет значение счетчика; если оно больше 0, то уменьшает значение на 1 и дает возможность выполняться следующей команде в потоке. Если значение счетчика не больше 0, то оператор Р ждет пока значение увеличится и станет больше 0, прежде чем операция завершится и следующая команда сможет выполняться. То есть ситуация, когда при выполнении оператора Р счетчик не больше 0, означает ожидание. В этом случае, задача, выполнившая оператор Р, ждет до тех пор, пока какая-либо другая задача не увеличит счетчик с помощью оператора V.

Во многих случаях, при синхронизации желательно обменяться некоторой информацией или сообщением. Для поддержки синхронизации и передачи сообщений AS/ 400 определяет очередь приема-передачи SRQ (send/receive queue). SRQ — это структура данных в памяти, используемая как «почтовый ящик» для передачи сообщений от одной задачи к другой.

Когда исполняющаяся задача выполняет операцию «Отправить сообщение», в очередь SRQ, связанную с некоторой другой задачей, добавляется структура данных, называемая сообщением приема-передачи SRM (send/receive message). SRM содержит сообщение, которое исполняющаяся задача желает передать другой задаче. Когда исполняющаяся задача хочет получить сообщение из SRQ (из своего почтового ящика), она выполняет операцию «Принять сообщение». Если сообщения нет, то задача может подождать его поступления. Если она решает ждать, то TDE исполняющейся задачи извлекается из TDQ и помещается в список ожидания — часть каждой SRQ. Затем вызывается диспетчер задач, который выбирает готовую задачу наибольшей важности и делает ее исполняющейся.

Некоторое время спустя другая исполняющаяся задача выполняет для данной SRQ операцию «Отправить сообщение». Если TDE ждет сообщения, то он извлекается из SRQ и помещается в очередь TDQ в порядке важности (приоритетности). Если важность вновь добавленного в очередь TDE выше, чем у исполняющегося, то исполняющая задача вытесняется. Если в процессе ожидания находятся несколько SRQ, то разряд в заголовке SRQ указывает, следует ли при поступлении сообщения «разбудить» их все, или только первую.

Любая задача, чей TDE находится в очереди SRQ, по определению находится в состоянии ожидания. На рисунке 9.3 показаны перемещения TDE и то, каким образом положение TDE определяет состояние задачи.

Рисунок 9.3. Перемещения элемента диспетчеризации задач

На рисунке не показаны другие структуры данных, которые могут находиться в очередях TDE. Одна из таких структур — счетчик приема-передачи SRC (send/receive counter). SRC не занимается передачей сообщений, так что похож на обычный семафор. SLIC предоставляет операции «Отправить счетчик» и «Принять счетчик», которые позволяют синхронизировать задачи, если обмен сообщениями не нужен.

Некоторые читатели, знакомые с командами «SNDPGMMSG» (Send Program Message) и «RCVMSG» (Receive Message) в OS/400 могут спросить: имеют ли эти команды отношение к операциям, используемым структурой задач SLIC. Ответ: «Да, они состоят в очень тесном родстве». Формат SRM, SRQ и SRC спроектирован для управления задачами, но операции добавления и извлечения сообщений из очереди фундаментально одинаковы во всей системе. За реализацию всех этих функций отвечает SLIC.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Счетчики

Из книги автора

Счетчики Встроенный в браузер элемент управления range не показывает пользователю свое внутреннее значение. Вместо этого номер переводится в графическое представление ползунка. Это отлично для определенных типов данных. Другие типы данных предназначены для того, чтобы


Счетчики со свойством display: none

Из книги автора

Счетчики со свойством display: none Неотображаемые элементы, то есть элементы, для свойства display которых установлено значение none, не могут увеличивать или уменьшать значение счетчика.Например, в таблице стилей, представленной ниже, элементы H2 класса do_not_ display не увеличивают


Продвижение сайта и счетчики посещений

Из книги автора

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


Счетчики дескрипторов процессов

Из книги автора

Счетчики дескрипторов процессов Распространенной ошибкой программистов является пренебрежение закрытием дескрипторов после того, как необходимость в них отпала; это может стать причиной утечки ресурсов, что, в свою очередь, может приводить к снижению


Пример: функция приема сообщений в случае сокета

Из книги автора

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


Счетчики ссылок

Из книги автора

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


Разгоняем счетчики: от мифов к реальности

Из книги автора

Разгоняем счетчики: от мифов к реальности Давайте рассмотрим теперь, что собой представляет код JavaScript-счетчика. Обычно (в 99% случаев) он «вытаскивает» из клиентского окружения набор параметров: URL текущей страницы; URL страницы, с который перешли на текущую; браузер; ОС и т.


Счетчики дефектов

Из книги автора

Счетчики дефектов Группе разработчиков определенно необходим список текущих задач. К их числу относятся как задания на реализацию новых возможностей и функций, так и исправления ошибок. Для группы разумного размера (от 5 до 12 разработчиков) такой список должен содержать


Настройка Exim для приема почты

Из книги автора

Настройка Exim для приема почты В конфигурационном файле exim.conf предусмотрены различные опции, позволяющие указать серверу, следует ли интерпретировать адрес как локальный. Эти опции кратко описаны ниже.• local_domains. В качестве значения данной опции задается список доменных


20.10.5 Счетчики

Из книги автора

20.10.5 Счетчики Счетчик — это положительное целое число, которое увеличивается до максимального значения и затем сбрасывается в ноль. Известно, что 32-разрядный счетчик может увеличиваться до 2??-1 (4 294 967 295) и затем сбрасывается в 0. В версии 2 добавлен 64-разрядный счетчик,


Счетчики и средства производительности

Из книги автора

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


Простейшие устройства приема цифрового видеосигнала

Из книги автора

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


Путь шестой – анализ результатов трудоустройства или приема на учебу

Из книги автора

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


Механизм загрузки и приема снимков на продажу

Из книги автора

Механизм загрузки и приема снимков на продажу Как вы уже могли понять из предыдущих глав, вы не сможете просто так загружать сотнями совершенно любые снимки, которые сразу же поступят в продажу Все они проходят тщательную индивидуальную проверку и отбор. Для загрузки