Системное и прикладное программное обеспечение. Абрахин С.И - 26 стр.

UptoLike

Составители: 

26
Прочитать NEXT
Поместить имя
файла RFILE
Нарастить NEXT
Прочитать NEXT
Поместить имя
файла SFILE
Нарастить NEXT
Процесс R
Процесс S
Разделяемый ресурс
NEXT
1. ALPHA
2. BETA
Печать файлов из списка
Принт-сервер
Рис. 7. Схема взаимодействия процессов R и S с разделяемы ресурсом
Предположим, что в некоторый момент процесс R решил распе-
чатать свой файл, для этого он прочитал значение переменной
NEXT, значение которой для определенности предположим
равным 4. Процесс запомнил это значение, но поместить имя
файла не успел, так как его выполнение было прервано (напри-
мер, вследствие исчерпания кванта). Очередной процесс S, же-
лающий распечатать файл, прочитал то же самое значение пе-
ременной NEXT, поместил в четвертую позицию имя своего
файла и нарастил значение переменной на единицу. Когда в
очередной раз управление будет передано процессу R, то он,
продолжая свое выполнение, в полном соответствии со значени-
ем текущей свободной позиции, полученным во время преды-
дущей итерации, запишет имя файла также в позицию 4, поверх
имени файла процесса S.
На рис. 8 представлена диаграмма переключения между
процессами.
Таким образом, процесс S никогда не увидит свой файл
распечатанным. Сложность проблемы синхронизации состоит в
нерегулярности возникающих ситуаций: в предыдущем примере
можно представить и другое развитие событий: были потеряны
файлы нескольких процессов или, напротив, не был потерян ни