- •Что такое срв?
- •Основное свойство срв
- •Требования к срв
- •Чем срв отличается от систем, не относящихся к этому классу?
- •Что такое функциональная и информационная безопасности?
- •Что такое встроенная система?
- •Соотношения между срв и встроенными системами
- •Соотношение требований надёжности и безопасности
- •Виды временных ограничений (больше-меньше-равно) по для одной или группы задач
- •Классификация временных ограничений по степени строгости их соблюдения
- •Способы задания временных ограничений
- •Некоторые архитектуры срв
- •Что такое функция полезности?
- •Причины неприменимости Ethernet для передачи данных в срв
- •Как решается вопрос предсказуемости в Isohronous Ethernet промсети Profinet?
- •Причины непредсказуемого поведения аппаратуры
- •Что послужило стимулом для применения шины can в автомобильной промышленности?
- •Почему промышленная шина can может использоваться для передачи данных в предсказуемых по времени режимах?
- •Почему промышленные компьютеры дороже бытовых?
- •Что означает термин fieldbus?
- •Что такое Конкурентное Программирование?
- •В чём различие между истинным- и псевдопараллелизмом?
- •Что такое эффект гонок в многозадачной среде?
- •В чём причины возникновения гонок в многозадачной среде
- •Знаменитые аварии вызванные эффектом гонок
- •30.Какие временные аномалии встречаются в микропроцессорах?
- •31. Что означают термины синхронизация?
- •32. Что такое коммуникация?
- •33. Какие отрицательные явления могут возникнуть при совместной работе нескольких параллельно выполняемых задач?
- •34. Какие классические задачи конкурентного программирования вы знаете?
- •35. В чём отличия тупика от livelock?
- •36. Основные понятия циклического исполнителя (cyclic executive)?
- •37. Назовите Достоинства и недостатки способа выполнения задач в бесконечном цикле. Clock-driven scheduling
- •38. Что такое Slack Stealing?
- •39. Классификация задач по периодичности.?
- •40. Временные параметры периодических задач.
- •41. На каком американском космическом аппарате инверсия приоритета привела к многократной перезагрузке бортового компьютера?
- •42. Сколько флагов на уровне пользовательской программы требуется для организации взаимоисключающего доступа двух задач к разделяемым данным?
- •43. Какие недостатки у способа регулирования доступа к критическим данным двух задач с помощью одной переменной-флага?
- •44. Какие средства организации взаимоисключающего доступа задач к разделяемым данным можно использовать в программах?
- •45. Какие проблемы взаимоисключающего доступа задач к разделяемым данным с помощью флагов решает алгоритм Петерсона?
- •46. Какие виды семафоров вы знаете?
- •47. Какие основные подходы к управлению совместно выполняемыми задачами используются в системах реального времени (срв) для предсказуемого по времени их поведения?
- •48 Что такое mutex?
- •49. В чём отличие мутекса от семафора?
- •50. Что такое инверсия приоритета?
- •52. Что необходимо для возникновения инверсия приоритета?
- •53. Можно ли полностью избавиться от инверсии приоритета
- •54. Суть схемы наследования приоритета
- •55. Суть схемы Immediate priority ceiling protocol (ipcp).
- •56. Сформулируйте закон Мэрфи.
- •57. Какие проявления закона Мэрфи в системах реального времени вы знаете?
- •58. Когда вытесняющий на основе приоритетов планировщик принимает решения?
- •59. Какие алгоритмы диспетчеризации/планирования потоков доступны в ос Neutrino?
- •60. В чём разница между дисциплинами планирования rr и fifo?
- •61. Классификация алгоритмов планирования задач в срв
- •62. Какие алгоритмы планирования со статическими (фиксированными) приоритетами вы знаете?
- •63. Каким условиям должна удовлетворять система задач, чтобы к ней можно было применить rms?
- •64. В чём суть rms?
- •65. Фамилии авторов rma?
- •66. Назовите фамилии некоторых учёных, внесших значительный вклад в конкурентное программирование
- •67. Что такое утилизация задачи, системы задач?
- •68. Каких учёных, основоположников конкурентного программирования, вы знаете?
- •69. Кто является автором примитива синхронизации Семафор?
- •70. Какая книга Хоара издана на русском языке?
- •71. Достаточное условие планируемости по rms. Что оно означает?
- •80. В чём отличие приоритета задачи от критичности задачи с точки зрения планировщика?
- •81. Какой дедлайн – абсолютный или относительный – использует edf-алгоритм планирования? (не уверен)
- •82. В каких случаях edf-алгоритм планирования оптимален?
- •83. Как влияет многороцессность на оптимальность edf-планирования?
- •84. Каким качеством характеризуются алгоритмы планирования на основе приоритетов с вытеснением с точки зрения оптимальности принимаемых решений в каждой точке планирования?
- •86. Что такое Laxity (Slack Time) работы? Как меняется Laxity в процессе выполнения работы и в процессе простоя?
- •87. Какой из двух вариантов алгоритма планирования lst оптимален в однопроцессорном варианте?
- •88. Чем алгоритм lst хуже edf с точки зрения накладных расходов на планирование?
- •89. От какого параметра набора задач зависит достаточное условие планирования этих задач по rm алгоритму?
- •90. Как называется процедура проверки планируемости задач с использованием графика ступенчатой функции?
- •91. Какие недостатки по рв привели к северо-американскому blackout’у в 2003 г.?
- •92. Какое отрицательное явление в многозадачной среде привело к трагическим исходам во время лечении медицинским ускорителем Therac-25?
- •93. Какие причины привели к многократной перезагрузке бортового компьютера космического аппарата Mars Pathfinder?
- •94. Какой из алгоритмов планирования на основе динамических приоритетов применяется на практике?
- •95. Какую максимальную загрузку процессора может использовать система независимых периодических задач, спланированных на основе динамических приоритетов?
- •96. В чём разница и что общего между спорадическими и апериодическими задачами?
- •97. Что такое Аномалия планирования?
- •98. Что такое джиттер времени выполнения работы?
- •99. В каких классах алгоритмов планирования могут возникать аномалии?
- •100. Какой подход используется для планирования спорадических задач совместно с системой независимых периодических? в чём его отличие от планирования апериодических задач?
- •101. В чём недостатки планирования апериодических задач в фоновом режиме и в режиме прерываний?
- •102. Что такое сервер апериодических задач?
- •103. Что такое периодический сервер?
- •104. Что такое Slack Stealing при планировании апериодических задач? в ос рв какой фирмы это применяется?
- •105. Какими характеристиками один вид периодического сервера отличается от другого?
- •106. Как работает Polling Server.
- •107. Суть использования и пополнения бюджета деферабельным сервером.
- •112. Как влияет спорадический сервер на планируемость системы периодических задач?
- •113. Теоремы относительно возможности минимизации временны ́ х параметров апериодических задач в системе спланированных на основе статических приоритетов периодических задач.
- •114. То же самое для системы задач, спланированных на основе динамических приоритетов.
- •115. Какие существуют варианты размещения процессов в памяти в системах реального времени?
- •116. Что такое mmu?
- •117. Что такое виртуальная память?
- •118. Какую модель памяти использует cyclic executive
- •119. В чём преимущества и недостатки плоской (flat) модели памяти?
- •120. Какую модель памяти использует qnx Neutrino, в чём её достоинства и недостатки?
- •121. Какие структуры данных используются в операционных системах рв для хранения информации о свободных блоках в куче?
- •122. Какая стратегия выбора свободного блока памяти в куче используется в ос qnx Neutrino?
- •123. Виды архитектур ос рв.
- •124. Какая стратегия выбора свободного блока памяти в куче используется в ос VxWorks 6.?
- •125. Достоинства и недостатки архитектуры ос с монолитным ядром.
- •126. Достоинства и недостатки архитектуры ос с микроядром.
- •127. В чём суть архитектуры ос рв с разделяемым ядром?
- •128. Где преимущественно применяются ос рв с разделяемым ядром?
- •129. Главные принципы архитектуры ос рв qnx Neutrino.
- •130. По каким временны ́ м параметрам сравниваются между собой различные ос рв?
- •131. Назовите те ос рв, о которых вы слышали.
- •132. О каких клонах ос Linux с возможностями реального времени вы знаете?
- •133. Что такое операционная система реального времени?
- •134. Общие требования к языкам программирования реального времени.
- •135. Каким инструментарием должны обладать яп рв.
- •136. Последний стандарт яп Ада датирован каким годом?
- •137. Что такое Ravenscar Profile?
- •138. Какие средства для программирования приложений рв содердит яп Ада?
- •139. Почему self-hosted версия qnx Neutrino 6.5 не содержит ide Momentics?
- •140. Какие недостатки стандартного яп Java модифицированы Real-Time Java Specification(rtjs)?
- •141. Назовите оо яп рв.
- •142. Сколько приблизительно существует ос рв?
- •143. Можно ли отнести ос Android к классу ос рв?
- •144. Что такое формальные методы?
- •145. Назовите известные вам программные инструменты формальной верификации по.
- •153. Назовите известные вам ос рв, совместимые со стандартом posix.
- •154. Что определяют профили стандартов posix? Какие профили существуют и чем они отличаются?
- •159. Что такое mils-архитектура по рв?
- •160. К какому классу относится архитектура ос рв, поддерживающая множественные изолированные разделы?
- •161. Что такое гипервизор?
- •162. Что такое firm срв?
- •163. Что определяет стандарт arinc 653?
- •164. Сколько категорий отказов по рв предусматривает стандарт do-178? в чём различие по разных категорий с точки зрения разработчика по?
- •165. Для какой сферы применения разрабатывались стандарты do-178 и arinc 653?
- •166. Что означает акроним eal в стандарте “Common Criteria”?
- •167. Что определяет стандарт гост р 51904?
- •168. Что такое Time Demand Analysis?
- •169. Что такое фаза задачи?
- •170. Что такое критический момент времени (critical instant) в контексте анализа
- •171. Как называется международный стандарт, которому соответствует гост р 15408?
- •172. Какой семитомный стандарт определяет комплекс требований к разработке по программно-аппаратных систем, связанных с безопасностью?
- •173. Какие функции выполняет микроядро осрв qnx Neutrino?
- •174. В чём различие между процессом и потоком в осрв qnx Neutrino?
- •175. Кто такой с. Зыль?
- •176. Кто является автором переводной книги по программированию систем реального времени в среде qnx Neutrino?
- •177. Назовите известные вам функции для запуска дочерних процессов в qnx Neutrino.
- •178. Какие характеристики дочерних потоков можно задавать при их создании с помощьюатрибутов?
- •179. Что вы можете рассказать про использование сигналов?
- •180. Для чего служат примитив синхронизации Барьер?
- •181. Какие средства синхронизации, предоставляемые qnx Neutrino,вам известны?
- •182. Какие средства обмена данными между потоками в пределах одного процесса и разных процессов вам известны?
- •183. С помощью каких событий периодический posix-таймер может уведомлять заинтересованный поток о срабатывании?
- •184. Какие требования накладывает стандарт posix на интервал срабатывания однократного таймера?
- •185. В чём причина неправильности использования одноразового таймера в цикле для реализации заданного интервала времени в программе?
- •186. Какие аппаратные источники временных интервалов можно использовать для замера времени в программах qnx Neutrino?
- •187. Что такое таймаут?
- •188. Для чего предназначен примитив синхронизации условная переменная?
- •189. Нарисуйте график загрузки процессора системой периодических задач с заданными параметрами при планировании их по rm-алгоритму.
- •190. Нарисуйте график загрузки процессора системой периодических задач с заданными параметрами при планировании их по edf-алгоритму.
179. Что вы можете рассказать про использование сигналов?
Сигналы являются традиционным способом асинхронной связи, которая используется в течение многих лет в различных операционных системах.
QNX поддерживает большой набор сигналов, соответствующих стандарту POSIX, кроме того, сигналы, исторически присущие некоторым UNIX-системам, и ряд сигналов, уникальных для QNX.
Как породить сигнал
Считается, что сигнал доставлен процессу тогда, когда выполняется определенное в процессе для данного сигнала действие. Процесс может посылать сигнал самому себе.
Если вы хотите: Используйте:
Породить сигнал из командной строки Утилиты: kill и slay
Породить сигнал внутри процесса Функции Си: kill() и raise()
Получение сигналов
Процесс может принять сигнал одним из трех способов, в зависимости от того, как в процессе определена обработка сигналов:
• если процесс не определил никаких специальных мер по обработке сигнала, то выполняется предусмотренное для сигнала действие по умолчанию - обычно таким действием по умолчанию является завершение работы процесса;
• процесс может игнорировать сигнал. Если процесс игнорирует сигнал, то сигнал не оказывает на процесс никакого воздействия (учтите, что SIGCONT, SIGSTOP и SIGKILL не могут быть игнорированы в обычных обстоятельствах);
• процесс может предусмотреть обработчик сигнала - функцию, которая будет вызываться при приеме сигнала. Если процесс содержит обработчик для какого-либо сигнала, говорят, что процесс может "поймать" этот сигнал. Любой процесс, который "ловит" сигнал, фактически получает особый вид программного прерывания. Никакие данные с сигналом не передаются.
В промежутке времени между моментом, когда сигнал порожден, и моментом, когда он доставлен, сигнал называется ожидающим. Для процесса ожидающими одновременно могут быть несколько различных сигналов. Сигналы доставляются процессу, когда планировщик ядра делает этот процесс готовым к выполнению. Процесс не должен строить никаких предположений относительно порядка, в котором будут доставлены ожидающие сигналы.
Перечень сигналов
Сигнал: Описание:
SIGABRT Сигнал ненормального завершения, порождается функцией abort().
SIGALRM Сигнал тайм-аута, порождается функцией alarm().
SIGBUS Указывает на ошибку контроля четности оперативной памяти (особая для QNX интерпретация). Если во время выполнения обработчика данного сигнала произойдет вторая такая ошибка, то процесс будет завершен.
SIGCHLD Завершение порожденного процесса. Действие по умолчанию - игнорировать сигнал.
SIGCONT Если процесс в состоянии HELD, то продолжить выполнение. Действие по умолчанию - игнорировать сигнал, если процесс не в состоянии HELD.
SIGDEV Генерируется, когда в Менеджере устройств происходит важное и запрошенное событие.
SIGFPE Ошибочная арифметическая операция (целочисленная или с плавающей запятой), например, деление на ноль или операция, вызвавшая переполнение. Если во время выполнения обработчика данного сигнала произойдет вторая такая ошибка, то процесс будет завершен.
SIGHUP Гибель процесса, который был ведущим сеанса, или зависание управляющего терминала.
SIGILL Обнаружение недопустимой аппаратной команды. Если во время выполнения обработчика данного сигнала произойдет вторая такая ошибка, то процесс будет завершен.
SIGINT Интерактивный сигнал "внимание" (Break)
SIGKILL Сигнал завершения - должен быть использован только в экстренных ситуациях. Этот сигнал не может быть "пойман" или игнорирован. Сервер может защитить себя от этого сигнала посредством функции языка Си qnx_pflags(). Для этого сервер должен иметь статус привилегированного пользователя.
SIGPIPE Попытка записи в программный канал, который не открыт для чтения.
SIGPWR Перезапуск компьютера в результате нажатия Ctrl-Alt-Shift-Del или вызова утилиты shutdown.
SIGQUIT Интерактивный сигнал завершения.
SIGSEGV Обнаружение недопустимой ссылки на оперативную память. Если во время выполнения обработчика данного сигнала произойдет вторая такая ошибка, то процесс будет завершен.
SIGSTOP Сигнал приостановки выполнения (HOLD) процесса. Действие по умолчанию - приостановить процесс. Сервер может защитить себя от этого сигнала посредством функции языка Си qnx_pflags(). Для этого сервер должен иметь статус привилегированного пользователя.
SIGTERM Сигнал завершения.
SIGTSTP Не поддерживается QNX.
SIGTTIN Не поддерживается QNX.
SIGTTOU Не поддерживается QNX.
SIGUSR1 Зарезервирован как определяемый приложением сигнал 1.
SIGUSR2 Зарезервирован как определяемый приложением сигнал 2.
SIGWINCH Изменился размер окна.
Управление обработкой сигналов
Чтобы задать желаемый способ обработки для каждого из сигналов, вы можете использовать функции языка Си signal() стандарта ANSI или sigaction() стандарта POSIX.
Функция sigaction() предоставляет большие возможности по управлению обработкой сигналов.
Вы можете изменить способ обработки сигнала в любой момент времени. Если вы укажете, что сигнал данного типа должен игнорироваться, то все ждущие сигналы такого типа будут немедленно отброшены.
Обработчики сигналов
Некоторые специальные замечания касаются процессов, которые ловят сигналы посредством обработчиков сигналов.
Вызов обработчика сигнала аналогичен программному прерыванию. Он выполняется асинхронно по отношению к остальной части процесса. Таким образом, существует вероятность того, что обработчик сигнала будет вызван во время выполнения любой из имеющихся в программе функций (включая библиотечные функции).
Если в вашей программе не предусмотрен возврат из обработчика сигнала, то могут быть использованы функции siglongjmp() либо longjmp() языка Си, однако, функция siglongjmp() предпочтительнее. При использовании функции longjmp() сигнал остается блокированным.
Блокирование сигналов
Иногда может возникнуть необходимость временно запретить получение сигнала, не изменяя метод его обработки. QNX предоставляет набор функций, которые позволяют блокировать получение сигналов. Блокированный сигнал остается ожидающим; после разблокирования он будет доставлен вашей программе.
Пока ваша программа выполняет обработчик сигнала для определенного типа сигнала, QNX автоматически блокирует этот сигнал. Это означает, что нет необходимости заботиться о вложенных вызовах обработчика сигнала. Каждый вызов обработчика сигнала - это неделимая операция по отношению к доставке следующих сигналов этого типа. Если ваш процесс выполняет нормальный возврат из обработчика, сигнал автоматически разблокируется.