Операционная система реального времени

Автор: Пользователь скрыл имя, 12 Декабря 2011 в 21:38, реферат

Краткое описание

QNX - этo зарeгистрированная тoргoвая марка фирмы QNX (Quantum) Software Systems, Canada. Фирма oснoвана в 1980 гoду. В тo жe врeмя QNX - этo oпeрациoнная систeма (ОС) стандарта POSIX, кoтoрая пoзвoляeт oбeспeчить на пeрсoнальнoм кoмпьютeрe распрeдeлeнную oбрабoтку данных в рeальнoм масштабe врeмeни. ОС QNX oбладаeт такими вoзмoжнoстями, кoтoрые стандартные UNIX-системы мoгут тoлькo надеяться дoстигнуть. QNX стала первoй кoммерческoй oперациoннoй системoй, кoтoрая пoзвoлила испoльзoвать передачу сooбщений в качестве oснoвнoгo средства взаимoдействия между прoцессами (IPC). Мoщнoсть, прoстoта и элегантнoсть QNX дoстигается благoдаря пoстрoению всей системы на базе технoлoгии IPC с передачей сooбщений.

Файлы: 1 файл

Курсовая по операционным.docx

— 290.99 Кб (Скачать)

         В QNX системе встречается несколько видов задержек.   

        Задержка прерывания   

        Задержка диспетчеризации   

        Стек прерываний   

         Задержка прерывания   

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

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

 

         Обработчик прерывания просто завершается.  

         Задержка прерывания (Til) на приведенной выше диаграмме отражает минимальную задержку - случай, когда прерывания были полностью разрешены в момент, когда произошло прерывание. В худшем случае задержка прерывания составит это время плюс наибольшее время, в течение которого QNX или выполняющийся процесс запрещает прерывания ЦП.   

         Задержка прерываний для различных процессоров  

         Следующая таблица содержит типичные значения задержки прерывания для разных процессоров: 

 

         Задержка диспетчеризации   

         В некоторых случаях обработчик аппаратного прерывания низкого уровня должен передать управление процессу более высокого уровня. В этом случае обработчик прерывания перед выполнением команды "возврат" запускает прокси. Здесь имеет место второй вид задержки - задержка диспетчеризации, - с которой также надо считаться.  

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

 

         Обработчик прерывания завершает работу и запускает прокси.  

         Важно отметить, что обработка большинства прерываний завершается без запуска прокси. В большинстве случаев обработчик прерывания сам может выполнить все необходимые действия. Запуск прокси, чтобы "разбудить" драйвер, процесс более высокого уровня, происходит только при наступлении важного события. Например, обработчик прерывания для драйвера последовательного порта при каждом прерывании "регистр передачи свободен" будет передавать один байт данных и запустит процесс более высокого уровня (Dev) только тогда, когда выходной буфер, наконец, опустеет.   

         Задержка диспетчеризации для различных процессоров  

         Следующая таблица содержит типичные значения задержки диспетчеризации для разных процессоров: 

 

         Стек прерываний   

         Так как архитектура микрокомпьютеров позволяет назначать приоритеты аппаратным прерываниям, то прерывания с более высоким приоритетом могут вытеснять прерывания с меньшим приоритетом. 

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

 

         Выполняется процесс A. Прерывание IRQx вызывает выполнение обработчика прерывания Intx, который вытесняется IRQy и его обработчиком Inty.   Inty запускает прокси, вызывающее выполнение процесса B, а Intx   запускает прокси, вызывающее выполнение процесса

Информация о работе Операционная система реального времени