Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Разрешение конфликтов при распределении ресурсов



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

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

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

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

Для использования ресурса необходимо:

1. Запрос ресурса – то есть приложение или модуль ОС формирует запрос на выделение ему ресурса или части ресурса, который обслуживается ОС (создается системная информация – таблица запросов);

2. Использование ресурса – то есть обмен данными с ресурсом;

3. Освобождение ресурса – из системной информации удаляются данные о ресурсе, ресурс или его часть становится свободной и может быть выделена по другому запросу;

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

Запрос – ожидание – запрос – ожидание - …..

То есть процесс находиться в состоянии ожидания и не выполняет никакой работы

Если в системе один процесс, то конфликтов при распределении ресурсов не возникает. Если в системе несколько процессов, то может возникнуть конфликт – тупиковая ситуация.

Рассмотрим возможные случаи распределения ресурсов между процессами.

Пусть в системе выполняется два процесса – процесс А и процесс В, каждый процесс запрашивает ресурс 1 и 2.

Вариант 1

Процесс А Ресурс1       Ресурс 2  
             
Процесс В     Ресурс 2     Ресурс 1
             

Независимое использование ресурсов двумя процессами, конфликтов не возникает

Вариант 2

Процесс А Ресурс1       Ресурс 2  
             
Процесс В     Ресурс 1     Ресурс 2
    Ожидание ресурса 1 пр. В     Ожидание ресурса 2 пр. В  

К ресурсам 1 и 2 образовалась очередь, конфликтов нет

Вариант 3

Процесс А Ресурс1   Ожидание ресурса 2  
           
Процесс В     Ресурс 2 Ожидание ресурса 1
           

Ресурс 1 занят процессом А и требуется процессу В, ресурс 2 занят процессом В и требуется ресурсу А. Возникла тупиковая ситуация (взаимоблокировка) – тупик





Дата публикования: 2014-12-08; Прочитано: 647 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...