Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы / Задания / Operatsionnye_sistemy_lr_zaochn.pptx
Скачиваний:
14
Добавлен:
15.02.2021
Размер:
4.51 Mб
Скачать

Используемые средства синхронизации

Критическая секция

Мьютекс

Событие

Критическая секция

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

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

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

Мьютексы

Мьютексы (от MUTual Exclusion -взаимоисключения) – объекты ядра, позволяют координировать взаимное исключение доступа к разделяемому ресурсу.

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

сСо

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

чт бин ыч ыме

с

тбк ир имо

с

ябо мр

о

с

о

м

Пример. Критическая секция

Выбор задачи: эмуляция непрерывного сохранения данных разными потоками в общей базе данных

Результат

Пример. Мьютекс

Запуск приложения в единственном экземпляре

Пример. События

Последовательный запуск и ожидание выполнения двух поток

Результат