Разделы презентаций


Алгоритмы синхронизации

Содержание

Лекция 5. Алгоритмы синхронизации

Слайды и текст этой презентации

Слайд 1Основы операционных систем

Основы  операционных систем

Слайд 2Лекция 5. Алгоритмы синхронизации

Лекция 5.  Алгоритмы синхронизации

Слайд 3Активности и атомарные операции
Отрезать ломтик хлеба
Отрезать ломтик колбасы
Намазать хлеб

маслом
Положить колбасу на хлеб
Активность - последовательное выполнение ряда действий, направленных

на достижение определенной цели

Активность : приготовление бутерброда

Атомарные или неделимые операции

Активности и атомарные операции Отрезать ломтик хлебаОтрезать ломтик колбасыНамазать хлеб масломПоложить колбасу на хлебАктивность - последовательное выполнение

Слайд 4Interleaving
Активность P: a b c
Активность Q: d e f
Последовательное выполнение

PQ: a b c d e f
Псевдопараллельное выполнение (режим разделения времени)

:

?

a b c d e f

a b d c e f

a b d e c f

a b d e f c

. . .

d e f a b c

InterleavingАктивность P: 	a b cАктивность Q: 	d e fПоследовательное выполнение PQ:	 a b c d e fПсевдопараллельное

Слайд 5Детерминированные и недетерминированные наборы активностей
Недетерминированный набор – при одинаковых

начальных данных возможны разные результаты
Детерминированный набор – при одинаковых

начальных данных всегда один результат

P:

x=2

y=x-1

Q:

x=3

y=x+1

(x, y):

(2, )

(2, 1)

(3, 1)

(3, 4)

(2, )

(3, )

(3, 4)

(3, 2)

(2, 3)

(2, 1)

Детерминированные и недетерминированные наборы  активностей Недетерминированный набор – при одинаковых начальных данных возможны разные результаты Детерминированный

Слайд 6Условия Бернстайна (Bernstain)
P:
1) x=u+v
2) y=x*w
Входные переменные R1 = {u,

v}
R2 = {x, w}
Выходные переменные W1 = {x}
W2 = {y}
R(P)={u,

v, x, w}

W(P)={x, y}

Если:

W(P) ∩ W(Q) = {ø}

2) W(P) ∩ R(Q) = {ø}

3) R(P) ∩ W(Q) = {ø}

то набор активностей {P, Q} является детерминированным

Условия Бернстайна (Bernstain) P:1) x=u+v2) y=x*wВходные переменные  R1 = {u, v}R2 = {x, w}Выходные переменные

Слайд 7Состояние гонки (race condition) и взаимоисключение (mutual exclusion)
P:
x=2
y=x-1
Q:
x=3
z=x+1
Набор недетерминирован

– состязание процессов за использование переменной x
В недетерминированных наборах всегда

встречается race condition (состояние гонки, состояние состязания)

Избежать недетерминированного поведения при неважности очередности доступа можно с помощью взаимоисключения (mutual exclusion)

Состояние гонки (race condition) и взаимоисключение (mutual exclusion) P:x=2y=x-1Q:x=3z=x+1Набор недетерминирован – состязание процессов за использование переменной xВ

Слайд 8Критическая секция
Приходит в комнату
Приходит в комнату
Приходит в комнату
Уходит за

пивом
Уходит за пивом
Уходит за пивом
Покупает 6 бут. пива
Покупает 6 бут.

пива

Покупает 6 бут. пива

Приносит пиво

Приносит пиво

Приносит пиво

Достает 6 бут. пива

Приходит в комнату

Приходит в комнату

Критическая секция Приходит в комнатуПриходит в комнатуПриходит в комнатуУходит за пивомУходит за пивомУходит за пивомПокупает 6 бут.

Слайд 9Структура процесса, участвующего во взимодействии
while (some condition) {
entry section
critical

section
exit section
remainder section
}

Структура процесса, участвующего во взимодействии while (some condition) {entry sectioncritical sectionexit sectionremainder section}

Слайд 10Программные алгоритмы организации взаимодействия
Требования, предъявляемые к алгоритмам
Программный алгоритм должен быть

программным
Нет предположений об относительных скоростях выполнения и числе процессоров
Выполняется условие

взаимоисключения (mutual exclusion) для критических участков
Выполняется условие прогресса (progress)
Выполняется условие ограниченного ожидания (bound waiting)
Программные алгоритмы организации взаимодействия Требования, предъявляемые к алгоритмамПрограммный алгоритм должен быть программнымНет предположений об относительных скоростях выполнения

Слайд 11Программные алгоритмы организации взаимодействия
Запрет прерываний
while (some condition) {
запретить все прерывания
critical

section
разрешить все прерывания
remainder section
}
Обычно используется внутри ОС

Программные алгоритмы организации взаимодействия Запрет прерыванийwhile (some condition) {запретить все прерыванияcritical sectionразрешить все прерыванияremainder section}Обычно используется внутри

Слайд 12Программные алгоритмы организации взаимодействия
Переменная-замок
while (some condition) {
while (lock);
critical section
lock =

0;
remainder section
}
Нарушается условие взаимоисключения
Shared int lock = 0;
lock = 1;
while

(some condition) {

while (lock);

critical section

lock = 0;

remainder section

}

lock = 1;

|

Программные алгоритмы организации взаимодействия Переменная-замокwhile (some condition) {while (lock);critical sectionlock = 0;remainder section}Нарушается условие взаимоисключенияShared int lock

Слайд 13Программные алгоритмы организации взаимодействия
Строгое чередование
while (some condition) {
while (turn !=

i);
critical section
turn = 1-i;
remainder section
}
Нарушается условие прогресса
Shared int turn =

0;

while (some condition) {

while (turn != 1);

critical section

turn = 0;

remainder section

}

while (turn != 0);

turn = 1;

Pi

P1

P0

Shared int turn = 1;

Условие взаимоисключения выполняется

Программные алгоритмы организации взаимодействия Строгое чередованиеwhile (some condition) {while (turn != i);critical sectionturn = 1-i;remainder section}Нарушается условие

Слайд 14Программные алгоритмы организации взаимодействия
Флаги готовности
while (some condition) {
while (ready[1-i]);
critical section
ready[i]

= 0;
remainder section
}
1-я часть условия прогресса выполняется
Shared int ready[2] =

{0, 0};

while (ready [1]);

ready[0] = 0;

Pi

P1

P0

Условие взаимоисключения выполняется

ready[i] = 1;

2-я часть условия прогресса нарушается

while (some condition) {

critical section

remainder section

}

while (ready [0]);

ready[1] = 0;

ready[1] = 1;

ready[0] = 1;

Shared int ready[2] = {1, 0};

Shared int ready[2] = {1, 1};

Программные алгоритмы организации взаимодействия Флаги готовностиwhile (some condition) {while (ready[1-i]);critical sectionready[i] = 0;remainder section}1-я часть условия прогресса

Слайд 15Программные алгоритмы организации взаимодействия
Алгоритм Петерсона
while (some condition) {
while (ready[1-i] &&

turn == 1-i);
critical section
ready[i] = 0;
remainder section
}
Shared int ready[2] =

{0, 0};

while (ready [1] && turn == 1);

ready[0] = 0;

Pi

P1

P0

Все 5 условий выполняются

ready[i] = 1;

while (some condition) {

critical section

remainder section

}

while (ready [0] && turn == 0);

ready[1] = 0;

ready[1] = 1;

ready[0] = 1;

Shared int turn;

turn = 0;

turn = 1 - i;

turn = 1;

Программные алгоритмы организации взаимодействия Алгоритм Петерсонаwhile (some condition) {while (ready[1-i] && turn == 1-i);critical sectionready[i] = 0;remainder

Слайд 16Аппаратная поддержка взаимоисключений
Команда Test-And-Set
int Test-And-Set (int *a) {
int tmp

= *a;
*a = 1;
return tmp;
}
Нарушается условие ограниченного ожидания
Shared int lock

= 0;

while (some condition) {

while (Test-And-Set (&lock));

critical section

lock = 0;

remainder section

}

Аппаратная поддержка взаимоисключений Команда Test-And-Setint Test-And-Set (int *a) {int tmp = *a;*a = 1;return tmp;}Нарушается условие ограниченного

Слайд 17Аппаратная поддержка взаимоисключений
Команда Swap
void Swap(int *a, int *b) {
int

tmp = *a;
*a = *b;
*b = tmp;
}
Нарушается условие ограниченного ожидания
Shared

int lock = 0;

while (some condition) {

do Swap (&lock, &key);

critical section

lock = 0;

remainder section

}

int key = 0;

key = 1;

while (key);

Аппаратная поддержка взаимоисключений Команда Swapvoid Swap(int *a, int *b) {int tmp = *a;*a = *b;*b = tmp;}Нарушается

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика