Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы 50-56.docx
Скачиваний:
23
Добавлен:
13.03.2016
Размер:
845.7 Кб
Скачать

Архитектура систем реального времени.

В общем случае операционная система состоит из нескольких «слоев», каждый из которых выполняет свой набор функций. Рис 3.1

Практически все современные процессоры поддерживают как минимум два режима выполнения программного кода:

• «привилегированный режим» (или «режим супервизора», или «режим ядра», или «kernel mode», или «защищенный режим»);

• «непривилегированный режим» (или «режим приложений»).

Основное отличие между ними заключается в том, что программы, работающие в режиме супервизора, имеют непосредственный доступ ко всем ресурсам ЭВМ - ко внешним устройствам, к оперативной памяти по физическим адресам и пр.; программы же режима приложений работают в виртуальной среде, сформированной программами режима супервизора.

Различают два больших класса архитектур операционных систем: «монолитная» и «микроядерная».

Все компоненты «монолитной» ОС работают в режиме супервизора в едином адресном пространстве. Главное достоинство таких ОС – высокая производительность. Главный недостаток – невозможность внесения каких- либо изменений в структуру операционной системы в процессе ее эксплуатации, т.е. плохая масштабируемость. Другой недостаток – невысокая реактивность системы, т.к. если внешнее событие, требующее немедленной реакции, происходит во время выполнения задач уровня ядра, то обработка этого события задерживается до возвращения на уровень приложений. Особенность «микроядерных» ОС – наличие компактного и быстродействующего «микроядра», работающего в режиме супервизора, а все остальные компоненты операционной системы, включая менеджеры ресурсов, при этом работают в непривилегированном режиме. «Микроядерный» подход обеспечивает хорошую гибкость и масштабируемость операционной системы, малое время реакции на внешние события. С другой стороны, «микроядерные» операционные системы отличаются относительно невысокой производительностью, т.к. при работе происходят частые переключения из режима в режим.

Ничего не могу найти про базовые модули

ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ № 53б

Синхронизация в СРВ – основные принципы, методы и средства для осуществления синхронизации.

Синхронизация процессов в системах реального времени

Организация некоторого порядка исполнения процессов называется синхронизацией (synchronization). Синхронизация процессов является основной функцией многозадачных операционных систем и используется для защиты ресурсов - с помощью механизма синхронизации упорядочивается доступ к ресурсу. То есть, процесс может получить доступ к ресурсу только после того, как другой процесс освободил его. Введение дополнительных переменных для защиты ресурсов не лучший выход, поскольку эти переменные сами становятся общим ресурсом. Существо проблемы состоит в том, что операции проверки и изменения значения переменной защиты разделены во времени и могут быть прерваны в любой момент. Более того, непрерывный контроль значений этих переменных представляет собой излишние затраты процессорного времени. Существует достаточно обширный класс средств операционных систем, с помощью которых обеспечивается взаимная синхронизация процессов и потоков. Потребность в синхронизации потоков возникает только в мультипрограммной операционной системе и связана с использованием аппаратных и информационных ресурсов вычислительной системы. Синхронизация необходима для исключения гонок и тупиков при обмене данными между потоками, разделении данных, при доступе к процессору и устройствам ввода-вывода. Ситуации, когда два или более потоков обрабатывают разделяемые данные и конечный результат зависит от соотношения скоростей потоков, называются гонками. Во многих операционных системах эти средства называются средствами межпроцессного взаимодействия.

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

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

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

Например, поток-получатель должен обращаться за данными только после того, как они помещены в буфер потоком-отправителем. Если же поток-получатель обратился к данным до момента их поступления в буфер, то он должен быть приостановлен. При совместном использовании аппаратных ресурсов синхронизация также совершенно необходима. Когда, например, активному потоку требуется доступ к последовательному порту, а с этим портом в монопольном режиме работает другой поток, находящийся в данный момент в состоянии ожидания, то операционная система (ОС) приостанавливает активный поток и не активизирует его до тех пор, пока нужный ему порт не освободится. Часто нужна также синхронизация с событиями, внешними по отношению к вычислительной системе, например реакции на нажатие комбинации клавиш Сtгl+С. Ежесекундно в системе происходят сотни событий, связанных с распределением и освобождением ресурсов, и операционная система должна иметь надежные и производительные средства, которые бы позволяли ей синхронизировать потоки с происходящими в системе событиями. Для синхронизации потоков прикладных программ программист может использовать как собственные средства и приемы синхронизации, так и средства операционной системы.

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

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

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

ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ № 54б

Операционные системы реального времени. Синхронизация вычислительных процессов в ОС РВ.

МЕТОДЫ СИНХРОНИЗАЦИИ ЗАДАЧ

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

Существуют следующие виды синхронизации:

- синхронизация по данным;

- синхронизация по использованию ресурсов;

- синхронизация с внешними событиями;

- синхронизация по времени.

СИНХРОНИЗАЦИЯ ПО ДАННЫМ.

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

Синхронное сообщение — программа пересылает данные и приостанавливает свою работу до получения ответа от другой про­граммы.

Асинхронное сообщениепрограмма, выполнив передачу, продолжает работу, не дожидаясь ответа. Механизмы передачи данных:

1. Почтовые ящики.

2. Очередь сообщений.

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

Очередь сообщений. Каждая программа имеет буфер памяти, размер которой меняется от количества сообщений. Здесь сообщения не теряются, а очередь сообщений ограничена оперативной памятью.

СИНХРОНИЗАЦИЯ ПО ИСПОЛЬЗОВАНИЮ РЕСУРСОВ.

Ресурс — физическое устройство (печатающее или дисковое) или область оперативной памяти.

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

СИНХРОНИЗАЦИЯ С ВНЕШНИМИ СОБЫТИЯМИ

События должны быть обнаружены, и программы в соответствие с событиями должны производить те или иные действия.

Технологические процессы

Способы считывания информации о внешнем процессе:

- циклический опрос;

- обмен по прерываниям;

- прямой доступ к памяти.

Достоинство: способ прост.

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

Обмен по прерываниям

Внешнее устройство выдает на системную магистраль сигнал запроса «на прерывание». Это сигнал воспринимается процессором. Процессор прекращает выполнение текущей задачи и переходит к подпрограмме обработки 2 по прерываниям». Далее процессор переходит к обработке прерванной программы. За каждым прерыванием закреплен вектор прерывания — ячейка памяти, которая содержит адрес программы обработки.

Прямой доступ к памяти.

УСО может записывать в ОЗУ без участия процессора.

СИНХРОНИЗАЦИЯ ПО ВРЕМЕНИ

Необходимо при выполнении действий, привязывать их к астрономическому времени. Такая необходимость возникает не так часто, как необходимость отслеживать интервалы времени. Для работы со временем микропроцессор содержит в себе программируемый таймер, который через заданный интервал времени может генерировать сигнал прерывания. Сигнал таймера называется - тиком. Тик обычно равен lμс, но можно изменять длительность тика.

ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ № 55б

Основные виды распределений сбоев и отказов в вычислительных системах реального времени (ВС РВ)

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

Сбои – кратковременная самоустраняющаяся утрата работоспособности элемента. Сбой характерен для аппаратных средств вычислительной системы.

Отказы сервиса предоставляемой системой функциональности есть событие, когда внешнее состояние отклоняется от корректного по информации или времени (рассогласование внешнего состояния). Отказ – это переход от корректного внешнего состояния к некорректному внешнему состоянию, т.е. к невыполнению системой своей функции. Переход от некорректного внешнего состояния к корректному состоянию есть восстановление функциональности системы.

Виды отказов:

внезапный отказ – скачкообразное изменение параметров

Постепенный отказ – постепенное изменение параметров

Независимый отказ – независим от отказов других элементов

Зависимый отказ – зависит от других отказов

Полный (окончательный) отказ – устраняется только ремонтом

Сбой – самоустраняющийся отказ

Перемещающийся отказ – многократный сбой

Методы обнаружения сбоев и отказов:

Совмещаемые с вычислениями 

1. Использование кодов с обнаружением и исправлением ошибок.

2. Сравнение (голосование) в каждом выполняемом такте результатов исполнения одной и той же программы на 2-х и большем числе процессоров и выработка сигнала ошибки в случае несовпадения.

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

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

ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ № 56б

Основные показатели надежности ВС РВ: вероятность безотказной работы, среднее время безотказной работы, вероятность отказа в заданном временном интервале, интенсивность отказов

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

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

Здесь ремонтопригодность подразумевает наличие такого свойства объекта, которое заключается в его приспособленности к поддержанию и восстановлению работоспособного состояния посредством технического обслуживания и ремонта. Значения показателей надёжности обычно определяются использованием двух базовых подходов:

• исследование физических основ надёжности – анализ физико-химических процессов, происходящих в изделии;

• использование математической теории надёжности – исследование статистических вероятностных закономерностей потоков отказов.

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

• отказы программного обеспечения, по большей части, являются результатом дефектов проектирования;

• программное обеспечение не подвержено износу, а его надёжность не является функцией времени;

• изменения во внешней среде не воздействуют на программы, а могут повлиять только на вводимые данные;

• прогноз надёжности программной системы полностью базируется на анализе человеческого фактора (проектировщик, программист, администратор, пользователь, злоумышленник);

• все интерфейсы программного обеспечения не визуальны, а концептуальны, т.е. реализуются и контролируются только программными средствами (иногда говорят, что “электроника есть наука о контактах” и для контроля контактов в визуальных интерфейсах существует множество специальных приборов)

Вероятность безотказной работы - это вероятность того, что в пределах заданной наработки отказ объекта не возникает. 

Интенсивность отказов – плотность условной вероятности возникновения отказа объекта, при условии, что до рассматриваемого момента времени отказ не возник.

Ничего путного найти в инете не могу, спрошу у преподавателей.