Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
vovk.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
456 Кб
Скачать
☆

4._Архітектура ос qnx-6.

Архітектури сучасних ОС РЧ (архітектура монолітної ОС, архітектура багаторівневої ОС, мікроядерна архітектура; функціональні вимоги до сучасних ОС РЧ: багатозадачність, багатопріоритетність, багатопотоковість, виштовхування задач, правила диспетчеризації потоків та синхронізації їх роботи, вкладання часу роботи потоків у відповідні критичні терміни).

1.Монолитная ОС – на основе монолітного ядра VX Works - представление ОС как набора модулей, взаимодействующих между собой различным образом внутри ядра системы и предоставляющих прикладным программам входные интерфейсы для обращений к аппаратуре. Главным недостатком такой архитектуры является плохая предсказуемость ее поведения, вызванная сложным взаимодействием модулей системы между собой.

2.Многоуровневая ОС(MS DOS) В системах этого класса прикладные приложения могли получить доступ к аппаратуре не только посредством ядра системы или ее резидентных сервисов, но и непосредственно. По такому принципу строились ОСРВ в течение многих лет. По сравнению с монолитными ОС такая архитектура обеспечивает значительно большую степень предсказуемости реакций системы, а также позволяет осуществлять быстрый доступ прикладных приложений к аппаратуре.

Недостатком таких систем является отсутствие в них многозадачности. В рамках такой архитектуры проблема обработки асинхронных событий сводилась к буферизации сообщений, а затем последовательному опросу буферов и обработке. При этом соблюдение критических сроков обслуживания обеспечивалось высоким быстродействием вычислительного комплекса по сравнению со скоростью протекания внешних процессов.

3.Микроядерная архитектура – QNX-6 (Neutrino2). Особенности этой архитектуры – небольшое компактное ядро, которое обеспечивает маршрутизацию сообщений между системными и пользовательскими программами, а так же диспетчеризацию вычислит-ных процессов в системе.

5. Основні компоненти ос рч та їх загальна характеристика (планувальник задач та диспетчер (ядро), обробники переривань, програма стеження за часом, адміністратор ресурсів).

6.Правила диспетчеризації потоків в сучасних ос рч (fifo,rr,тощо). Рівні пріоритетів. Механізми синхронізації.

Выполнение потока прекращается каждый раз,когда микроядро получает получает системный запрос или когда возникает сбой, или же аппаратное прерывание. Диспетчеризация происходит каждый раз, когда состояние любого какого-либо потока меняется, независимо от того, какой поток в данный момент выполняется. Решение о том, какой поток должен получить управление, принимает Neutrino. Если управление получает поток, отличный от текущего, то выполняется переключение контекста активной задачи. Переключение контекста выполняется в том случае, если текущий поток:

- Блокируется (например, в результате вызова функции ожидания сообщений)

- Добровольно передает управление (например, с помощью вызова функции sched_yield ())

- Если в системе существует поток, выполнение которого является более важным.

Блокированный поток удаляется из очереди готовых потоков и готовый поток с наивысшим приоритетом будет выполняться. Когда блокирован поток разблокируется, он будет помещен в конец очереди готовых потоков такого же уровня приоритета, как и он сам. Если поток добровольно освобождает процессор (вызывает функцию sched_yield ()), то он ставится в конец очереди для своего приоритета. Далее выполняется поток с наивысшим приоритетом. Выполняемый поток прерывается, когда поток с более высоким приоритетом ставится в очередь. Прерванный поток остается в начале очереди для своего приоритета и более приоритетный поток выполняется.

Существует специальный неактивный поток в менеджере процессов, который имеет приоритет 0 и всегда готов работать.

Поток наследует приоритет его родительского потока по умолчанию.

Поток имеет реальный приоритет и эффективный приоритет, и может изменять их, но эффективный приоритет может меняться через приоритетное наследования или политику диспетчеризации. Конечно же эффективный приоритет равен реальному приоритета.

Фактически очередь потоков, котрые готовы к выполнению, созданна как 64 отдельные очереди, одна на каждый приоритет. Для обеспечения большей гибкости при перераспределении процессорного времени Микроядро использует 3 алгоритмы диспетчеризации для каждой очереди потоков с одинаковым приоритетом:

- FIFO (выбранный поток выполняется, пока не передаст управление или не прервется более приоритетным потоком.

- Round Robin (выбранный поток выполняется, пока не передаст управления, не прервется более приоритетным потоком или не закончится интервал времени его работы).

- Адаптивный алгоритм (если поток исчерпал выделенный ему интервал времени, то его приоритет снижается на 1 при условии, что существует готовый к выполнению поток с таким же приоритетом; если поток переходит в заблокированное состояние, то его приоритет восстанавливается до первоначального значения).

Поток может установить для себя любой из данных алгоритмов, однако он будет применяться в том случае, если существует хотя бы еще один поток с таким же приоритетом и данным алгоритмом диспетчеризации. Перераспределение времени процессора, согласно одному из приведенных алгоритмов, нарушается в том случае, если поток с большим приоритетом становится готовым к выполнению - в этом случае он немедленно получает управление, прерывая выполнения менее приоритетного потока.

Механизмы синхронизации:

- Мютексы - взаимно-исключительные блокировки. Являются наиболее простыми средствами синхронизации. Мютекс используется, чтобы гарантировать монопольный доступ к общедоступным между потоками данным.

- Условные переменные(condvar) - используется, чтобы блокировать поток в пределах критической секции кода пока определенное условие не будет удовлетворено.

- Барьеры- это механизмы синхронизации, позволяющие приостановить несколько потоков, заставляя их ждать в определенной точке , пока таких потоков не наберется определенное число. Когда указанное число таких потоков, которые ждут в барьера набралось, они все разблокируются и продолжают свое выполнение.

- Sleepon-блокировки. Может использоваться, чтобы блокировать поток, пока определенное условие не будут удовлетворены. В отличие от condvar, sleepon-блокировки имеют "спрятан" Мютекс, который программно не доступен, и поэтому их использование более простое и надежное.

- Блокировка чтения / записи. Используются для решения проблемы "читатель / писатель". Когда определенный поток пытается записать данные в общей области памяти, то с помощью использования блокировок чтения / записи его запрос может быть отклонен, пока поток, который читает эти данные не разблокирует ее и наоборот.

- Семафоры. Аналогичные мютексам с тем различием, что доступ к ресурсу имеет не один поток, а несколько.

- FIFO-алгоритм может гарантировать, что никакие два потока того же приоритета не выполнят критическую секцию одновременно. Все FIFO-потоки в системе одного приоритета будут выполняться по очереди, пока они добровольно не освободят процессор. Передачи сообщений Send / Receive / Reply осуществляют неявную синхронизацию по характеру блокировки. Это единственная синхронизация, которая может использоваться в сети.

-Передачі повідомлень Send/Receive/Reply здійснюють неявну синхронізацію за характером блокування. Це єдина синхронізація, що може використовуватися в мережі.

-Атомарные операции используют для добавления значения, вычитания значения, очистки битов, установка бита.

7.Захист від інверсії пріоритетів (через успадкування пріоритетів та протокол граничного пріоритету Priority Ceiling Protocol). Часові характеристики ОС РЧ (критерії - максимальне значення часу, незалежність від варіанту завантаження, числа задач та їх контексту).

Обяз. функциональным требов. к ОС РВ явл. наличие в ОС механизмов синхр. доступа к раздел. ресурсам. В ОС РВ к объектам синхр. предъявлены специф. требования, т.к. на этих объектах возможны значит. задержки вып. потоков.

Одна из наиболее серьезных проблем, котор. должна решать ОС РВ – пробл. защиты от инверсии приоритетов (ИП).

ИП возник, когда 2 потока выскоприоритетных (В) и низкоприоритетных (Н) разделяют некий ресурс (Р). Пускай существует некий 3й поток сред. приор (С). Если В переходит в сост готовности, когда Н заблок Р, то поток В вытесняет поток Н, но Р остается заблок. Когда В понадобится Р, то он сам перейдет в сост. блок. Если в сост готовности находитя только Н, то все будет нормально: Н освоб Р и будет вытеснен потоком В. Но, если в сост готовности находится поток С, то акт станет именно он, а Н опять будет вытеснен и получит упр только после того, когда С закончит свою работу. Подобная задержка может привести к тому, что критич время обслуж потока В будет пропущено.

Механизмы защиты:

1. наследование приоритетов

2. протокол принудительного приоритета

1) Механизм наслед. Приоритетов закл в том, что Н захвативший Р, наследует приоритет В, которому этот ресурс нужен. Следовательно, Н не может быть вытеснен потоком с меньше чем В приоритетом. После того, как Н разблокирует Р, его приоритет восстанавливается и он вытесняется потоком В.

2) Механизм заключается в том, что к станд св-вам синхр добавл парам, где указ макс приор потока среди тех, кот к нему обращ. Тогда проритет любого потока кот обращ к данному объекту синхр будет увелич до указ в параметре уровня. И, следовательно, такой поток не сможет быть вытеснен никаким потоком, кот может нуждаться в Р. После разблок Р, приор потока пониж до начал ур.

О временных х-ках ОС РВ

Общепринятое усл, отдел ОС РВ от ОС общ назн явл следующие:

Время реакций ОС при люб вариантах ее загрузки =const. Это значит:

а) патенция прерываний ( т.е. время от момента инициации прерыв до первой команды прогр обработчика )

б)время перекл процессов и потоков

Также оч важны времена разрешения конфликтов.

В системах РВ ключ явл не статические (среднии оценки), а макс знач времени т.к. превыш времени реакции даже в одном случае из миллиона в задачах ЖРВ может привести к катастрофе.

Еще одна важн особенность ОС РВ закл в том, что время перекл. Контекста потока не должно зависить от колич потокв в системе.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]