- •Обработка прерываний на уровне технических средств компьютера. Основные понятия и определения. Поддержка прерываний командами процессора.
- •Процесс обработки прерывания в системе с единственным прерыванием.
- •Программируемый контроллер прерываний.
- •Обработка нескольких прерываний с использованием внешнего контроллера прерываний. Фрагмент кода обслуживания на псевдоассемблере для 2-х адресной архитектуры.
- •Срв. Некоторые определения в соответствии с Oxford Dictionary of Computing, Янгом и проектом pdcs.
- •Срв. Жесткие (hard), мягкие (soft) системы и системы квази-реального времени (firm).
- •Некоторые характерные области применения срв. Инерциальная система измерения параметров пространственного движения самолета.
- •Типы воздействий в срв. Обобщенная модель срв.
- •Типы воздействий в срв. Система управления процессами датчик/привод.
- •Некоторые характерные области применения срв. Связь дисциплины «срв» с другими инженерными дисциплинами.
- •5. Согласование устройств и цп с помощью прерываний. Контроллер единственного периферийного устройства. Рисунок, пояснение.
- •6. Согласование устройств и цп с помощью прерываний. Несколько контроллеров соединенные с цп через пкп (программируемый контроллер прерываний)
- •8. Теоретические основы операционных систем реального времени. Основные понятия и определения.
- •8. Операционные системы реального времени (ос рв). Роль ядер и псевдоядер в операционных системах.
- •9. Теоретические основы осрв
- •10. Процесс планирования
- •11. Характеристики задачи. Фактическая рабочая нагрузка.
- •12. Типичная модель задачи
- •13. Циклическое планирование. Смешанное планирование трех задач. Рисунок, пояснения.
- •14. Циклическая исполняющая система. Понятие кадра и основного цикла. Ограничения на размер кадра. Рисунок, пояснения.
- •15. Приоритетное фиксированное планирование с монотонной частотой. Основные результаты применения политики алгоритма монотонной частоты.
- •16. Основы разработки встроенных систем. Типовая среда разработки с использованием кросс- платформы. Рисунок, пояснения.
- •15. Системы, управляемые прерываниями. Программы обработки прерываний.
- •17. Псевдокод программы обслуживания стековой модели, описание функционирования.
- •18. Системы с вытесняющим приоритетом
- •20. Фоновая обработка. Программируемый сторожевой таймер (software watchdog timer).
- •21. Инициализация приоритетной/фоновой системы. Описание.
- •17. Обзор Компоновщиков и процесса компоновки. Создание файла образа для целевой системы. Рисунок, пояснения.
- •18. Таблица символов. Взаимосвязь между таблицей символов и таблицей перемещений (переадресации). Рисунок, пояснения.
- •19. Размещение исполняемых образов в памяти целевой встроенной системы. Командный файл компоновщика. Общее описание и примеры директив.
- •20. Упрощенная схема и карта памяти целевой системы. Листинги использования директив Memory и Section на примере карты памяти целевой системы.
- •21. Объеденение входных секций в исполняемом образе , пример (рисунок), код листинга примера.
- •22. Размещение исполняемого образа в памяти целевой системы. Рисунок, пояснение
- •23. Инициализация встроенной системы. Основные понятия и задачи.
- •24. Инструменты целевой системы и передача образа. Способы загрузки образа в целевую систему.
- •Прямой доступ к памяти (пдп/dma)
- •Ввод-вывод с использованием выделенной памяти
- •Побитное отображение устройств
- •26 Встроенный загрузчик
- •Вбудовані системи та системи реального часу
- •1::Введение. Основные концепции встроеных систем (вс) и систем реального времени (рв)::07.09.2010
- •2::Системы рального времени: некоторые определения, примеры и краткая история::14.09.2010
- •3::Операционные системы реального времени::21.09.2010
- •4::Системы управляемые прерываниями::28.09.2010
- •Обработка прерываний на уровне технических средств компьютера
- •Теоретические основы операционных систем рв
- •Основы разработки встроенных систем
3::Операционные системы реального времени::21.09.2010
Операционная Система (ОС) цифровой выч. системы – система программ предназначенная для обеспечения определенного уровня эффективности ЦВС за счет автоматизированного управления ее работой и предоставляемого пользователям набора услуг.
Ядра СРВ. ОСРВ имеют то же предназначение что и ОС общего назначения, однако должны кроме всего обеспечивать функционирование системы в режиме реального времени.
Процесс (задача) – есть абстракция функционирующей программы и является логической единицей вычислительной работы, планируемой ОС. Он, как правило, представляется структурой данных, которая содержит, по крайней мере, состояние выполняемой задачи, корректность ее выполнения (для систем РВ), атрибуты (например время выполнения), а также связанные с ним ресурсы.
Поток – «легковесный (lightweight, LWP)» процесс, который разделяет ресурсы с другими процессами или потоками. Каждый процесс постоянно находится в рамках некоторого другого процесса и исп. ресурсы этого процесса. Потоки, находящиеся в рамках одного и того же процесса разделяют эти «прецессные» ресурсы.
ОСРВ должны обеспечивать 3 основных функции по отношению к задачам – планирования, диспетчирезации, взаимосвязи и синхрониции. Ядро ОС является наименьшей частью, предназначеной для выполнения этих функций. Планировщих определяет, какие следующие задачи будут запускаться в многозадачной системе, в то время как диспетчер выполняет необходимый учет использования системных ресурсов, что бы запустить эту задачу. Взаимодействие между процессами и сихронизация обеспечиваю такую взаимосвязь задач. На рис.3.1 представлены различные слои иерархии ОС в зависимости от выполняемых ею функций.
|
Пользователи |
ОС |
Оболочка пользовательского интерфейса |
Исполняющая система |
Поддержка файлов и дисков |
Ядро |
Межпроцессорное взаимодействие и синхронизация |
Микроядро |
Планирование задач |
Наноядро |
Управление потоками |
|
Технические средства |
Рис.3.1.
Перемещение вверх по иерархической классификации от низкоуровневого наноядра к ОС с полным набором свойств иллюстрирует обеспечиваемую системой дополнительную функциональность, а также, в отличии от пользовательского уровня демонстрирует ее относительную близость к техническим средствам.
Наноядро обеспечивает простое управление потоками (LWP). Оно, по существу, предоставляет только 1 из 3 сервисов обеспечиваемых ядром, в то врема как микроядро в дополнение к этому предусматривает планирование зазадач. Микроядро также обеспечивает межпроцессное взаимодействие и синхронизацию с помощью семафоров, почтовых ящиков и пр. методов.
Исполняющая система (супервизор, организующая, управляющая программа) является ядром, которая включает выделенные блоки памяти, сервисы ввода-вывода и другие сложные компоненты ОС. Большинство ядер коммерческих ОСРВ являються супервизорами. ОС является исполняющей системой, которая обеспечивает обобщенный пользовательский интерфейс, безопасность, и систему управления файлами. Независимо от архитектуры ОС ее целью является поддержка функционирования в режиме реального времени всей системы и обеспечение удобного многозадачного окружения, которое должно быть гибким и надежным.
Псевдоядра
Многозадачность в реальном времени может быть достигнута без прерывания и даже без самой ОС. Если существует подобная возможность, то такие подходы более предпочтительны, потому что получающиеся системы значительно проще анализировать.
Циклический опрос
Циклический опрос используется для быстрого доступа к каким либо одиночным устройствам. В системе с циклическим опросом исп. одиночные и повторяющиеся комманды для тестирования флага, указывающего произошло или нет некоторое событие. Если событие не произошло, опрос продолжается.
Предположим, что необходима система ПО для управления пакетами данных, которые поступают с частотой не более чем 1 раз в секунду. Флаг “packet here” устанавливается сетью, посредством которой данные записываються в пасять ЦП с исп. прямого доступа к памяти (DMA). Данные доступны если “packet here==1”.
Пример программы на C:
for(;;){
if(packet here){
process data();
packet here=0;
}
}
Схемы циклического опроса работают хорошо, когда для управления вводом-выводом задействован 1 специализированный процессор, обслуживаемое устройство является быстродействующим, и когда работа с совмещением не допускается или сведена к минимуму. Циклический опрос обычно исп. как фоновая задача в системе, управляемой прерываниями, либо как задача в циклической исполняющей системе. В последнем случае каждый цикл проводится кнечное число раз для обеспечения выполнения других задач. При этом другие задачи управляют обработкой без использования событийной системы прерываний.
ДОРАБОТКА 28.09.2010
Синхронизированный циклический опрос
В одном из вариантов циклического опроса исп. прерывания для фикс. временных интервалов для задания паузы между временем, когда запрашивающий обработку событий переключается, а затем запрос сбрасывается.
Такая система исп. для рассмотрения события демонстрирующего дребезг переключателя (ключа). дребезг ключа является эффектом, происходящим из-за невозможности создания такого ключа, механического или электрического, могущего изменять свое состояние мгновенно. Характерная реакция для такого ключа предоставлена на РИС.3.2.
Все события переключаемые выключателями, рычажными переключателями и нажимными кнопками обладают подобными свойствами. Тем не менее, если обеспечивается необходимая задержка между началом регистрации события и его сбросом, в системе можно избежать возникновения ложных событийных прерываний под действием установившихся колебаний в считывающем сигнале.
Конечно, существуют и ложные события, которые вывели бы из строя любую службу циклического опроса. Например: предположим, что система циклического опроса исп. для обслуживания случайного события, происходящего не чаще чем 1 раз в секунду. Известно, что событие вызывает эффект дребезга переключателя, который исчезает через 20мс. В системе для синхронизации доступны прерывания в фиксированные 10мс интервалы. События вызываются внешним устройством, которое устанавливает размещение области памяти посредством DMA.
Код на Си:
for(;;){
if(flag){
pause(20);
process_event();
flag=0;
}
}
pause(20) – вызов системного таймера, который обеспечивает соответств. задержку. Т.к. существует задержка при обработке системного вызова, время ожидания будет всегда больше 20мс, что позволяет избежать прерывания ложных событий. В предположении, что системный вызов pause допустим, циклические опросы в системах являются простыми для написания програм и их отладки. К тому же в этом случае легко определить время реакции системы.
Аппарат циклического опроса является хорошим средством при обслуживании высокоскоростных каналов передачи данных, особенно, если события происходят при большом разбросе временных интервалов, и для управления каналом данных исп. отдельный процессор. Однако в системах с циклическим опросом чаще всего происходят сбои, если не учесть частоту поступления пакетов данных. Кроме того, циклический опрос сам по себе не является удобным средством для управления в сложных системах.
Циклические опросы по существу впустую тратят процессорное время, особенно если события опроса происходят редко.
Циклические исполняющие системы (супервизоры, организующие и управляющие программы)
Циклические исполняемые системы являются ситемами не управляемыми прерываниями, обеспечивающими иллюзию одновременного выполнения задач в постоянном цикле за счет исп. преимущества относительно быстрой обработки скоростных процессоров. Рассмотрим, например, набор независимо замкнутых процессов от Process_1 до Process_N в бесконечном цикле как показано ниже:
for(;;){
Process_1();
Process_2();
…
Process_N();
}
В этом случае видно, что установлена одна и та же частота цикла для каждой задачи, поскольку они выполняются по циклическому принципу. Различные частоты выполнения в такой структуре могут быть достигнуты простым повторением задач из списка. Например, в следующем фрагменте кода программы
for(;;){
Process_1();
Process_2();
Process_3();
Process_3();
}
Внутризадачная синхронизация и взаимосвязь процессов могут быть достигнуты посредством глобальных переменных или списка параметров. В качестве простого примера рассмотрим комп. игру «Космические захватчики». По существу в игре обслуживаются 3 события от нажатия клавиш (движение танка влево, вправо, выстрел), приводящих к перемещению пришельцев, вычислению конфликтных ситуаций и обновлению экрана дисплея. Возможно построить простую версию этой игры для ПК по существу на базе следующей циклической исп.сис.:
for(;;){
check_for_keypressed();
move_aliens();
check_for_keypressed();
check_for_collision();
check_for_keypressed();
update_screen();
}
Можно отметить что процесс check_for_keypressed(), обслуживающий нажатия 3 клавиш содержит процессы перемещения танка и пуск ракеты, и выполняется в 3 раза чаще чем другие, для того чтобы обеспечить более быструю реакцию на ввод пользователя.
ДОРАБОТАТЬ ДОМА