Кооперация процессов Процессы Бленда Николай Андреевич 2009
Взаимодействующие процессы Причины кооперации 1) повышение скорости работы Когда один процесс ожидает наступления некоторого события (например, окончания операции ввода-вывода), другие в это время могут заниматься полезной работой, направленной на решение общей задачи. I/O
Взаимодействующие процессы Причины кооперации 1) повышение скорости работы В многопроцессорных вычислительных системах программа разделяется на отдельные кусочки, каждый из которых будет исполняться на своем процессоре. ЦП1ЦП2ЦП3ЦП4
Взаимодействующие процессы Причины кооперации 2) совместное использование данных. Различные процессы могут, к примеру, работать с одной и той же динамической базой данных или с разделяемым файлом, совместно изменяя их содержимое. Блокировка БД Запрос к БД Освобождение БД Блокировка БДЗапрос к БД
Взаимодействующие процессы Причины кооперации модульная конструкция какой-либо системы Процесс печати на принтер 1 Процесс печати на принтер 2 Процессы подготовки к печати MS WORD
Взаимодействующие процессы Причины кооперации модульная конструкция какой-либо системы примером может служить микроядерный способ построения операционной системы, когда ее различные части представляют собой отдельные процессы, общающиеся путем передачи сообщений через микроядро. Ядро ОС
Взаимодействующие процессы Причины кооперации удобства работы пользователя Печать текста Проверка орфографии Печать текста Проверка орфографии
Взаимодействующие процессы Процессы не могут взаимодействовать не общаясь Общение процессов обычно приводит к изменению их поведения в зависимости от полученной информации Процессы, которые влияют на поведение друг друга путем обмена информацией, принято называть кооперативными или взаимодействующими
Сигнальные. Передается минимальное количество информации один бит, да или нет. Используются, как правило, для извещения процесса о наступлении какого-либо события. Средства обмена информацией Ожидание сигнала
ОС Средства обмена информацией Канальные. Канал ТРУБА PIPE ПРОЦЕСС1ПРОЦЕСС1 ПРОЦЕСС2ПРОЦЕСС2
Средства обмена информацией Разделяемая память. Память процесса 1 Память процесса 2 ОС создает разделяемую память Использование разделяемой памяти для передачи/получения информации осуществляется с помощью средств обычных языков программирования
Взаимодействующие процессы Конвейеры Системный вызов pipe позволяет двум процессам обмениваться неструктурированным потоком байт Обмениваться данными могут только родственные процессы Системные вызовы pipe используются оболочкой (командным процессором) операционной системы для организации конвейера команд
Взаимодействующие процессы Именованные конвейеры Имеют имя, которое является записью в каталоге файловой системы ОС. Именованный конвейер является специальным файлом типа FIFO и не имеет области данных на диске. Именованные конвейеры используют файловую систему только для хранения имени конвейера в каталоге, а данные между процессами передаются через буфер в оперативной памяти, как и в случае программного конвейера.
Взаимодействующие процессы Очереди сообщений позволяют процессам и потокам обмениваться структурированными сообщениями. каждая очередь имеет в пределах ОС уникальное имя.