АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Служба времени

Читайте также:
  1. I. Россия в период правления Бориса Годунова (1598-1605). Начало Смутного времени.
  2. I. Россия в период правления Бориса Годунова (1598-1605). Начало Смутного времени.
  3. II. РАСПРЕДЕЛЕНИЕ УЧЕБНОГО ВРЕМЕНИ ПО СЕМЕСТРАМ, ТЕМАМ И ВИДАМ УЧЕБНЫХ ЗАНЯТИЙ
  4. III. РАСПРЕДЕЛЕНИЕ УЧЕБНОГО ВРЕМЕНИ
  5. Агрохімічна служба в Україні у радянські часи
  6. Анализ использования рабочего времени
  7. Анализ использования фонда рабочего времени
  8. Антиномии пространства и времени
  9. Арифметическое представление пространства и времени
  10. Архивная служба в организации
  11. Билет 30. Понятие «Нового времени», Проблемы периодизации истории Нового времени.
  12. Билет №19. Правление Федора Иоанновича. Начало Смутного времени.

Отличительной особенностью КС, относящихся к классу СРВ, является требование согласования хода исполнения программ (в первую очередь - прикладных задач) и хода процессов во внешней среде. Такое согласование обеспечивается двумя способами:

· за счет оперативного реагирования на входную информацию о ходе внешних процессов,

· за счет отслеживания течения физического времени с учетом данных о темпе развития внешних процессов.

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

6.1. Аппаратные таймеры. Реализация второго способа предполагает использование измерительных (хронометрических)устройств, которые доставляют на программный уровень информацию о ходе физического (реального) времени для привязки выполнения программ к моментам времени (действительным или, возможно, предполагаемым моментам времени) достижения соответствующих состояний объектами внешней среды. Работа любых устройств, измеряющих ход времени, опирается на использование каких-то поступательных процессов – например, для солнечных часов это вращение Земли вокруг своей оси, для механических часов это колебания их маятников.

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

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

Аппаратные таймеры представляют собой разновидность периферийных устройств КС. Как и всякое периферийное устройство, аппаратный таймер (блок таймера) размещается между слоем внешних интерфейсов КС и слоем внутренних аппаратных интерфейсов КС (см. рис. 2). Через внешний интерфейс блок таймера тактируется осциллятором, отражающим ход физического времени (например, генератором тактовых импульсов на базе кристалла кварца). Зачастую отсчет времени аппаратным таймером опирается на использование импульсов того же осциллятора, который тактирует работу CPU. Внутренний аппаратный интерфейс блока таймера в общем случае включает:

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

· векторы системы прерываний.

В простейшем случае блок таймера не содержит интерфейсных регистров и связан с программным уровнем КС только вектором прерываний (см. ниже описание таймера реального времени).

6.2. Системное время. Ряд функций ОС непосредственно связан с отслеживанием хода времени. В качестве примеров можно указать реализацию графиков возникновения заданий, учет фактического времени использования заданиями ресурса CPU, приостановку текущего задания до истечения заданного интервала времени. На программном уровне ход времени представляется атрибутом “системное время”, который включается в состав поддерживаемого ядром ОС программного объекта – системного таймера. Системный таймер обеспечивает изменение значения системного времени в соответствии с данными, поступающими через аппаратный интерфейс блока таймера. Вариант архитектуры системного таймера и поддерживающего его аппаратного блока (высокочастотного аппаратного таймера) приведен на рис. 21.

На рис. 21 используются те же обозначения, что на рис. 2 – кругами представлены внешние процессы, прямоугольники с элементами электронных схем изображают периферийные блоки КС, пунктирные линии обозначают линии внешних интерфейсов и внутренних аппаратных интерфейсов КС, цепочка звездочек обозначает линию программных интерфейсов. Стрелки на рис. 21 указывают направление передачи информации.

Системный таймер доступен прикладным программам через системные вызовы. В состав интерфейса прикладных программ включаются системные вызовы, обеспечивающие настройку системного таймера и доступ к значениям его атрибутов. В частности, ОС, отвечающая стандарту POSIX, реализует системный вызов clock_gettime(), который выдает текущее значение атрибута “системное время” в виде числа секунд и наносекунд, минувших к текущему моменту времени от некоторой точки отсчета в прошлом (например, с момента инициализации системы или с начала Нашей Эры). Это не означает, что номинальное разрешение таймера обязательно должно составлять одну наносекунду. Например, разрешение системного таймера может быть равным одной сотой секунды (значение системного времени меняется сто раз в секунду). Тогда младшие разряды числа наносекунд, выдаваемых по стандартному системному вызову clock_gettime(), не следует принимать во внимание.

 

 
 

 


Рис. 21. Системный таймер высокого разрешения

 

Высокочастотный аппаратный таймер (с тактовой частотой порядка десятков и сотен мегагерц) обеспечивает отслеживание течения времени с высоким разрешением (десятые и сотые доли микросекунды) за счет включения в его состав специального интерфейсного регистра – счетчика тактов (для процессоров типа Pentium это регистр TSC – time stamp counter). Разрядность счетчика тактов обычно совпадает с разрядностью CPU, при высоком разрешении таймера этот счетчик периодически переполняется (при тактовой частоте в один гигагерц 32-х разрядный счетчик тактов будет переполняться примерно один раз за каждые 4 секунды, а 16-ти разрядный счетчик тактов по несколько раз за каждую миллисекунду). Следовательно, аппаратный интерфейс блока таймера должен активизировать обработчик прерываний по переполнению счетчика тактов, а системный таймер должен поддерживать счетчик таких переполнений (на рис. 21 счетчик переполнений обозначен идентификатором TOVER). Таким образом, выполнение системного вызова clock_gettime() обеспечивается исходными данными в виде кодов, содержащихся в счетчике тактов TSC и в счетчике переполнений TOVER.

Заметим, что для двоичного представления интервалов времени большой длительности при разрешении порядка наносекунды требуется коды с большим числом разрядов. Так, для представления c наносекундной точностью интервалов времени длиной до одной секунды требуется до 30-ти двоичных разрядов (для интервалов до 2000 лет потребовалось бы до 66 двоичных разрядов).

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

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

Следует иметь в виду, что на уровне прикладных программ точность отслеживания хода времени может оказаться существенно ниже разрешения аппаратного таймера. Так, время отклика системной функции типа clock_gettime() не строго детерминировано и вариация этого времени отклика добавляет погрешность в регистрации текущего момента времени в контексте прикладных программ. Эта добавка может превышать десятки и даже сотни микросекунд, что следует учитывать при анализе значений, выдаваемых функцией clock_gettime(). Во многих СРВ прикладные программы имеют непосредственный доступ по считыванию к счетчику тактов TSC, что позволяет повысить эффективность и точность регистрации текущего момента времени. При тактовой частоте порядка десяти мегагерц прямой доступ к показаниям регистра TSC позволяет отслеживать течение времени с разрешением порядка ста наносекунд.

6.3. Интервальный таймер. Аппаратный таймер с архитектурой типа рис. 21 связан с программным объектом ядра ОС (системным таймером) двумя интерфейсными элементами – счетчиком тактов и вектором прерываний. Направление передачи информации для обоих интерфейсных элементов одно и тоже, от уровня периферийных блоков КС на программный уровень, то есть, в обоих случаях стороной, передающей информацию, является аппаратный блок таймера, а стороной, принимающей информацию – системный таймер.

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

Отметим различие между разрешением активного и пассивного таймерных каналов при архитектуре блока таймера, соответствующей рис. 21. Как было отмечено выше, разрешение пассивного канала равно номинальному разрешению блока таймера. При использовании пассивного канала информация о текущем моменте времени передается на программный уровень с разрешением в 2 n раз более грубым, чем номинальное разрешение блока таймера. Так, при номинальном разрешении блока таймера 10 наносекунд (тактовая частота 100 МГц) и 32-х разрядном TSC разрешение активного таймерного канала составит примерно 40 секунд.

За счет использования блока таймера с пассивным элементом интерфейса рис. 21 программные модули могут регистрировать текущий момент времени, оценивать темп исполнения вычислений, измерять длину интервала времени между выполнением различных фрагментов программ. Такие измерения выполняются с высоким разрешением равным номинальному разрешению блока таймера. Вместе с тем, использование пассивного элемента интерфейса блока таймера не может обеспечить привязку моментов генерации системных событий в СРВ (например, моментов возникновения заданий) с точностью, приближающейся к номинальному разрешению блока таймера. Для такой привязки потребовалось бы непрерывное повторение цикла опроса TSC (режим занятого ожидания). В системах реального времени использование режима занятого ожидания, как правило, недопустимо, поскольку при этом для всех остальных заданий на период занятого ожидания ресурс процессора остается недоступен.

 
 

 


Рис. 22. Архитектура интервального таймера

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

Таймер с архитектурными элементами, указанными на рис. 22 (интервальный таймер) позволяет программным модулям заказывать генерацию системных событий с точностью, соответствующей тактовой частоте таймера. При необходимости генерации системного события через N аппаратных тактов от текущего момента времени программный модуль интервального таймера считывает текущее показание T тек регистра TSC, и засылает в регистр REQT сумму T тек+ N. После выполнения этой операции по прошествии временного интервала длиной N тактов блока таймера возникает прерывание от совпадения кодов в регистрах TSC и REQT, обработчик этого прерывания генерирует требуемое системное событие.

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

 

 
 

 


Рис. 23. Построение графика заказанных системных событий в виде дельта-списка

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

В состав аппаратных средств СРВ нередко включается несколько каналов интервального таймера, каждый со своим регистром заказанного времени (регистром типа REQT на рис. 22) и со своим вектором прерываний. В таком случае ядро ОС должно соответственно включать несколько объектов типа программного модуля интервального таймера – каждый со своим обработчиком прерываний и со своим графиком заказанных системных событий. Если в КС имеется несколько уровней прерываний, то назначение различных приоритетов обработчикам прерываний от различных каналов интервального таймера может повысить точность привязки высокоприоритетных действий КС к заданным моментам времени.

6.4. Таймер реального времени. Во многих сферах применения систем реального времени не требуется точность микросекундного уровня ни для измерений текущего момента времени и длительности временных интервалов, ни для привязки действий КС к ходу физического времени. К таким сферам относятся, например, устройства бытовой техники, непрерывные технологические (производственные) процессы, многие из систем автомобильной электроники (управление стеклоподъемниками, стеклоочистителями, сигнализация, климат-контроль, многие другие подсистемы современных автомобилей), где для отслеживания хода времени вместо высокочастотных таймеров используются блоки таймеров с тактовой частотой порядка десятков или сотен герц.

Практика использования низкочастотных таймеров восходит к первым десятилетиям развития технологий, связанных с использованием систем реального времени. Тогда во многих СРВ аппаратные таймеры строились на базе использования колебаний питающего напряжения (разрешение 15 или 20 миллисекунд считалось достаточным для большинства СРВ). Фронт волны питающего напряжения использовался для генерации тактов работы аппаратного таймера. При этом пассивный элемент аппаратного интерфейса (счетчик тактов таймера типа счетчика TSC) отсутствовал, а каждый такт аппаратного таймера приводил к активизации соответствующего программного модуля (обработчика прерывания) в составе системного таймера, подсчет тактов таймера выполнялся на программном уровне. Такие низкочастотные аппаратные таймеры назывались таймерами реального времени. В современных КС аппаратные таймеры с относительно невысоким разрешением (порядка миллисекунды или нескольких миллисекунд) также называют таймерами реального времени. Для таймера реального времени разрешение активного элемента аппаратного интерфейса совпадает с номинальным разрешением блока таймера.

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

Таймер реального времени может использоваться в СВР наряду с высокочастотным таймером, и с несколькими каналами интервального таймера. То есть, в общем случае набор периферийных блоков КС может содержать несколько аппаратных таймеров с различными генераторами тактовых импульсов, с различными значениями номинального разрешения. Входящий в состав ядра ОС программный модуль “системный таймер” (рис. 21) может контролировать несколько различных аппаратных таймеров, с различными генераторами тактовых импульсов, с различными значениями номинального разрешения. Если в составе КС имеется несколько аппаратных таймеров, то при настройке ядра ОС один из них выбирается в качестве основного (системные часы). В соответствии со стандартом POSIX аппаратный таймер, используемый в качестве системных часов, обозначается идентификатором CLOCK_REALTIME. Показания системных часов отслеживается системным таймером, по этим показаниям корректируется значение атрибута “системное время”.

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

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

 
 

 

 


а) б)

 

Рис. 24. Два варианта архитектуры аппаратных блоков ввода импульсов от сенсорных тактирующих устройств

 

На рис. 24 приведены два варианта внутреннего аппаратного интерфейса, обеспечивающего связь программного комплекса КС с сенсорными тактирующими устройствами. Архитектура первого варианта (рис. 24 а) повторяет архитектуру таймера реального времени: каждый такт сенсорного устройства приводит к активизации соответствующего обработчика прерывания, при необходимости подсчета тактов такой подсчет выполняется на программном уровне. В рамках такой архитектуры для оценки скорости прохождения координатных точек при поступлении прерываний от сенсорного тактирующего устройства следует фиксировать текущее значение системного времени (путем вызовов системной функции clock_gettime() или путем непосредственного считывания показаний TSC). При этом в погрешность оценки скорости наряду с такими составляющими, как номинальное разрешение системного таймера и вариации времени отклика функции clock_gettime(), вносит вклад и диапазон вариаций задержки обращений к TSC или clock_gettime() после возникновения очередного импульса от сенсорного тактирующего устройства. При использовании высокочастотного системного таймера последняя составляющая вносит основной вклад в величину погрешности фиксации момента времени прихода тактового импульса от сенсорного устройства. Если требуется высокая точность регистрации времени возникновения сенсорных тактовых импульсов, то необходимо использовать периферийные блоки с внутренним аппаратным интерфейсом типа рис. 24 б.

Периферийный блок с архитектурой типа рис. 24 б при возникновении сенсорного тактового импульса выполняет два действия:

· регистрирует текущее показание счетчика тактов системных часов TSC в своем интерфейсном регистре (на рис. 24 этот регистр обозначен символом INP_T),

· генерирует прерывание, сигнализирующее о возникновении тактирующего импульса от сенсорного устройства.

КС приступает к обработке прерывания по такту сенсорного устройства с тем или иным запозданием относительно момента возникновения тактирующего импульса, но информация о моменте прихода тактирующего импульса остается доступной – она сохранена в интерфейсном регистре INP_T. Таким образом, при использовании периферийных блоков с архитектурой рис. 24 б точность регистрации момента возникновения сенсорного тактирующего импульса на программном уровне определяется разрешением системного таймера.

Внешнее оборудование КС может включать несколько сенсорных тактирующих устройств. Для каждого такого устройства необходимо иметь периферийный блок и элементы аппаратного интерфейса, типа приведенных на рис. 24. Такие аппаратные блоки естественно включать в систему аппаратного таймера КС, поскольку их архитектура во многом повторяет архитектуру системного часового механизма. Таким образом, аппаратный таймер наряду с интерфейсными элементами системного часового механизма может иметь ряд дополнительных групп элементов аппаратного интерфейса, таких как каналы интервального таймера, каналы сенсорных тактирующих устройств. Все такие периферийные блоки называют часовыми механизмами (clocks). Каждый часовой механизм представляется в системе своим идентификатором. Как отмечено выше, часовому механизму, играющему роль системных часов, в соответствии со стандартом POSIX присваивается имя CLOCK_REALTIME. Прерывания, генерируемые различными часовыми механизмами, могут либо относиться к одному и тому же уроню прерываний, либо разноситься на различные уровни прерываний.

6.6. Таймеры приложений. Наряду с обеспечением рассмотренных сервисов ОС реального времени предоставляет возможность создавать, настраивать и использовать программные объекты, обеспечивающие генерацию системных событий по временным графикам, формируемым прикладными программами. Такие объекты называют программными таймерами, будильниками (alarms), таймерами приложений. Таймер приложения создается ядром ОС в порядке выполнения системного вызова “создать таймер” (create_timer). В системах, содержащих более одного часового механизма (clock), системный вызов “создать таймер” должен сопровождаться указателем, какой именно из часовых механизмов должен использоваться создаваемым таймером приложения. Создаваемый таймер приложения будет отслеживать течение времени по показаниям того часового механизма, с которым он связан.

Аргументы системного вызова “настройка таймера” (set_timer) указывают идентификатор таймера приложения и момент времени его срабатывания. Указываются также системные события, ассоциируемые с данным таймером приложения. Системное событие, возникающее в результате срабатывания таймера приложения, называют таймерным событием (timer_event).

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

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

· возникновение задания некоторого конкретного типа (т.е., возникновение очередного экземпляра некоторой конкретной задачи);

· размещение сообщения в какой-то очереди сообщений, или посылка сообщения конкретному действующему заданию,

· генерация сигнала, и т.п.

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

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

6.7. Сторожевые механизмы. Системные объекты типа одноразовых таймеров приложений могут использоваться в качестве специального средства самодиагностики (контроля работоспособности) и восстановления работоспособности программных приложений, называемого сторожевым (watchdog) механизмом. Идея сторожевого механизма состоит в том, что контролируемое им приложение подает сторожевому механизму контрольные сигналы с интервалами не реже Тmax. Контрольные сигналы воспринимаются сторожевым механизмом как признаки нормальной работы приложения.

Если на протяжении временного интервала длиной более чем Тmax приложение не послало в очередной раз контрольный сигнал, то сторожевой механизм рассматривает возникшую ситуацию как потерю работоспособности контролируемого приложения и активизирует задачу t ERR (аварийную задачу), которая восстанавливает утраченную работоспособность комплекса прикладных программ. На рис. 25 приведен пример диаграммы, иллюстрирующей работу сторожевого механизма.

В момент t 1 сторожевой механизм активизируется по инициативе приложения. В моменты t 2, t 3 и t 4 в результате обработки контрольных сигналов (поступающих до момента срабатывания сторожевого механизма) выполняется перенастройка сторожевого механизма на отслеживание нового временного интервала длиной Тmax. В момент t 5 (по истечении временного интервала длиной Тmax) сторожевой механизм срабатывает – возникает экземпляр задачи t ERR, обеспечивающей восстановление работоспособности приложения.

 

 
 

 

 


Рис. 25. Цикл работы сторожевого механизма

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

Контрольные вопросы.

1. В каких условиях использование аппаратных таймеров может обеспечить согласование выполнения прикладных задач с процессами во внешней среде?

2. Какие физические явления лежат в основе преобразования аппаратными таймерами СРВ непрерывного хода времени в дискретную тактовую последовательность?

3. Чем определяется номинальное разрешение аппаратного таймера в СРВ?

4. В каком смысле аппаратный таймер играет, как и все периферийные блоки КС, роль связующего звена между внешним миром и программными средствами КС?

5. Какие знаковые и сигнальные элементы включает внутренний аппаратный интерфейс блока таймера?

6. Какие функции ОС непосредственно связаны с отслеживанием хода времени?

7. Что означают термины «системное время» и «системный таймер» в рамках КС?

8. Привести примеры элементов интерфейса прикладных программ, обеспечивающих доступ к системному таймеру. Как разрешение системного таймера связано с разрешением аппаратного таймера КС?

9. С какой частотой изменяются показания счетчика TSC тактов аппаратного таймера? В каких условиях для выполнения функций службы времени может потребоваться учет числа переполнений этого счетчика?

10. В чем смысл установки коэффициента деления тактовой частоты в ходе настройки блока аппаратного таймера?

11. По каким причинам точность отслеживания хода времени прикладными задачами оказывается ниже разрешения аппаратного таймера?

12. В чем состоят архитектурные особенности интервальных блоков аппаратного таймера? Каким образом использование этих блоков обеспечивает повышение точности привязки моментов генерации системных событий к ходу физического времени?

13. Как формируется и интерпретируется структуры типа дельта-списков, используемые для генерации системных событий?

14. Какие элементы внутреннего интерфейса аппаратного таймера называют таймером реального времени?

15. Почему сенсорные тактирующие устройства связываются с СРВ через блок аппаратного таймера?

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

17. Как строятся и используются программные объекты, называемые «таймерами приложений»? В чем состоят различия между одноразовыми и периодическими таймерами приложений?

18. Какие разновидности таймерных событий могут генерироваться таймерами приложений?

19. Каков порядок и в чем смысл работы аппаратных блоков или программных объектов, называемых «сторожевыми механизмами»?

20. Как программные сторожевые механизмы могут строиться на базе использования аппаратных таймеров?

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.016 сек.)