- •Вопрос 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. Общий обзор.
Вопрос 27. Аргументы “за” и ”против” использования WindowsNt в качестве осрв.
Аргументы Microsoft "за" использование WindowsNT в качестве ОСРВ.
• Многопроцессность и многозадачность системы.
• Поддержка многопроцессорности.
• Preemption задач.
• Preemption прерываний и возможность их маскирования. Распределение прерываний между процессорами в многопроцессорной системе. Для уменьшения времени пребывания в процедуре обработки прерывания (InterruptServiceRoutine, ISR) обработчик вызывает специальную процедуру (DefferedProcedureCall, DPC) и заканчивает работу. Основная деятельность по обработке прерывания выполняется DPC. Процедуре DPC назначается приоритет, и она начинает выполняться, управляемая планировщиком.
• Асинхронный ввод/вывод.
• Прямой доступ к оборудованию посредством интерфейса HAL (HardwareAbstractionLevel). HAL обеспечивает изоляцию приложения от деталей реализации оборудования, обеспечивая платформенно-независимый прямой доступ к оборудованию.
• Специальная схема приоритетов. Все приоритеты разделены на две группы:
1. Класс динамических приоритетов (16): приоритеты от 0 до 15 (0 - самый низкий). Эти приоритеты динамически меняются планировщиком по алгоритму, близкому к принятому в UNIX системах.
2. Класс приоритетов реального времени (7): приоритеты 16, 22-26, 31. Эти приоритеты фиксированы, задачи из этого класса планируются на основе приоритетной очереди и получают управление раньше задач с динамическими приоритетами.
• Пространство ввода-вывода для задач из класса реального времени не участвует в страничном обмене механизма виртуальной памяти.
• Для закрепления страниц задачи в памяти существует спец-й системный вызов (VirtualLockO).
• Предоставляются объекты синхронизации: критические секции, таймеры, события, mutex, ...
Аргументы "против" использования WindowsNT в качестве ОСРВ.
• Ядро системы не preemptive.
• Недостатки механизма DPC:
1. Все процедуры DPC, вызываемые обработчиком прерываний, получают один и тот же приоритет и обрабатываются планировщиком в порядке поступления (FIFO). Тем самым низкоприоритетные прерывания будут обрабатываться ранее высокоприоритетных, но поступивших позднее.
2. Система не дает возможности узнать, сколько DPC стоит в очереди, поэтому нельзя узнать, когда начнет обрабатываться прерывание. Таким образом, существует случайная задержка между приходом прерывания и началом его обработки. Отметим, что для таких быстродействующих устройств, как дисковые и сетевые контроллеры, задержка в несколько миллисекунд может оказаться критической.
3. Для каждого прерывания только один экземпляр DPC может быть в очереди. Следовательно, процедура DPC должна уметь обрабатывать повторяющиеся прерывания, а оборудование должно уметь буферизировать прерывания во избежание потери данных. Это удорожает как драйверы устройств, так и оборудование.
Отметим, что несмотря на недостатки DPC, WindowsNT вынуждена выносить обработку прерываний из ISR в DPC, поскольку во время ISR все прерывания запрещены и их можно потерять.
• Малое количество приоритетов в классе реального времени (7) приводит к тому, что много задач будут иметь одинаковый приоритет и планироваться алгоритмом типа roundrobin. Следовательно, время до начала исполнения задачи будет случайной величиной (зависит от текущей загруженности системы).
• Не решена проблема инверсии приоритетов (см. раздел 6.1.1). Вместо традиционно го для ОСРВ механизма наследования приоритетов (см. раздел 6.1.1) WindowsNT назначает задаче, из-за низкоприоритетности простаивающей в течение некоторого периода времени, случайный уровень приоритета, позволяющий ей начать работу. Это непредсказуемо и неприемлемо для ОСРВ. Поскольку приоритет задач класса реально го времени не меняется, то этот механизм действует только на задачи из динамического класса. Тем самым ситуация только ухудшается: приоритет низкоприоритетных задач реального времени не меняется, а высокоприоритетные задачи могут быть вытеснены совсем низкоприоритетными задачами из динамического класса.
• Высокоприоритетные задачи могут блокироваться низкоприоритетными. Дело в том, что приоритеты задач из класса реального времени все-таки могут менятся. Некоторые компоненты ядра работают на уровне приоритета динамического класса. Следователь но, некоторые системные вызовы приводят к понижению приоритета и выводу задачи из класса реального времени. При этом она может быть заблокирована другой задачей, имевшей до этого более низкий приоритет.
• Все страницы неактивного процесса (например, ожидающего данных), могут быть перенесены на диск, несмотря на закрепление их вызовом VirtualLockQ. Это приводит к случайным задержкам при активизации процесса (например, при поступлении ожидавшихся данных).
• Для WindowsNT официально не приводятся времена системных вызовов и времена блокирования прерываний.
• Систему невозможно использовать без дисплея и клавиатуры.
• Система предъявляет слишком большие для ОСРВ запросы на память.
Для устранения этих недостатков ряд компаний предлагает программные (аппаратные) средства. Основные идеи их построения те же, что и для Linux. Поскольку исходный код системы недоступен, то, в отличие от Linux, существует только один способ приспособить систему к требованиям реального времени: разработать микроядро, обеспечивающее надлежащее планирование задач и диспетчеризацию прерываний, aWindowNT выполнять как процесс.