Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпора по ОСРВ.docx
Скачиваний:
3
Добавлен:
18.04.2019
Размер:
67.02 Кб
Скачать

19. Семафоры.

Семафор – переменная, организованная ОС, которая хранит количество пользователей задач или процессов, которые имеют одновременный доступ к некот. ресурсу. Фактически, счетчик пользователей. С каждым семафором связана очередь ожидания, образованная процессами или задачами, ожидающими, когда семафор примет некот. значение. В зависимости от max значения счетчика семафоры бывают: 1.двоичные (0 или 1) исп-ся для работы с критич. разделяемым ресурсом. 2.счетные (0…n) исп-ся для работы некритичными разделяемыми ресурсами. n - max кол-во пользователей, получ. одноврем. Доступ к ресурсу. Каждый процесс получивший доступ к ресурсу, уменьшает значение счетчика на 1. Когда счетчик =0, то доступ к ресурсу закрыт, при освобождении ресурса процессом счетчик +1. Процесс, стоящий в очереди, получает доступ

20. События (сигналы).

Оповещение о наступлении к-л события. Система прерываний предст. собой пример реализации сигналов. С сигналами связана логическая переменная (0 или 1) и означающая наступление к-л события.

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

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

23.Собъекты синхронизации стандарта Posix, Mutex, Condvar

Стандарт Posix вводит следующие объекты синхронизации, которые должны присутствовать в ОСРВ:

1.Семафоры(двоичные).

2.Очередь сообщений совпадают по принципу построения с почтовыми ящиками.

3.Разделяемая память.

Если ОСРВ поддерживают разделение процессов на задачи, то согласно стандарту в системе должны присутствовать следующие объекты синхронизации:

1.Объекты синхронизации Mutex(Mutual Exclusion)- данные объекты обеспечивают взаимное исключение работающих задач.

2.Объекты Condvar(Conditional Varuable условные перемещения)

Обеспечивают взаимное исключение задач при принятии условной переменной(Condvar) определенного значения.

Mutex представляют собой развитие двоичных семафоров с т. зрения обеспечения безопасности работы программы.

Семафор не содержит инфы от задачи, которая заблокировала его(работала с ним последней)

Простая организация

Взаимно исключ.---- семафор

/ /

1 0

Простая организация –отсутствие инфа о задаче, которая произвела блокировку последней.

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

M u t e x

/ /

Двоичный семафор + идентефикатор задачи последней захватившей ресурс

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

Обеспечивает взаимное исключение при наступлении каких-либо условий.

Реализация объектов типа Condvar организована на основе объектов типа Mutex и сигналах, оповещающих о выполнении условий.

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