Принципы взаимного блокирования. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Принципы взаимного блокирования.



«Блокировка», в отличие от «взаимоблокировки», явление совершенно обычное, и означает лишь то, что транзакция получит некий ресурс в свое распоряжение не сразу, а чуть-чуть подождав, пока другая транзакция не снимет с этого ресурса блокировку, наложенную ранее.

 

Тупик (дедлок, клинч) – состояние, в котором процесс ожидает события, которое никогда не произойдет.

Условия возникновения взаимоблокировок.

Для того чтобы возник тупик, необходимо одновременное выполнение 4 условий:

· взаимного исключения, при котором процессы осуществляют монопольный доступ к ресурсам;

· ожидания, при котором процесс, запросивший ресурс, ждет до тех пор, пока запрос не будет удовлетворен, при этом удерживая полученные ранее ресурсы;

· отсутствия перераспределения, при котором ресурсы нельзя отобрать у процесса, если они ему уже выделены;

· кругового ожидания, при котором существует замкнутая цепь процессов, каждый из которых ждет ресурс, удерживаемый его предшественником в этой цепи.

 

Тупиковые ситуации надо отличать от простых очередей, хотя и те и другие возникают при совместном использовании ресурсов и внешне выглядят похоже: процесс приостанавливается и ждет освобождения ресурса. Однако очередь - это нормальное явление, неотъемлемый признак высокого коэффициента использования ресурсов при случайном поступлении запросов. Она возникает тогда, когда ресурс недоступен в данный момент, но через некоторое время он освобождается, и процесс продолжает свое выполнение. Тупик же, что видно из его названия, является в некотором роде неразрешимой ситуацией. Взаимно блокировать друг друга могут более двух процессов.

Проблема тупиков включает в себя следующие задачи:

· Предотвращение тупиков

Может решаться двумя способами:

1.исключение возможности возникновения тупика – тупики могут быть предотвращены на стадии написания программ, то есть программы должны быть написаны таким образом, чтобы тупик не мог возникнуть ни при каком соотношении взаимных скоростей процессов. Так, если процесс А и процесс В запрашивают ресурсы в одинаковой последовательности, то тупик в принципе невозможен.;

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

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

· Распознавание тупиков

Система должна иметь способы обнаружения тупика:

1)очень долгое время ожидание дополнительных ресурсов

2)наличие кругового ожидания

3)круговое ожидание можно обнаружить с помощью графа распределения ресурсов

4)обладание средствами редукции графов распределения ресурсов

· Восстановление системы после тупиков

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

Методы борьбы с тупиками: два вида ресурсов

· системные ресурсы (повторно используемые) SR

· потребляемые ресурсы CR.

Управление памятью. Требования к управлению памятью.

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

Все методы управления памятью могут быть разделены на два класса: методы, которые используют перемещение процессов между оперативной памятью и диском, и методы, которые не делают этого (рисунок 2.8). Начнем с последнего, более простого класса методов.

Рис. 2.8. Классификация методов распределения памяти



Поделиться:


Последнее изменение этой страницы: 2017-02-06; просмотров: 259; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.115.195 (0.005 с.)