3.3. Распределение ресурсов.pptx
- Количество слайдов: 19
Тема 3. 3. Распределение ресурсов 1. Взаимоблокировки. 2. Обнаружение и устранение взаимоблокировок. 3. Избежание взаимоблокировок. 4. Предотвращение взаимоблокировок.
1. Взаимоблокировки
В компьютерных системах существует большое количество ресурсов, каждый из которых в конкретный момент времени может использоваться только одним процессом. Поэтому все операционные системы обладают способностью предоставлять процессору эксклюзивный доступ (по крайней мере, временный) к определенным ресурсам.
Взаимоблокировка — это тупиковая ситуация, характеризующаяся тем, что группа процессов ожидает события, которое может вызвать только другой процесс из этой же группы.
Ресурс объекты предоставления доступа. Ресурсы бывают выгружаемые и невыгружаемые, аппаратные и программные. Выгружаемый ресурс этот ресурс безболезненно можно забрать у процесса (например: память). Невыгружаемый ресурс - этот ресурс нельзя забрать у процесса без потери данных (например: принтер). Проблема взаимоблокировок процессов возникает при борьбе за невыгружаемый ресурсы.
Необходимые условия возникновения взаимоблокировки (условия Коффмана) 1. Условие взаимного исключения. Каждый ресурс в данный момент или отдан ровно одному процессу, или доступен. 2. Условие удержания и ожидания. Процессы, в данный момент удерживаю щие полученные ранее ресурсы, могут запрашивать новые ресурсы. 3. Условие отсутствия принудительной выгрузки ресурса. У процесса нельзя принудительным образом забрать ранее полученные ресурсы. Процесс, вла деющий ими, должен сам освободить ресурсы. 4. Условие циклического ожидания. Должна существовать круговая последовательность из двух и более процессов, каждый из которых ждет доступа к ресурсу, удерживаемому следующим членом последовательности.
Стратегии для борьбы с взаимоблокировками v Игнорирование. Не предполагается что либо делать для предотвращения взаимоблокировки или её разрушения, если она возникла (страусиный алгоритм) v Обнаружение и восстановление. Если взаимоблокировка произошла, обнаружить её и предпринять какие либо действия. v Динамическое избежание. Распределять ресурсы системы так, чтобы избежать взаимоблокировок. Всякий раз решение о распределении принимается исходя из текущего состояния системы. v Предотвращение. Предполагает структурное опровержение одного из четырёх правил Коффмана.
2. Обнаружение и устранение взаимоблокировок
Обнаружение взаимоблокировок и восстановление работоспособности При ее использовании система не пытается предотвращать взаимоблокировки. Она позволяет им произойти, пытается обнаружить момент их возникновения, а затем предпринимает некоторые действия по восстановлению работоспособности.
Способы обнаружения и методы восстановления взаимоблокировок 1. Обнаружение взаимоблокировки при использовании одного ресурса каждого типа 2. Обнаружение взаимоблокировки при использовании нескольких ресурсов каждого типа 3. Выход из взаимоблокировки Ø Восстановление путем отката Ø Восстановление путем уничтожения процессов
3. Избежание взаимоблокировок
Алгоритмы избежания взаимоблокировок v. Траектории ресурса v. Безопасное и небезопасное состояние v. Алгоритм банкира для одного ресурса v. Алгоритм банкира для нескольких типов ресурсов
Алгоритм банкира ØПеред выделением ресурса проверяем, является ли состояние, в которое мы перейдем после выделения, безопасным. ØЕсли новое состояние безопасно выделяем ресурс. ØЕсли новое состояние небезопасно ресурс не выделяем, блокируем процесс, выполнивший запрос.
4. Предотвращение взаимоблокировки
Алгоритмы предотвращения взаимоблокировки ØАтака условия взаимного исключения ØАтака условия удержания и ожидания ØАтака условия отсутствия принудительной выгрузки ресурса ØАтака условия циклического ожидания
Атака условия взаимного исключения Избегайте выделения ресурса, когда это не является абсолютно необходимы, и пытайтесь обеспечить ситуацию, в которой фактически претендовать на ресурс может минимальное количество процессов. Демон – это скрытая от пользователя служебная программа, работающая в фоновом режиме.
Атака условия удержания и ожидания Заключается в наложении следующего требования на процесс, запрашивающий ресурс: процесс сначала должен временно освободить все используемые им в данный момент ресурсы. Затем этот процесс пытается сразу получить все необходимое.
Атака условия отсутствия принудительной выгрузки ресурса Если процесс получил принтер и в данный момент печатает выходные данные, насильственное изъятие принтера по причине недоступности требуемого плоттера в лучшем случае сложно, а в худшем невозможно.
Атака условия циклического ожидания Циклическое ожидание можно устранить несколькими способами: 1. просто следовать правилу, гласящему, что процессу дано право только на один ресурс в конкретный момент времени. Если нужен второй ресурс, процесс обязан освободить первый; 2. общая нумерация всех ресурсов, тогда действует следующее правило: процессы могут запрашивать ресурс, когда хотят этого, но все запросы должны быть сделаны в соответствии с нумерацией ресурсов.
3.3. Распределение ресурсов.pptx