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

Проектирование взаимодействующих вычислительных процессов.

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

Различные ОС имеют разные средства синхронизации.

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

Параллельными называются процессы, которые одновременно находятся в каком-либо активном состоянии.

Два параллельных процесса могут быть независимыми.

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

Независимые процессы не влияют на работу друг друга (с точки зрения логики исполнения), они могут только задерживать работу друг друга.

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

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

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

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

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

Пример:

Имеются 2 процесса Р1 и Р2 с общей переменной х. Пусть эти 2 процесса независимы друг от друга, изменяют это значение при этом используется некоторая область операционной памяти.

№ оператора

Р1

№ оператора

Р2

1

R1:=x

4

R2:=x

2

R1: R1+1

5

R2: R2+1

3

X:= R1

6

X:= R2

Оба процесса могут исполняться с разной скоростью, поэтому время исполнения 1-6 не предсказуемо. Рассмотрим 2 случая:

Первый случай – когда используются операторы 1,2,3, а затем 4,5,6.

P1 R1:=x R1:=R1+1 x:=R1

P2 R2:=x R2:=R2+1 x:=R2

X

2 случай – когда в исполнение 1,2,3 вмешиваются 4,5,6

P1 R1:=x R1:=R1+1 x:=R1

P2 R2: =x R2: =R2+1 x: =R2

X

Лекция 7. (9.10.02)

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

Таким образом, говоря о синхронизации процессов, имеется в виду синхронизация критических секций.

К синхронизации критических секций выдвигаются следующие требования:

  1. В любой момент времени только один процесс может находиться в своей критической секции.

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

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

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

ПР1 ПР2

Простейшим способом синхронизации может быть использование общего типа переменной, служащей указателем свободен критический ресурс или нет. Каждый раз, когда какой-то процесс первым занимает критический ресурс, он устанавливает указатель в состояние «занято». В результате никакой другой процесс не может обратиться к этому ресурсу.

Когда процесс, захвативший ресурс выходит из своей критической секции он устанавливает указатель в состояние «свободен», разрешая процессам использовать ресурс.

+ Простота

  • изменение указателя должно выполнятся самим процессом.

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

Более широко используется механизм светофоров.

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