Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OC - Лекция 5 / ОПЕРАЦИОННЫЕ СИСТЕМЫ_5.ppt
Скачиваний:
19
Добавлен:
21.05.2015
Размер:
207.36 Кб
Скачать

ОПЕРАЦИОННЫЕ СИСТЕМЫ

Вощинская Гильда

 

 

 

Эдгаровна

1

Синхронизация на верхнем уровне

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

Рассмотрим три способа:

почтовые ящики

порты

мониторы

2

Почтовые ящики

Почтовый ящик – это информационная структура, для которой определяются правила и методы работы с ней.

Описание почтового

Головной элемент

 

ящика

 

сообщения

гнёзд

 

 

а

3

Односторонняя связь

Если процесс P1 хочет общаться с процессом P2, то он

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

Для того, чтобы отправить сообщение P1 обращается к системе, передавая имя почтового ящика и само сообщение. Процесс P2 обязательно получит сообщение, если обратится за ним к

системе.

P1 может получать сообщения до тех пор, пока есть свободные гнёзда.

P2 может получать сообщения, пока есть занятые гнёзда.

4

Двусторонняя связь

Чтобы P1 мог получать подтверждение отправленных сообщений, нужно разрешить передавать сообщения в обоих направлениях. А чтобы для ответа всегда было место, можно потребовать, чтобы ответы помещались в те же самые гнёзда, что и вызвавшие их сообщения.

5

Многовходовые почтовые ящики

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

 

 

 

Описание почтового ящика

 

 

процесс1

 

вход 1

Сообщения пр1

 

 

 

 

 

процесс2

 

 

вход 2

Сообщения пр2

 

процесс

 

 

 

 

 

процесс3

 

 

вход 3

Сообщения пр3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

Порты

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

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

7

Монитор Хоара

Чарльз Энтони Ричард Хоар (Hoare C.A.R. – Великобритания) –выдающийся учёный, лауреат премии Тьюринга, известный системный программист и теоретик информатики.

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

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

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

8

 

Монитор двоичный семафор

monitor Bin_Semaph;

// Взаимное исключение

var

// критических участков при

integer S;

// помощи монитора

 

condition Semaphore_Positive;

parbegin

 

 

procedure P;

P1:while true do

begin

 

 

begin

 

 

...........

 

 

if S<1 then

Bin_Semaph.P;

 

 

Semaphore_Positive.Wait;

участок 1

//критический

 

S:=S-1;

Bin_Semaph.V;

end;

 

procedure V;

end;

..............

 

begin

 

 

P2:while true do

 

S:=S+1;

 

begin

 

 

 

if S=1 then

 

 

 

...........

 

 

Semaphore_Positive.Signal;

 

Bin_Semaph.P;

end;

участок 2

//критический

begin

Bin_Semaph.V;

S:=1;

 

 

 

 

..............

 

end.

end;

9

 

 

 

parend

 

 

Монитор распределитель ресурсов

//Предположим, что нескольким

// вернуть ресурс

// процессам необходим доступ

procedure Return;

// к

определённому ресурсу

begin

monitor Distrib_Res;

Res_taken:=false;

var

Res_free.Signal;

Res_taken:boolean;// ресурс занят

end;

Res_free:condition;// ресурс свободен

begin

 

 

// захватить ресурс

Res_taken:=false;

procedure Take;

end.

begin

 

if Res_taken then Res_free.Wait;

 

 

Res_taken:=true;

 

end;

 

10

Соседние файлы в папке OC - Лекция 5