- •Вопрос 1. Типы задач. Виды програмирования: последовательное, параллельное, для систем рв.
- •Вопрос 2. Виды ресурсов: аппаратные, программные, активные, пассивные, локальные, разделяемые, постоянные, временные, не критичные, критичные.
- •Вопрос 3. Типы архитектур осрв. Объектная архитектура на основе объектов-микроядер. Сравнение микроядер и модулей, драйверов, dll.
- •Вопрос 4. Типы архитектур осрв. Модульная архитектура (на основе микроядер).
- •Вопрос 5. Поддержка многозадачности и многопроцессорности специальными инструкциями.
- •Вопрос 6. Основные области применения осрв. Тенденции использования и перспективы развития осрв.
- •Вопрос 7. Приоритеты. Схемы назначения приоритетов. Инверсия приоритетов и методы борьбы с ней.
- •Вопрос 8. Алгоритмы замены данных в кэш памяти. Специальные кэШи.
- •Вопрос 9.Cisc и risc процессоры.
- •Вопрос 10. Процессоры arm. Общий обзор.
- •Вопрос 11. Повышение производительности процессоров за счет конвейеризации. Условия оптимального функционирования конвейера.
- •Вопрос 12. Особенности оборудования, на котором работают осрв. “Обычные” и промышленные компьютеры, встраиваемые системы.
- •Вопрос 13. Многопроцессорные архитектуры.
- •Вопрос 14. Повышение производительности процессов за счет введения кэш памяти. Кэши: единый, Гарвардский, с прямой записью, с обратной.
- •Вопрос 15.
- •Вопрос 16. Определения основных объектов ос. Механизмы взаимодействия процессов. Разделяемая память, семафоры, сигналы, почтовые ящики, события.
- •Вопрос 17. Адаптация WindowsNt к требованиям “реального времени”. Обзор программного комплекса ComponentIntegrator.
- •Вопрос 19. Адаптация WindowsNt к требованиям “реального времени”. Обзор программного комплекса WillowsRt.
- •Вопрос 20. “Классические” осрв. Обзор chorus.
- •Вопрос 21. Процессоры PowerPc. Общий обзор.
- •Вопрос 22. Процессоры Intel80x86. Общий обзор.
- •Вопрос 23. Суперконвейерные и суперскалярные процессоры. Выделение независимо работающих устройств: iu. Fpu. Mmu. Bu.
- •Вопрос 24. Определения основных объектов ос. Связывание. Статическое и динамическое связывание.
- •Вопрос 25. Определения основных объектов ос. Стек, виртуальная память, механизмы трансляции адреса.
- •Вопрос 26. Адаптация WindowsNt к требованиям “реального времени”. Обзор программного комплекса RealTimeEtsKernel.
- •Вопрос 27. Аргументы “за” и ”против” использования WindowsNt в качестве осрв.
- •Вопрос 28. Адаптация WindowsNt к требованиям “реального времени”. Обзор программного комплекса lprt-Technology.
- •Вопрос 29. Архитектура системной шины. Роль шины для осрв. Архитектура шины vme.
- •Вопрос 30. Адаптация Windows nt к требованиям “реального времени”. Обзор программного комплекса Hyperkernel.
- •Вопрос 31. Определения основных объектов ос. Задачи. Сравнение с процессами.
- •Вопрос 32. “Классические” осрв. Обзор qnx.
- •Вопрос 33. Стандарты на осрв. Стандарт posix 1003.1b. Стандартизация основных api, утилит, расширений “реального времени”. Стандартизация задач.
- •Вопрос 34. Классические и ооп к построению осрв.
- •Вопрос 35. Процессоры Motorola 68xxx. Общий обзор.
- •Вопрос 36. Общее строение рв. Роли отдельных компонент. Критерий выбора осрв.
- •Вопрос 37. “Классические” осрв. Обзор осрв LynxOs.
- •Вопрос 39. Состояния процесса и механизмы перехода из одного состояния в другое.
- •Вопрос 40. Типы взаимодействия процессов: сотрудничающие и конкурирующие процессы. Критические секции, взаимное исключение процессов.
- •Вопрос 41. Объектно-ориентированные осрв. Обзор осрв SoftKernel.
- •Вопрос 42. Стандарты на осрв. Их роль в развитии осрв. Нормы esse консорциума vita.
- •Вопрос 43. Типы архитектур осрв. Объектная архитектура на основе объектов-микроядер. Основные принципы построения.
- •Вопрос 44. Процессоры sparc. Общий обзор.
- •Вопрос 45. Определения основных объектов ос. Ресурсы, приоритеты. Параллельные процессы. Многозадачные ос.
- •Вопрос 47. Согласование кэШей в мультипроцессорных системах.
- •Вопрос 48. Влияние требований рв на выбор архитектуры процессора.
- •Вопрос 50. Типичные времена реакции на внешние события в управляемых осрв прцессах. Их влияние на программное и аппаратное устройство вычислительной системы.
- •Вопрос 51. Среды разработки для осрв, основные требования к ним.
- •Вопрос 52. Типы архитектур осрв. Монолитная архитектура.
- •Вопрос 54. Проблемы, возникающие при синхронизации задач и идеи их разрешения.
- •Вопрос 55. Основные черты risc архитектуры.
- •Вопрос 56. Определения основных объектов ос. Программа, процессор, процесс. Основные составляющие процесса, состояния процесса.
- •Вопрос 57. Системы на основе Linux. Направления адаптации Linux к требованиям “реального времени”. Обзор осрв rt-Linux.
- •Вопрос 58. Синхронизация и взаимодействие процессов. События. Примитивные операции.
- •Вопрос 59. Процессоры Intel 80960x. Общий обзор.
Вопрос 57. Системы на основе Linux. Направления адаптации Linux к требованиям “реального времени”. Обзор осрв rt-Linux.
Рассмотрим системы на основе Linux - свободно распространяемой версии системы UNIX. Она получила значительное распостранение на настольных компьютерах в силу своей бесплатности и качества. Появившись на машинах с процессорами Intel 80x86, сейчас она поддерживает процессоры Alpha, SPARC, PowerPC, ARM, Motorola 68xxx, MIPS. Открытость исходных текстов системы позволяет реализовывать на ее основе специализированные системы и обеспечивать поддержку нового оборудования.
Приспособление системы Linux к требованиям "РВ" происходит по следующим трем направлениям.
1. Поддержка стандартов POSIX, касающихся систем реального времени. Стандарт POSIX 1003.1с (thread - работа с задачами) уже поддержан, стандарт POSIX 1003.1Ь (расширения реального времени) поддержан лишь частично: реализованы мех-мы управления памятью и мех-мы планир-я задач, мех-мы же работы с таймерами, сигналы, POSIX семафоры и очереди сообщений пока не реализованы.
2. Поддержка специального оборудования, важнейшим из которых является шина VME. Уже существует поддержка моста VME-PCI. Ведутся разработки по обеспечению выполнения Linux из ПЗУ. Также для систем реального времени важным является повышение разрешения таймера системы.
3. Реализация механизма preemption для ядра системы. Этот механизм, с одной стороны, является необходимым для того, чтобы систему можно было называть системой реального времени, а с другой стороны, он является очень сложным для реализации. Linux, как и все UNIX системы, надолго запрещает прерывания при входе в ядро системы, и является существенно не preemptive.
Существует несколько проектов реализации premption для ядра Linux. По способу решения задачи их можно разделить на две группы.
1. Механизм preemption реализуется путем переписывания ядра системы (благо оно доступно в исходных текстах). На этом пути можно достичь самых качественных результатов, но на данный момент значительных успехов в этом плане нет по следующим причинам:
a. слишком большой объем работы, связанный с большим объемом ядра;
b. слишком высокая скорость изменения ядра, причем изменения вносятся, не учитывая интересы РВ.
2. Механизм preemption реализуется путем написания микроядра, отвечающего за диспетчеризацию прерываний и задач. Ядро Linux работает как задача с низким приоритетом. Само ядро лишь незначительно изменено, для предотвращения блокирования им аппаратных прерываний. Задачи в такой системе разделены на две группы:
a. процессы, работающие под управлением только микроядра (не использующие функции ядра Linux); эти процессы удовл-ют требованиям реального времени, поскольку могут прерывать ядро Linux;
b. процессы, работающие под управлением Linux (обычные приложения, которые в данной системе рассматриваются как подзадачи процесса - ядра Linux), а также задачи работающие под управлением микроядра, но использующие функции Linux; эти процессы не удовлетворяют требованиям реального времени, поскольку могут быть блокированы ядром Linux.
Недостатком такого подхода является необходимость реализации микроядра, обеспечивающего функционирования процессов реального времени. Например, если процесс реального времени хочет работать с коммуникационным портом (например, СОМ портом), то драйвер этого порта надо перенести из ядра Linux в микроядро (поскольку использование драйвера Linux сделает этот процесс зависимым от текущей загруженности системы и других непредсказуемых факторов). Наиболее законченной реализацией этого подхода является проект RT-Linux.
Обзор ОСРВ RT-Linux.
Система RT-Linux является свободно распространяемой, разрабатываемой энтузиастами в ряде университетов мира. Создана в New Mexico Institute of Mining and Technology (USA).
Представляет собой простейшее микроядро, отвечающее за создание и планирование задач, обеспечение их взаимодействия и диспетчеризацию прерываний. Реализован простейший приоритетный механизм планирования и единственный механизм взаимодействия - очередь сообщений FIFO. Ядро Linux работает как самая низкоприоритетная задача. Само ядро подправлено: макроопределения, отвечающие за запрещение/разрешение прерываний заменены на вызов соответствующих функций микроядра. Задачи Linux не могут прервать ядро Linux, задачи же микроядра - могут.
Типичный механизм функционирования системы следующий. Критическая часть приложения (например, получение данных с датчика) реализуется как процесс микроядра. Часть, отвечающая за визуализацию и хранение данных, реализуется как процесс Linux. Эти два процесса взаимодействуют посредством очереди сообщений FIFO.
Простота микроядра позволяет разработчикам легко его модифицировать для удовлетворения своих потребностей.
Минимальный размер системы для записи в ПЗУ (без Х-Windows) - 2.7Mb.