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

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

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

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

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

  1. Види процесів. Поняття крайнього терміну і найгіршого часу виконання.

  2. Проблеми синхронізації. Гонки і взаємне блокування.

 

 

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

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

 

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

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

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

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

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

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

 

  1. Алгоритми планування. Планувальник. Пріоритет.

  2. Синхронізація процесів: критичні секції

Критическая секция — часть программы, в которой есть обращение к совместно используемым данным. При нахождении в критической секции двух (или более) процессов, возникает состояние «гонки» («состязания»). Для избежания данной ситуации необходимо выполнение четырех условий:

  1. Два процесса не должны одновременно находиться в критических областях.

  2. В программе не должно быть предположений о скорости или количестве процессоров.

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

  4. Невозможна ситуация, в которой процесс вечно ждет попадания в критическую область.

Критическая секция (англ. critical section) — объект синхронизации потоков, позволяющий предотвратить одновременное выполнение некоторого набора операций (обычно связанных с доступом к данным) несколькими потоками. Критическая секция выполняет те же задачи, что и мьютекс.

Между мьютексом и критической секцией есть терминологические различия, так процедура, аналогичная захвату мьютекса, называется входом в критическую секцию (англ. enter), снятию блокировки мьютекса — выходом из критической секции (англ. leave).

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

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

Критические секции Windows имеют оптимизацию, заключающуюся в использовании атомарно изменяемой переменной наряду с объектом «событие синхронизации» ядра. Захват критической секции означает атомарное увеличение переменной на 1. Переход к ожиданию на событии ядра осуществляется только в случае, если значение переменной до захвата было уже больше 1, то есть происходит реальное «соревнование» двух или более потоков за ресурс.

Таким образом, при отсутствии соревнования захват/освобождение критической секции обходятся без обращений к ядру.

Кроме того, захват уже занятой критической секции до обращения к ядру какое-то небольшое время (англ. spin count) ждёт в цикле опроса переменной, и, если переменная становится равной 0, то захват происходит без обращений к ядру

 

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

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

 

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

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