- •Вопрос 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. Общий обзор.
Вопрос 45. Определения основных объектов ос. Ресурсы, приоритеты. Параллельные процессы. Многозадачные ос.
Ресурс - это объект, необходимый для работы процессу или задаче.
Приоритет - это число, приписанное операционной системой каждому процессу и задаче. Чем больше это число, тем важнее этот процесс или задача и тем больше процессорного времени он или она получит. Как отмечалось выше, часто в ОСРВ задача с меньшим приоритетом может вообще не получить управления при наличии в состоянии готовности задачи с большим приоритетом.
Если в операционной системе могут одновременно существовать несколько процессов или/и задач, находящихся в состоянии "выполняется", то говорят, что это многозадачная система, а эти процессы называют параллельными. Отметим, что если процессор один, то в каждый момент времени на самом деле реально выполняется только один процесс или задача. Система разделяет время между такими "выполняющимися" процессами/задачами, давая каждому из них квант времени, пропорциональный его приоритету. Этот квант времени часто не зависит от специфики решаемой задачи реального времени, поэтому такой подход обычно не используется в ОСРВ. Обычно в ОСРВ в состоянии выполнения может быть только один процесс. В хорошей ОСРВ этоможноизменитьпрограммнымпутем.
Вопрос 47. Согласование кэШей в мультипроцессорных системах.
Согласование кэшей в мультипроцессорных системах.
Если несколько процессоров подсоединены к одной и той же шине адреса и данных и разделяют одну и ту же внешнюю память, то должен быть реализован определенный следящий механизм (snooping) для того, чтобы все внутрипроцессорные кэши всегда содержали одни и те же данные.
Рассмотрим, например, систему, содержащую два процессора, каждый из которых может брать управление общей шиной. Если процессор 1, управляющий в данный момент шиной, записывает в ячейку памяти, которая кэширована процессором 2, то данные в кэше последнего становятся устаревшими. Следящий механизм позволяет второму процессору отслеживать состояние шины адреса, даже если он не является в данный момент главным (т.е. управляющим внешней шиной). Если на шине появился адрес кэшированных данных, то эти данные помечаются в кэше как некорректные. Когда второй процессор станет главным, он должен будет выбрать в случае необходимости обновленные данные из разделяемой памяти.
Если процессор 1, управляющий в данный момент шиной, читает из ячейки памяти, которая кэширована процессором 2, то возможно, что реальные данные находятся в кэше процессора 2 (еще не записаны в память, т.е. реализован кэш с обратной записью). Если это так, то следящий механизм инициирует цикл записи строки кэша процессора 2, содержащей затребованные процессором 1 данные, в разделяюмую память. После этого эти данные становятся доступными процессору 1 и цикл чтения процессора 1 продолжается.
Вопрос 48. Влияние требований рв на выбор архитектуры процессора.
Не все описанные выше приемы повышения производительности процессора ускоряют работу типичной системы реального времени, а иногда и замедляют ее. Этим объясняется то, что на рынке систем для ОСРВ значительную долю занимают процессоры с устаревшей CISC архитектурой, имеющие примитивный конвейер и кэш. Рассмотрим основные причины этого положения.
• Доводы (статистический анализ), положенные в основу обоснования RISC архитектуры, оказались не совсем верными для ОСРВ. Часто приложение ОСРВ проводит значительную часть времени в обработке прерываний от внешних устройств. Обработчики прерываний часто пишутся на ассемблере и наличие сложных инструкций в CISC процессоре позволяет уменьшить длину обработчика. Наличие сложных режимов адресации памяти позволяет обойтись меньшим количеством регистров и, соответственно, еще умень шить обработчик (за счет уменьшения количества сохраняемых/восстанавливаемых ре гистров) .
• Увеличение числа регистров в RISC процессорах приводит к увеличению времени на переключение задач и, в частности, на обработку прерываний, поскольку необходимо сохранять/восстанавливать значительное количество регистров.
• Увеличение глубины конвейера приводит к увеличению времени на переключение задач и, в частности, на обработку прерываний, поскольку необходимо дождаться выполнения всех инструкций в конвейере.
• Увеличение глубины конвейера и размеров кэша не всегда приводит к ускорению рабо ты ОСРВ из-за большого количества прерываний (т.е. переключений задач), поскольку конвейеры и кэш не успевают заполниться необходимыми инструкциями и данными.
• Увеличение размеров кэша приводит к увеличению накладных расходов на их синхронизацию в многопроцессорных системах.
• В ряде ситуаций ОСРВ приходится блокировать все конвейеры суперскалярного процессора, кроме одного. Дело в том, что инструкции в таком процессоре могут завершаться не в том порядке, в котором они подавались в процессор. Например, поток инструкций I4 ->I3 ->I2 ->I1 -> процессор может быть распределен между двумя конвейерами как I3 ->I1 -> конвейер1, I4 ->I2 -> конвейер2. Если инструкция I1 выполняется очень долго (например, в ней делается обращение к памяти), то инструкции I2, I4 будут исполнены раньше, чем I1, I3. Эта ситуация недопустима при работе с вводом/выводом. Поэтому в суперскалярных процессорах существуют инструкции, переводящие его в последовательный режим исполнения инструкций для обеспечения их правильного порядка. Часто эти инструкции фактически блокируют все конвейеры, кроме одного.
Для ускорения обработки прерываний, в некоторых процессорах применяются специальные меры.
• Таблица прерываний может храниться во внутренней памяти процессора, что делает не нужной выборку из внешней памяти (Intel 80960).
• Процессор может включать теневые регистры, что делает не нужным сохранение кон текста текущей задачи в простых процедурах обработки прерываний (НР-РА).
• Критические процедуры обработки прерываний могут быть заблокированы в кэше ин струкций (Motorola 68060).
• Таблица прерываний может хранить первые инструкции обработчика прерываний, что уменьшает простой конвейера (SPARC).