Статус документа
Статус документа

ГОСТ 34.913.3-91 (ИСО 8802-3-89) Информационная технология (ИТ). Локальные вычислительные сети. Метод случайного доступа к шине и спецификация физического уровня

     4.2. Метод управления доступом к среде ЛВС КДОН/ОК. Точная спецификация

4.2.1. Введение

В данном разделе, определяющем процедурную модель процесса УДС КДОН/ОК, приведено точное определение алгоритма с использованием программы на машинном языке Паскаль. При появлении какой-либо неоднозначности в определении отдельных вопросов метода КДОН/ОК на подуровне УДС за точным определением следует обращаться к процедурной спецификации на языке Паскаль, излагаемой в пп.4.2.7-4.2.10. В пп.4.2.2-4.2.6 в описательном виде представлен механизм доступа с формализованной терминологией, которая подлежит использованию в остальных подразделах.

4.2.2. Краткое описание процедурной модели

Ниже описаны функции метода КДОН/ОК на подуровне УДС, представленные в виде программной модели, записанной на машинном языке Паскаль. Эта процедурная модель призвана служить основой спецификации тех функций, которые должны обеспечиваться в любой реализации метода КДОН/ОК на подуровне УДС. Важно отличать, однако, модель от фактической реализации. Модель оптимизирована с точки зрения простоты и ясности представления, тогда как в практической реализации следует уделять основное внимание таким ограничениям, как эффективность и приспособленность к конкретным методам реализации или машинной архитектуре. В этом контексте следует рассматривать различные важные свойства процедурной модели.

4.2.2.1. Основные правила построения процедурной модели

1) Описание подуровня УДС на машинном языке никоим образом не означает, что соответствующие процедуры должны быть реализованы в виде программы, выполняемой ЭВМ. Конкретная реализация может содержать любые подходящие методы, включая аппаратные, микропрограммные, программные или любое сочетание этих методов.

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

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

4) Модель состоит из алгоритмов, которые должны выполняться многими параллельными процессами; в совокупности эти алгоритмы реализуют процедуру КДОН/ОК. Временные зависимости, вводимые потребностями параллельных действий, разрешаются двумя способами:

а) процессы относительно внешних событий. Предполагается, что алгоритм выполняется "очень быстро" относительно внешних событий в том смысле, что работа процесса никогда не нарушается и процесс никогда не запаздывает своевременно реагировать на внешние события. Если, например, необходимо принять кадр, то предполагается, что процедура управления доступом "прием_кадра" всегда будет привлечена до момента начала поступления рассматриваемого кадра;

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

Задача ставится так, чтобы конкуренция процессов отражала в модели параллелелизм, свойственный задаче реализации процедур подуровней УЛЗ и УДС, хотя фактическая параллельная их структура в конкретных реализациях, видимо, должна быть различной.

4.2.2.2. Использование языка Паскаль в процедурной модели

Относительно метода использования языка Паскаль в процедурной модели следует высказать несколько соображений.

1) Для упрощения спецификации некоторые ограничения языка Паскаль в настоящем стандарте обойдены:

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

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

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

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

2) В модели не используется никаких явных примитивов межпроцессовой синхронизации. Вместо этого все межпроцессовые взаимодействия выполняются путем тщательно стилизованной манипуляции коллективно используемыми переменными. Например, некоторые переменные устанавливаются только одним процессом, а проверяются другим таким образом, что конечный результат не будет зависеть от скоростей их выполнения. И если подобные методы в общем случае не очень подходят для конструирования крупных параллельных программ, то они упрощают данную модель и больше напоминают методы, свойственные большинству схожих применяемых технологий (микрокоды, аппаратные автоматы состояний и т.п.)

4.2.2.3. Организация процедурной модели

Используемая здесь процедурная модель основана на пяти взаимодействующих параллельных процессах. Три из них фактически определены в описании подуровня УДС. Остальные два обеспечиваются клиентами подуровня УДС (в число которых может входить подуровень УЛЗ) и используют интерфейсные операции, выполняемые подуровнем УДС. К этим пяти процессам относятся:

1) процесс передачи кадра;

2) процесс приема кадра;

3) процесс передачи бита;

4) процесс приема бита;

5) процесс отсрочки.

Организация модели показана на черт.4.3 и отражает тот факт, что обмен целыми кадрами инициируется клиентом подуровня УДС, тогда как синхронизация возрастания отсрочки при конфликте и передача отдельных битов основана на взаимодействиях между подуровнем УДС и битовым интервалом, зависимым от физического уровня.