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

 

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

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

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

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

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

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 занят процессом В и требуется ресурсу А. Возникла тупиковая ситуация (взаимоблокировка) – тупик








Дата добавления: 2015-08-11; просмотров: 1255;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.