Операционные системы мультикомпьютеров. Управление распределенной памятью
Операционные системы мультикомпьютеров. Коммуникации процессов
Операционные системы мультипроцессоров. Синхронизация процессов
Операционные системы параллельных вычислительных систем. Синхронизация и коммуникации процессов.
Синхронизация параллельных процессов необходима в двух случаях:
· когда определенное действие одного процесса должно быть выполнено после определенного действия другого процесса;
· когда необходимо обеспечить заданную дисциплину доступа к разделяемым ресурсам (памяти, файлам и пр.).
Основным способом предотвращения проблем, связанных с совместным использованием разделяемых ресурсов, является запрет одновременного доступа к разделяемым ресурсам более чем одному процессу, т.е. взаимное исключение. Обычно проблему исключения формулируют с использованием понятия критическая область или критическая секция. Критической областью называется часть программы, в которой содержится обращение к разделяемому ресурсу. Для решения проблемы взаимного исключения необходимо выполнение следующих условий (см. рис. 1):
· любые два процесса не могут одновременно находиться в одной критической области;
· процесс, находящийся вне данной критической области, не может блокировать доступ других процессов к этой области;
· попеременно данную критическую секцию может использовать любое количество процессов;
· ни одни из процессов не может занимать критическую область бесконечно долго.
На рис. 1 момент времени - момент, когда процесс A получает доступ к некоторой критической области; - момент времени, когда процесс Б пытается получить доступ к этой критической области, но не получает его и блокируется; - момент, когда процесс A завершает использование критической области и покидает ее, а процесс Б - получает доступ к критической области; - момент, когда процесс Б завершает использование критической области и покидает ее; - период нахождения процесса А в критической области; - период блокирования процесса Б; - период нахождения процесса Б в критической области.