Лекции по операционным системам, страница 7

Пример:

Имеются 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