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

Національний аерокосмічний університет ім. М.Є.Жуковського "хаі"

Спеціальність 7.080403. Курс 5.

Учбова дисципліна "Проектування ПЗ для спеціалізованих автоматизованих систем"

Екзаменаційний квиток № 2

  1. Апаратні платформи для СРЧ.

  1. Інверсія пріоритетів

Инверсия приоритетов - ситуация, когда более приоритетная задача блокирована менее прио­ритетной, владеющей разделяемым ресурсом, требуемым более приоритетной задаче

Голодание (starvation) - это состояние потока, когда он не получает ресурсов процессора.

Взаимоблокировка, или тупик (deadlock) – группа процессов находится в тупиковой ситуации, если каждый процесс из группы ожидает события, которое может вызвать только другой процесс из этой же группы.

Пример инверсии приоритетов

Прч<Прт<Прп

Прч-приоритет читателя

Прт-приоритет транжира

Прп – приоритет списателя

  • Из этой ситуации следует что будет заблокирован не только поток читателя но и писателя

Сущность взаимоблокировки

2 процесса которые используют 2 устройства но в различной очередности

4 условия возникновения тупиков

  • 1. Условие взаимоисключения (Mutual exclusion). Суть: каждый ресурс выделен в точности одному процессу либо доступен, а процессы требуют монопольного управления к выделенным ресурсам.

  • 2. Условие ожидания ресурсов (Hold and wait). Суть: процессы удерживаю за собой уже выделенные ресурсы и выжидают выделение дополнительных

  • 3. Условие неперераспределяемости (No preemtion). Суть: ресурсы нельзя забрать, процесс может их вернуть самостоятельно.

  • 4. Условие кругового ожидания (Circular wait).  Существует кольцевая цепь процессов, в которой каждый из процессов удерживает 1 или более ресурсов требующихся другим процессам.

Затверджено на засіданні кафедри 603.

Протокол № __1_ від "_28_" ___08___ 2009 р.

 

Зав. кафедрою ___________ /Туркін І.Б/

Екзаменатор __________ /Туркін І.Б./

Національний аерокосмічний університет ім. М.Є.Жуковського "хаі"

Спеціальність 7.080403. Курс 5.

Учбова дисципліна "Проектування ПЗ для спеціалізованих автоматизованих систем"

Екзаменаційний квиток № 3

 

  1. Перемикач задач. Модель, призначення. Контекст процесу, черга задач.

  2. Синхронізація процесів: семафори і м’ютекси

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

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

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

Способ синхронизации данных зависит от делаемых дополнительных предположений. Главной проблемой тут является то, что независимо сделанные изменения могут быть несовместимы друг с другом (так называемый «конфликт правок»), и даже теоретически не существует общего способа разрешения подобных ситуаций.

Тем не менее, есть ряд частных способов, применимых в тех или иных случаях:

  • Наиболее простой способ: предполагают, что изменения вносились лишь в одну из копий — «рабочую» — и другая копия просто перезаписывается её содержимым. Этот способ реализуют большинство приложений синхронизации; в силу необратимости делаемых изменений пользователю даётся выбор, какую копию считать «главной».

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

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

  • Обрабатывать конфликты правок: автоматически (если возможно), иначе — вручную. Этот, наиболее общий способ применяется только если указанные выше упрощённые недопустимы — например, в системах контроля версий. Так, CVS при обнаружении двух независимых изменений объявляет о «конфликте» и либо (в простых случаях) разрешает его автоматически, либо предоставляет пользователю разрешить его вручную. В этих случаях конфликтов стараются просто избегать — например, распределением областей компетенции.

Одним из механизмов синхронизации данных является репликация, которая в частности находит применение для синхронизации содержимого баз данных.

Мью́текс (англ. mutex, от mutual exclusion — «взаимное исключение») — одноместный семафор, служащий в программировании для синхронизации одновременно выполняющихся потоков.

Мьютексы — это один из вариантов семафорных механизмов для организации взаимного исключения. Они реализованы во многих ОС, их основное назначение — организация взаимного исключения для потоков из одного и того же или из разных процессов.

Мьютексы — это простейшие двоичные семафоры, которые могут находиться в одном из двух состояний — отмеченном или неотмеченном (открыт и закрыт соответственно). Когда какой-либо поток, принадлежащий любому процессу, становится владельцем объекта mutex, последний переводится в неотмеченное состояние. Если задача освобождает мьютекс, его состояние становится отмеченным.

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

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

Мьютекс отличается от спинлока наличием очереди ожидающих потоков.

 

Затверджено на засіданні кафедри 603.

Протокол № __1_ від "_28_" ___08___ 2009 р.

 

Зав. кафедрою ___________ /Туркін І.Б/

Екзаменатор __________ /Туркін І.Б./