Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Булдакова Р. А. Программное обеспечение ЦСК_200....doc
Скачиваний:
15
Добавлен:
15.04.2019
Размер:
1.92 Mб
Скачать

7.2 Структура операционной системы

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

Основные функции операционной системы выполняют подсистемы (рисунок 18):

1) управляющих программ (программ-диспетчеров), осуществляющих управление очередностью запуска во времени остальных программ внутреннего ПО;

2) программ ввода-вывода, организующих обмен информацией между внешними устройствами и оперативной памятью ЭУС по заявкам программ внутреннего ПО;

3) программ связи “человек-машина”, обеспечивающих взаимодействие обслуживающего персонала с ЭУС;

4) программ запуска ЦСК, осуществляющих установку памяти ЭУС и оборудования станции в исходное состояние и проверку его работоспособности.

Рисунок 24 – Состав операционной системы

Диспетчер прерываний выполняет функции запуска программ разных приоритетных уровней и работает в режимах:

1) прерывания;

2) восстановления.

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

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

2) прерываемая программа записывается в очередь на восстановление;

3) определяется номер уровня программы, которую нужно запустить по сигналу от блока прерывания программ;

4) загружается новое содержимое в счетчик команд, регистры общего назначения, регистр маски защиты от прерываний и т.д. из зоны рабочих ячеек диспетчера приоритетного уровня, которому передается управление.

В режиме восстановления диспетчер прерываний получает управление от диспетчера текущего приоритетного уровня по окончании выполнения последней программы этого уровня:

1) Блокируется от сигналов со стороны блока прерывания программ.

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

3) Из зоны рабочих ячеек слово состояния восстанавливаемой программы переписывается в регистры процессора (восстанавливается содержимое счетчика команд, регистров общего назначения, маски защите от прерываний и т.д.).

7.3 Запуск программ по расписанию

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

1) периодические процессы (детерминированные):

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

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

2) процессы с недетерминированным периодом (период запуска носит случайный характер):

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

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

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

Рисунок 25 – Диспетчеризация программных процессов

Сигналы от таймера поступают через фиксированные отрезки времени, которые называют первичными периодами (подциклами). Величина первичного периода выбирается исходя из минимального периода запуска программ высокой срочности (t = 5…10 мс). При поступлении сигнала от таймера диспетчер прерываний прерывает выполнение программы основного уровня и передает управление диспетчеру уровня программ высокой срочности, который обеспечивает определенный порядок запуска программ своего уровня, После окончания выполнения программ данного подцикла диспетчер прерываний восстанавливает прерванную программу основного уровня. После окончания работы программ основного уровня, если нет следующего сигнала от таймера, могут быть запущены вспомогательные программы.

Рисунок 26 - Временная диаграмма

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

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

Рисунок 27 - Таблица расписания

Таблица расписания содержит двоичные переменные, отражающие необходимость запуска или пропуска программы в определенном подцикле расписания. Каждый столбец матрицы соответствует программе, а строка –первичному периоду запуска программ. Количество столбцов определяется по количеству периодических программ, а число строк рассчитывается, исходя из величин минимального и максимального периодов запуска. Наличие «1» на пересечении строки и столбца говорит о необходимости запуска соответствующей программы в подцикле. Если программа в данном подцикле не запускается, на пересечении строки и столбца будет записан «0». Таблица заполняется в соответствии с заданной периодичностью запуска программ.

В состав схемы программной реализации запуска программ по расписанию входят (рисунок 27):

- таблица расписания (матрица циклов МЦ);

- счетчик первичных периодов или подциклов (СПЦ);

- слово активности программ (САП);

- слово вызова программ (СВП);

- таблица начальных (базовых) адресов программ;

- программные модули (П0…Пn-1).

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

Слово активности программ используется для разрешения или запрета на запуск программы. Запрещение запуска может быть вызвано перегрузкой ЭУС. Выполнение программ в данном подцикле регулируется словом вызова программы, которое формируется путем логического умножения содержимого строки таблицы расписания и САП.

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

1) определяет номер строки в МЦ по содержимому СПЦ;

2) формирует СВП логическим умножением содержимого строки МЦ на САП;

3) осуществляет поразрядный анализ СВП посредством операции поиска крайней левой единицы. В случае её отсутствия через интервал Dt произойдет обращение к следующей строке МЦ.

Если “1” найдена, в данный разряд СВП записывается “0” с целью предотвращения повторной обработки процесса и выдается команда запуска соответствующей программы. Для этой цели номер разряда СВП пересчитывается в адрес таблицы начальных адресов программ, из которой извлекается базовый адрес нужного программного модуля. После окончания работы программы диспетчер анализирует следующие разряды СВП с целью обнаружения “1” и т.д. до тех пор, пока результат анализа не даст “0”.

Рисунок 27 - Схема программной организации запуска программ по расписанию

Рисунок 28 - Алгоритм запуска программ высокой срочности

52