На время выполнения текущей программы внутри ЭВМ и в управляемом ей процессе могут возникать события, требующие немедленной её реакции: она должна прервать обработку текущей программы и перейти к выполнению другой программы, специально предназначенной для этого события. Этот процесс прерывания программы имеет случайный характер, потому что моменты возникновения событий, требующих прерывания, заранее неизвестны. Каждое событие, требующее прерывания, сопровождается сигналом, оповещающим ЭВМ, - запросами прерывания. Программа, затребованная запросом прерываний, называется прерывающей программой. Причины прерываний, возникающих в ЭВМ:
- сбой в аппаратуре;
- переполнение разрядной сетки;
- деление на нуль;
- выход за пределы области памяти;
- требование операции ввода-вывода.
Фактически возникновение прерывания означает, что параллельно развивается несколько процессов. Для реализации прерывания в ЭВМ есть специальные аппаратурные и программные средства, совокупность которых называется системой прерывания программ или контроллером прерывания.
Основные функции системы прерывания:
- запоминание состояния прерываемой программы;
- осуществление перехода к прерывающей программе;
- восстановление состояния прерванной программы;
- возврат к прерванной программе.
При наличии нескольких источников запросов прерывания должен быть установлен определённый порядок (дисциплина) в обслуживании запросов, то есть, между запросами должны быть установлены приоритетные соотношения, определяющие, какой из нескольких поступивших запросов полежит обработке в первую очередь, и устанавливающие, имеет ли право данный запрос прерывать ту или иную программу.
Основные характеристики системы прерывания:
- общее число входов в систему прерывания (число источников запросов прерывания);
- глубина прерывания - максимальное число программ, которые могут прерывать друг друга;
- время реакции на запрос прерывания р
- время, необходимое для запоминания состояния прерываемой программы;
- время, необходимое для восстановления состояния прерванной программы.
Когда число причин прерывания превышает сотни, их разделяют на отдельные классы или уровни. Совокупность запросов, инициирующих одну и ту же прерывающую программу, образует класс или уровень прерывания. Объединение запросов в классы прерывания позволяет уменьшить объём аппаратуры, но связано с замедлением работы системы.
Информация, необходимая для перехода к прерывающей программе (в частности, ее начальный адрес) называется вектором прерывания. Векторы прерывания обычно хранятся в специальных ячейках памяти.
Центральное место в процедуре перехода к прерывающей программе занимают передача из регистра процессора в память (часто - в стек) на сохранение текущего вектора состояния прерываемой программы и загрузка в этот регистр вектора прерывания прерывающей программы.
В простейшем случае вектор прерывания состоит только из начального адреса прерывающей программы. Для организации прерываний необходимо вводить анализ приоритетов. Простейший вариант: номер приоритета равен номеру линии запросов к входу системы прерывания. Здесь приоритет жёстко фиксирован.
Прерывание с опросом флажков - определение местоположения крайней слева единицы в регистре запросов путём опроса. Расположенный на данном месте разряд соответствует самому приоритетному запросу.
При циклическом опросе источников прерывания при помощи дешифратора и элементов «И» в каждом такте проверяется наличие запроса прерывания, номер которого совпадает с кодом счётчика.
Программно-управляемый приоритет позволяет изменить приоритеты в процессе работы системы. Есть два способа: порог прерывания и маска прерывания.
Первый способ - изменение программным способом уровня приоритета программы, которая в данный момент выполняется процессором. Это, в свою очередь, определяет минимальный уровень приоритета запросов, которым разрешается прерывать программу, идущую на процессоре.
Второй способ используется чаще. Маска прерывания - это двоичный код, разряды которого поставлены в соответствие запросам или классам прерывания. Изменяя специальный код маски, можно включать и выключать разные приоритеты. Замаскированное прерывание либо игнорируется, либо запоминается.
Организация счёта времени
Управление ходом вычислительного процесса в режиме реального времени подразумевает выдачу сигналов включения и отключения определённых подпрограмм в заданные моменты. Это достигается путём использования в процессе вычислений счёта времени.
Счёт времени, или счётчики времени (СчВр) можно организовать различными способами, которые требуют различных затрат ресурсов, и при больших программных комплексах выбор того либо иного способа может влиять на производительность и надёжность ЭВМ или информационно-вычислительного комплекса (объединение рабочих станций и ЭВМ). Выделяют три способа организации СчВр: программный, аппаратный и смешанный. Основой счёта времени при любом из способов являются метки времени - сигналы генератора стабильной частоты Г. Они поступают на входы счётчиков непосредственно или через схему пересчёта.
Программный способ не требует специального оборудования. В этом случае сигналы прерывания генератора Г поступают в схему прерывания ЭВМ, причём данный канал имеет наивысший приоритет. По сигналу прерывания приостанавливается выполнение текущей программы, включаются подпрограммы СчВр, контроля состояния и передачи управления. Первые две программы выполняются для каждого программного счётчика при поступлении каждой метки времени, третья - передачи управления - в случае необходимости. Счётчиками времени при данной организации являются определённые ячейки ОП.
Период включения подпрограммы счёта времени Тс.в определяется частотой следования меток времени и зависит от требуемой точности управления. Подпрограмма счёта времени прибавляет или вычитает 1 из слов памяти, в которых организуются счётчики. Подпрограмма контроля сравнивает, не достигли ли значения счётчиков заданного значения. В случае достижения выполняется подпрограмма передачи управления. Она реализует функции подготовки заявок на включение программ, формирование признаков их включения и пр.
Любые изменения временных диаграмм решения задач при рассматриваемом способе организацию управления требуют дополнительного программирования.
Аппаратный способ организации требует увеличения объёмов аппаратуры по сравнению с программным. Устройство, реализующее аппаратный способ формирования временной диаграммы, состоит из схемы счёта времени и формирования сигналов о состояниях счётчиков, схемы формирования сигналов управления ходом вычислительного процесса и схемы управления. Возможны различные варианты построения этих схем.
Код, подаваемый i-й регистр в момент установки счётчика, должен представлять значение времени, являющееся суммой заданного интервала включения i-й программы Ti и текущего значения времени, описываемое текущим состоянием счётчика меток времени. То есть, в данной схеме на этапе подготовки информации для записи в счётчики, перед заданием каждого периода включения программы, ЭВМ необходимо вычислять код, который подаётся на регистр.
Выбор того или иного варианта построения схемы счёта времени и формирования сигналов о предельных состояниях счётчиков определяется наличием соответствующих БИС и микропроцессоров.
Структурная схема формирования сигналов управления на основе регистров состоит из регистров адреса и схем «И», разрешающих запись в регистр и считывание из регистра. В исходный момент времени i-й регистр устанавливается в нулевое состояние подачей сигнала «Уст. 0» по соответствующей шине. Затем, одновременно с установкой заданного кода времени в i-й счётчик схемы счёта времени, в данный регистр по разрешающему сигналу шины «Уст. адр.» записывается адрес перехода на включаемую программу. Сигнал нулевого состояния i-го счётчика времени (когда заданный интервал времени истек), поступающий из схемы счёта времени, считывает из регистра адрес, который по шине «Выд. адр.» передаётся в устройство управления.
Аппаратный способ требует значительно меньших затрат времени в цикле работы ЭВМ. ЭВМ должна записать в ОП коды, устанавливаемые в регистрах и на счётчиках схемы счёта времени, а также коды адресов переходов, заносящихся в регистры адресов схемы формирования сигналов управления. Данная подготовка информации производится однократно на интервале 100 циклов и более. (При втором варианте схемы построения счёта времени необходимо вычислять код, подаваемый на регистр кода времени перед заданием каждого периода включения.) Другая составляющая работы ЭВМ со счётчиками - выполнение прерывания при включении подпрограмм. Оно производится только по завершению интервала включения каждой из подпрограмм. При программном же способе обработка прерываний и показаний счётчиков в ОП производится по поступлению каждой метки времени, то есть, для программного способа организации счёта времени требуется больше машинного времени.
Программно-аппаратный способ организации СчВр сочетает достоинства аппаратного и программного способов: значительно сокращает время на выполнение программ счёта и управления и незначительно увеличивает затраты аппаратуры. Можно предложить много вариантов реализации этого способа. Каждый вариант должен учитывать специфику конкретной используемой ЭВМ. Рассмотрим пример реализации программно-аппаратного способа формирования сигналов управления (рис. 27.1).
Рисунок 27.1
Схема такого устройства работает следующим образом. С поступлением на счётный вход счётчика очередной метки времени он устанавливается в новое состояние. Этот же сигнал включает подпрограмму, которая выбирает из памяти последовательно коды заданных моментов времени, соответствующих временной диаграмме (временам включения программ). Эти коды последовательно поступают на регистр и сравниваются с содержимым счётчика.
Признак совпадения кодов направляется в устройство управления, где используется для формирования команды перехода. Здесь ЭВМ освобождается от необходимости после поступления каждой метки времени программным способом сравнивать состояния счётчика с временами включения программ и программно увеличивать или уменьшать на единицу слова памяти, отведённые под СчВр. Это делает аппаратура. На программное обеспечение ЭВМ ложатся только функции включения подпрограммы выдачи массива после поступления очередной метки времени и последовательной передаче кодов моментов времени на регистр.
Выбор того или иного способа организации СчВр может производиться на основе анализа затрат на единицу времени работы ЭВМ, затрат на создание и эксплуатацию аппаратуры. При определённых условиях вопрос выбора рационального принципа построения временной диаграммы может решаться исходя из реальных возможностей ЭВМ. Например, если ЭВМ не имеет достаточной производительности, то единственно возможным способом является аппаратный, поскольку замена типа процессора или увеличение их количества в составе средств вычислительной техники приводит к большим затратам по сравнению с затратами на аппаратуру счётчиков.
Итак, счётчики времени в ЭВМ считают метки времени, которые формируются Г, входящим в состав ЭВМ. Эта система - «внутренние часы» ЭВМ. В других объектах системы управления тоже могут быть свои «внутренние часы». Во многих случаях для обеспечения управления необходимо обеспечить взаимную синхронизацию «внутренних часов» разных компонентов АСУ. Для этого все часы «привязываются» к единому астрономическому времени. Это значит, что периодически в определённые моменты астрономического времени все «внутренние часы» устанавливаются в соответствующее состояние, после чего работают автономно до следующего момента корректировки.
Корректирующие сигналы единого времени посылаются в эфир специальными радиотехническими средствами - станциями сигналов единого времени (СЕВ). Каждая станция имеет расписание излучаемых частот и времени работы. Настраивая приёмник системы управления в определённый интервал времени на определённую частоту, устанавливают связь со станцией СЕВ, по которой затем производится привязка. При коррекции СчВр учитывается задержки СЕВ при распространении радиоволн по эфиру и в приёмном тракте.
Контрольные вопросы:
1 Охарактеризуйте причины прерываний, возникающих в ЭВМ.
2 Перечислите основные функции и характеристики системы прерывания.
3 Назначения вектора прерывания.
4 Что подразумевает управление ходом вычислительного процесса в режиме реального времени?
5 Способы организации счётчиков времени (СчВр).
6 Опишите программный способ организации счётчиков времени (СчВр).
7 Опишите аппаратный способ организации счётчиков времени (СчВр).
8 Структурная схема формирования сигналов управления на основе регистров.
9 Опишите программно-аппаратный способ организации счётчиков времени (СчВр).
10 Объясните работу схемы устройства, реализующего программно-аппаратный способ организации СчВр.
Лекция 28 Синхронизация задач. Управление оперативной памятью. Примеры операционных систем реального времени
Синхронизация задач
Хотя каждая задача в системе выполняет отдельную функцию, часто возникает необходимость во временной согласованности (синхронизации) действий, выполняемых различными задачами. Такая синхронизация необходима в следующих случаях:
1) функции, выполняемые различными задачами, связаны друг с другом. Например, если одна задача готовит исходные данные для другой, то последняя не выполняется до тех пор, пока не получит от первой задачи соответствующего сообщения;
2) необходимо упорядочить доступ нескольких задач к разделяемому ресурсу;
3) необходима синхронизация задачи с внешними событиями;
4) необходима синхронизация задачи во времени. Диапазон вариантов очень широк: от привязки момента выдачи какого-либо воздействия к точному астрономическому времени до простой задержки выполнения задачи на определенный интервал времени.
Рассмотрим эти варианты более подробно.
Связанные задачи. В дальнейшем будем называть сообщениями любой механизм явной передачи информации от одной задачи к другой. Объем сообщения может меняться от 1 бита до всей свободной емкости памяти системы.
Связь осуществляется передачей сообщений между задачами. Обмен может быть синхронным и асинхронным. В первом случае доставка сообщений производится после того, как она в плановом порядке получит управление. Обмен сразу инициирует работу планировщика и в действие вступает система приоритетов. Иногда бывает полезным ввести непосредственное управление приоритетами сообщений. Так, например, если после посылки нескольких сообщений на печать система решила отменить ее, сообщение об отмене должно встать в начало очереди и должно быть обработано как наиболее приоритетное.
Во втором - циркуляция сообщений оказывает непосредственное влияние на планирование задач. Так, задача, пославшая сообщение, блокируется, если для продолжения работы ей необходимо дождаться ответа.
Обмен может идти через очередь сообщений или путем передачи сообщений.
Очередь сообщений представляет собой буфер данных; очереди удобны для буферизации данных при обмене между задачами или процедурами обслуживания прерываний. Иногда сообщения передаются через отведенный для этого буфер определенного размера («почтовый ящик»). При этом, как правило, новое сообщение затирает старое, даже если последнее не было обработано.
Наиболее часто используется принцип, когда каждая задача имеет свою очередь сообщений, в конец которой ставится всякое вновь полученное сообщение. Стандартный принцип обработки очереди сообщений по принципу FIFO не всегда оптимально соответствует поставленной задаче. В некоторых ОС РВ предусматривается возможность, когда сообщение от высокоприоритетной задачи обрабатывается в первую очередь (в этом случае говорят, что сообщение наследует приоритет пославшей его задачи).
Сообщение может содержать как сами данные, предназначенные для передачи, так и указатель на такие данные. В этом случае обмен может производиться с помощью разделяемых областей памяти, разделяемых файлов и т. п.
Механизм передачи сообщений обеспечивает возможность обмена данными между двумя задачами путем прямого копирования данных из одной задачи в другую. Сообщение может содержать как сами данные, так и указатели на данные.
Общие ресурсы. Ресурс - это физическое устройство или область памяти, которые могут одновременно использоваться только одной задачей. При работе с общими ресурсами очень важно обеспечить правильную последовательность передачи общего ресурса от задачи к задаче. Для решения этой проблемы есть несколько методов.
1. Использование специального сервера ресурса, ответственного за упорядочивание доступа к нему. В этом случае запрос на изменение значения глобальных данных посылается серверу в виде сообщения, а он устанавливает порядок доступа.
2. Запрет прерывания на время доступа к ресурсу.
3. Использование для упорядочивания доступа к глобальным данным байта блокировки, или семафора.
Семафор - это целочисленная переменная типа счетчика. Поток, перед тем как использовать ресурс, проверяет его состояние и затем вычитает из содержимого счетчика 1. Если значение семафора было равно нулю, поток проходит сквозь семафор успешно и захватывает ресурс. Если значение семафора было меньше нуля, поток останавливается и ставится в очередь.
Закончив работу, нить увеличивает значение семафора на единицу, открывая его. Первая из стоящих в очереди нитей активизируется и вычитает из значения семафора единицу, снова закрывая его. Если же очередь была пуста, семафор остается открытым. Тогда первая нить, подошедшая к семафору, успешно пройдет через него.
В борьбе за общие ресурсы могут происходить проблемы.
1. «Зацикливание» (или «зависание»). Например, задача А захватила ресурс клавиатуры и ждет, когда освободится ресурс дисплея; задача Б, успев захватить ресурс дисплея, ждет, когда освободится клавиатура. Метод решения - освобождение всего, что было захвачено задачей и повторная попытка или использование сервера ресурса.
2. Инверсия приоритетов. Есть три задачи: высокоприоритетная А, среднеприоритетная В и низкоприоритетная С. Пусть задачи А и В в начальный момент времени блокированы в ожидании некоторого внешнего события. Тогда задача С получает семафор и не успевает его отдать, так как прерывается задачей А. Но поскольку семафор занят, задача А будет также блокирована и управление получит задача В. Она будет занимать процессорное время сколь угодно долго.
Синхронизация с внешними событиями. Это выполняется при помощи аппаратурных прерываний. Тенденции здесь следующие.
1. Стремление обеспечить максимально быструю и детерминированную реакцию на внешнее событие.
2. Стремление добиться максимально возможных периодов времени, когда прерывания в системе запрещены.
3. Реализовать минимально возможное количество функций прерывания за минимальное время.
Синхронизация во времени. Для этих целей используются таймеры. Для точной синхронизации с астрономическим временем применяются СЕВ с подстройкой по радиосигналам точного времени.
Дата: 2019-04-23, просмотров: 342.