Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на билеты ОС.doc
Скачиваний:
236
Добавлен:
01.05.2014
Размер:
635.9 Кб
Скачать

32. Взаимодействие и синхронизация процессов. Проблемы "критической секции", "поставщик-потребитель", "читатели-писатели".

Естественный параллелизм.

Есть несколько физич процессоров, на которых могут выполняться несколько процессов.

START

READ

WATT

END

Проц. вв/выв

Read – произойдет прерывание. Будет управление передано процессору вв/выв

может выполняться на ЦП, до тех пор пока он может выполняться без данных введенных и перейдет в процесс ожидания

WATT – синхронизация вв/выв и основной программы.

Логический параллелизм.

Если смесь задач, выполн паралл. Задачи предоставляется квант времени.

Если смесь задач, кот поочередно становятся активными.

Квант времени может принудительно выставляться, либо определяется самим процессом. (∆t=∞ -пакетный режим).

Проблема "критической секции"

M=0

LOAD R,M

INC R

LOAD M,R

LOAD R,M

INC R

LOAD M,R

P1 P2

CS CS

C переменной M может работать 2 процесса.

M – число запущенных процессов.

Нельзя, чтобы код CS прерывался, иначе он не выдаст нужное значение.

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

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

Внутри каждого процесса – CS работает с крит. ресурсом.

Процессы должны синхронизироваться на основе взаимного исключения.

Условия взаимного исключения.

  1. Если процесс наход в крит секции, то ни какой процесс не может войти в сою крит секцию.

  2. Процесс не должен бесконечно находится в своей критич. секции.

  3. Процесс не может ждать бесконечно долго входа в критич секцию.

Проблема "поставщик-потребитель"

PI0

Pc

F- очередь полных буферов

E – пустых буферов

В начальный момент E=n F=0

PI0 : M: if E=0 goto M - занятое активное ожидание

E--

<ввести запись>

F++

Goto M

P­­­c : M: if E=0 goto M

F--

<взять запись>

E++

Goto M

E,F - критические ресурсы

Проблема "читатели-писатели"

Есть некоторый множество процессов.

Писатели –пишут инф-ю в некоторый файл

Читатели – читают инф-ю из файла

Если писатель пишет файл, то никто к нему доступ не имеет.

Читатели совместно могут пользоваться файлом.

w=false – кто-то пишет файл

w – возможность доступа к файлу.

R – кол-во читателей

wRi : L: if не w or не (R=0) then goto L;

w=false;

<Запись в файл>

w=true;

end;

Ri: L: if not w then goto L;

R++

<читать >

R--

End

33. Механизмы синхронизации: активное ожидание, семафоры.

Активное ожидание.

Команды процессора не прерываются.

IBM 370: TEST AND SET (проверить и установить)

Записывает FFh

Выдает результат – 0 – предыдущее значение байта 0

1 - перд. значение байта <0

Семафоры.

S – семафор ресурса, открытие или закрытие доступа к этому ресурсу.

Операции над семафорами.

P(S) – Если S > 0 – S—

S=0, то процесс который выдал эту функцию переходит в состояние ожидания

V(S) – S++

Свойства P(S) и V(S)

  1. Непрерываемые

  2. Атрибутивные

  3. V – переводит ожидание в состояние готовности

Пример. Взаимное исключение процессов.

S=1; // семафор открыт, доступ возможен

P1: L1: P(S); CS1; V(S); ….

………………..

Pi: Li: P(S); CSi; V(S); ….

…………………..

Pn: Ln: P(S); CSn; V(S); ….

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