- •Что такое срв?
- •Основное свойство срв
- •Требования к срв
- •Чем срв отличается от систем, не относящихся к этому классу?
- •Что такое функциональная и информационная безопасности?
- •Что такое встроенная система?
- •Соотношения между срв и встроенными системами
- •Соотношение требований надёжности и безопасности
- •Виды временных ограничений (больше-меньше-равно) по для одной или группы задач
- •Классификация временных ограничений по степени строгости их соблюдения
- •Способы задания временных ограничений
- •Некоторые архитектуры срв
- •Что такое функция полезности?
- •Причины неприменимости 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-алгоритму.
42. Сколько флагов на уровне пользовательской программы требуется для организации взаимоисключающего доступа двух задач к разделяемым данным?
Перед тем как начать работу с разделяемым ресурсом поток должен захватить мьютекс. Единовременно владеть мьютексом может только один поток. Поэтому, если потоку удается захватить мьютекс, это означает, что мьютекс был свободен. Если мьютекс занят, система переводит поток в режим ожидания до тех пор, пока мьютекс не освободится. Захватив мьютекс, поток начинает работать с ресурсом, имея гарантию на то, что, сколько бы потоков не пыталось захватить тот же самый мьютекс, все они будут ждать его освобождения. Закончив работу с ресурсом, поток освобождает мьютекс. Даже если в этот момент мьютекс ожидает несколько потоков, захватить его сможет только один поток (какой именно - решает планировщик). Таким образом, мьютекс гарантирует, что только один поток получает монопольный доступ к ресурсу.
Два флага занят либо свободен.
43. Какие недостатки у способа регулирования доступа к критическим данным двух задач с помощью одной переменной-флага?
Пусть имеются два (или более) циклических процесса, в которых есть абстракт-ные критические секции, то есть каждый из процессов состоит из двух частей: некоторого критического интервала и оставшейся части кода, в которой нет рабо¬ты с общими (критическими) переменными. Пусть эти два процесса асинхронно разделяют во времени единственный процессор либо выполняются на отдель¬ных процессорах, каждый из которых имеет доступ к некоторой общей области памяти, с которой и работают критические секции. Проиллюстрируем эту ситуацию с помощью рис. 6.4.
Проблема кажется легко решаемой, если потребовать, чтобы процессы ПР1 и ПР2 входили в свои критические интервалы попеременно. Для этого одна общая переменная может хранить указатель того, чья очередь войти в критическую секцию.
Однако если бы часть программы PR1 была намного длиннее, чем программа PR2, или если бы процесс ПР1 был заблокирован в секции PR1, или если бы процессор для ПР2 был с большим быстродействием, то процесс ПР2 вскоре вынужден был бы ждать (и, может быть, чрезвычайно долго) входа в свою критическую секцию CS2, хотя процесс ПР1 и был бы вне CS1. То есть при таком решении один процесс вне своей критической секции может помешать вхождению другого в свою критическую секцию.
44. Какие средства организации взаимоисключающего доступа задач к разделяемым данным можно использовать в программах?
1.He использовать алгоритмы планирования задач с вытеснением. Это решение, правда, не всегда приемлемо.
2. Использовать специальный сервер ресурса, то есть задачу ответственную за упорядочивание доступа к ресурсу. В этом случае запрос на изменение значения глобальных данных посылается этому серверу в виде сообщения. Аналогичный подход применим и для физических устройств. Так, например, задача может послать данные на печать в виде сообщения, направленного к серверу принтера.
3. Запретить прерывания на время доступа к разделяемым данным. Кардинальное решение, которое, впрочем, не приветствуется в системах реального времени.
4. Использовать для упорядочивания доступа к глобальным данным семафоры. Наиболее часто применяемое решение, которое, впрочем, может привести в некоторых случаях к «инверсии приоритетов».
Семафор — это как раз то средство, которое часто используется для синхронизации доступа к ресурсам. В простейшем случае семафор представляет собой байтовую переменную, принимающую значение 0 или 1. Задача, перед тем как использовать ресурс, захватывает семафор, после чего остальные задачи, желающие использовать тот же ресурс, должны ждать, пока семафор (ресурс) освободится.
Проникнувшись сознанием того, насколько опасно изменять глобальные переменные в условиях, когда все вокруг так и норовят друг друга вытеснить, наверно, не удивительно, что участки кода программ, где происходит обращение к разделяемым ресурсам, называются критическими секциями.
Так как процессы обычно не имеют доступа к данным друг друга, а ресурсы физических устройств, как правило, управляются специальными задачами-серверами (драйверами), наиболее типична ситуация, когда «гонки» за доступ к глобальным переменным устраивают различные потоки, исполняемые в рамках одного программного модуля. Для того чтобы гарантировать, что критическая секция кода исполняется в каждый момент времени только одним потоком, используют механизм взаимоисключающего доступа, или попросту мутексов (Mutual Exclusion Locks, Mutex). Практически мутекс представляет собой разновидность семафора, который сигнализирует другим потокам, что критическая секция кода кем-то уже выполняется.