русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Взаимоблокировки


Дата добавления: 2013-12-23; просмотров: 712; Нарушение авторских прав


Лекция 3

Для возникновения взаимоблокировки (тупика) в системе должно выполняться 4 условия:

1. Условие взаимного исключения – каждый ресурс в каждый момент времени отдан ровно одному процессу или доступен.

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

3. Условие отсутствия принудительной выгрузки ресурсов

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

Взаимоблокировки моделируются при помощи направленных графов

Пример 1: Типичная простейшая ситуация

P2
P1
R1
R2
R
P
- ресурс - процесс

Пример 2:

A, B, C, D, E, F, G – процесс

R, S, T, V, W, N – ресурс

RàAàS -?

Анализ на наличие циклов

R
A
W
U
T
V
F
D
G
B
E
S
C
?

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

P = {P1, P2, …, Pn} n – число процессов

E = {E1, E2, …, Em} m – число классов ресурсов

А – вектор доступных ресурсов = {A1, A2, …, Am}

Aj≤ Ej j=(1,m)

С – матрица текущего распределения ресурсов = {cij i=(1,n) j=(1,m)}

cij - количество ресурсов j-ого класса, которое занимает процесс Pi.

R – матрица требуемых или запрашиваемых ресурсов = {rij i=(1,n) j=(1,m)}

rij - количество ресурсов j-ого класса, которое запрашивает процесс Pi.

Справедливо, m соотношений по ресурсам:

 

 

 

В исходном состоянии все процессы немаркированы (неотмечаны).

1. Ищется процесс Pi, для которого i-ая строка R меньше вектора А. 2…



2. Если такой процесс найден, он маркируется и i-ая строка C прибавляется к вектору А. 3…

3. Переход на шаг 1

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

 

Взаимоблокировки могут проверяться:

1. Когда запрашивается очередной ресурс (максимально рано обнаружение, но накладки по процессору)

2. Через определенные промежутки времени или при низкой загрузке процессора

 



<== предыдущая лекция | следующая лекция ==>
Синхронизация процессов | Архитектура и управление процессами в ОС семейства Windows


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.006 сек.