<<
>>

Обработчик прерываний от таймера

Обработчик прерываний от таймера запускается каждый раз, когда счетчик мик- росхемы часов достигает нулевого значения и генерирует прерывание. Именно обработчик выполняет основную работу по поддержке времени.
В MINIX 3 время хранится так, как показано на рис. 2.26, в. Тем не менее в файле clock.с используется лишь счетчик тиков, прошедших со времени последней загрузки системы; время загрузки хранится в другом месте. Программное обеспечение часов пользуется только текущим счетчиком и поддерживает системный вызов, запрашивающий реальное время. Дальнейшая обработка выполняется одним из серверов. Такой подход соответствует стратегии MINIX 3, направленной на перенос функциональности в пользовательское пространство.

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

Обработчик также изменяет значения переменных, расположенных в таблице процессов, с целью учета времени процессов и управления ими. Он посылает сообщение таймерному заданию лишь в случае, если в текущий момент следующий запланированный таймер истек либо закончился квант процесса. Все, что делает обработчик, — выполняет простые целочисленные операции: арифметические, сравнения, логические (И/ИЛИ), присваивания. Такие операции с легкостью переводятся компилятором в машинный код. В худшем случае совершается 5 сложений или вычитаний, 6 сравнений и несколько логических операций и присваиваний в конце процедуры. Задержки, связанные с вызовами подпрограмм, равны нулю.

<< | >>
Источник: Э. ТАНЕНБАУМ, А. ВУДХАЛЛ. ОПЕРАЦИОННЫЕ СИСТЕМЫ Разработка и реализация 3-е издание. 2007

Еще по теме Обработчик прерываний от таймера:

  1. 7.3.2. Прерывания
  2. 7.4.4. Как справиться с прерыванием.
  3. 7.3.2. Прерывания
  4. Прерывание нотаций:
  5. Прерывание обвинений:
  6. Прерывание криков и ругани:
  7. 7.4.4. Как справиться с прерываниями
  8. Статья 281. Право на жизнь
  9. 7.14.1. Комбинаторный метод
  10. ПРЕПЯТСТВИЕ ВНЕШНЕЕ
  11. Статья 121. Умышленное тяжкое телесное повреждение
  12. М.Руссинович, Д.Соломон. Внутреннее устройство Microsoft Windows (главы 1–4), 2005
  13. Конфронтация.
  14. Термоядерная реакция при комнатной температуре