![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Виды организации взаимосвязи процессовСтр 1 из 6Следующая ⇒
МЕТОДЫ ВЗАИМОДЕЙСТВИЯ ПРОЦЕССОВ
Независимые и взаимодействующие процессы
С точки зрения взаимосвязи, процессы подразделяются на независимые и взаимодействующие. Независимый процесс – процесс, никак не связанный с другими процессами, который не может влиять на исполнение других процессов или испытывать их влияние. Взаимодействующий (совместный) процесс – процесс, который может влиять на исполнение других процессов или испытывать их влияние. Преимущества взаимодействующих процессов очевидны: · Совместное использование данных; процессы могут работать с общими данными, при условии их синхронизации (рассматриваемой в следующих лекциях); · Ускорение вычислений; · Модульность: организация взаимодействующих процессов – это метод параллельного решения задачи, декомпозируемой на относительно независимые части, части, каждую из которых решает один из взаимодействующих процессов · Удобство. Виды организации взаимосвязи процессов
С точки зрения видов взаимосвязи родительского и дочернего процессов, процессы подразделяются на независимые, подчиненные и сопроцессы. Подчиненный процесс – процесс, зависящий от процесса-родителя. Подчиненный процесс уничтожается при уничтожении родительского процесса, как в системах UNIX и ОС " Эльбрус". Процесс-родитель перед своим завершением должен ожидать завершения всех своих подчиненных процессов. Независимый процесс – дочерний процесс, выполняемый независимо от процесса-родителя. Типичные примеры: процессы-демоны в UNIX, запускаемые начальным процессом init. Например, cron – процесс- демон, организующий вызов заданных в специальной таблице crontab действий с заданной периодичностью (автоматическое резервное копирование всех файловых систем на ленту в полночь); smbd – процесс- демон, управляющий серверным программным обеспечением SAMBA для сетевого доступа с Windows-машин к файлам UNIX -машины. Сопроцесс (coprocess, coroutine) – процесс, равноправно взаимодействующий с другими такими же процессами; хранит свое текущее локальное управление (program counter); взаимодействует сдругим сопроцессом Q с помощью операций resume (Q). Взаимодействие нескольких сопроцессов друг с другом операторами resume полностью равноправно. Данный механизм взаимодействия принципиально отличается от вызова процедуры. Операция detach (открепить) переводит сопроцесс в пассивное состояние, в котором могут быть доступны только его глобальные данные, но его программа уже завершена и не подлежит повторному запуску. Сопрограммное взаимодействие реализовано в языке СИМУЛА-67, который, как известно, стал родоначальником и объектно-ориентированного подхода. Классификация процессов, близкая к приведенной в данном разделе, реализована в ОС " Эльбрус".
|