Взаимодействие процессов, Параллельные процессы - Независимые и взаимодействующие вычислительные процессы
Основной особенностью мультипрограммных вычислительных систем является то, что в их среде параллельно развивается несколько (последовательных) вычислительных процессов.
С точки зрения внешнего наблюдателя эти процессы выполняются одновременно, поэтому будем считать их работающими параллельно независимо от того, реально они используют в некоторый момент времени различные процессоры, каналы, устройства или разделяют одни и те же ресурсы во времени.
Любая мультипрограммная ОС вместе с параллельно выполняющимися в ней задачами пользователей может быть логически описана как совокупность последовательных процессов. Эти процессы, с одной стороны, состязаются за использование ресурсов, переходя из одного состояния в другое, а с другой - действуют почти независимо друг от друга, но образуют систему вследствие установления всевозможных связей между ними путем пересылки сообщений и синхронизирующих сигналов.
Параллельные процессы
Два параллельных процесса могут быть независимыми или взаимодействующими.
Независимыми являются процессы, множества переменных которых не пересекаются. Под переменными в этом случае понимают файлы данных, а также области оперативной памяти, сопоставленные определенным в программе переменным.
Независимые процессы не влияют на результаты работы друг друга, т. к. не могут изменить значение переменных другого независимого процесса. Они могут только являться причиной задержек исполнения других процессов, т. к. вынуждены разделять ресурсы системы.
Взаимодействующие процессы совместно используют некоторые общие переменные, и выполнение одного процесса может повлиять на выполнение другого.
Взаимодействовать могут либо конкурирующие процессы, либо совместно выполняющие общую работу.
Конкурирующие процессы на первый взгляд действуют относительно независимо, но имеют доступ к общим переменным. Процессы, работа которых построена на обмене данными (результат вычислений одного процесса в явном виде передается другому), называют Сотрудничающими.
Многие ресурсы системы могут использоваться совместно несколькими процессами, но к разделяемым ресурсам в каждый момент времени может иметь доступ только один процесс. Ресурсы, которые не допускают одновременного использования несколькими процессами, называют Критическими.
В системе должна быть предусмотрена защита от одновременного доступа процессов к критическим ресурсам, иначе в ней могут возникать непрогнозируемые и трудно обнаруживаемые ошибки.
В мультипрограммной системе потоки и процессы протекают асинхронно, с различными скоростями, на которые могут влиять еще и решения планировщиков относительно других процессов. Поэтому влияние взаимодействующих процессов друг на друга невозможно спрогнозировать. Чтобы предотвратить порчу общих данных и исключить взаимную блокировку, потокам необходимо синхронизировать свою работу.
Синхронизация заключается в согласовании скоростей потоков путем приостановки потока до наступления некоторого события и последующей его активизации, когда это событие произойдет.
Взаимодействие сотрудничающих потоков удобно рассматривать в схеме "производитель-потребитель": Поток-получатель должен обращаться за данными только после того, как они помещены в буфер потоком-отправителем. Если же поток-получатель обратился за данными раньше, то он должен быть приостановлен до момента поступления данных.
При отсутствии синхронизации возможны следующие проблемы:
Возникновение Гонок. Гонками называется такая ситуация, когда два или более потоков обрабатывают разделяемые данные и конечный результат зависит от соотношения скоростей потоков.
Взаимные блокировки, или Тупики (Дедлоки, Клинчи - разные термины для обозначения одного события).
Тупик - это состояние, когда несколько процессов ждут событий, которые могут быть вызваны только одним из этих процессов. Так как все процессы находятся в состоянии ожидания, то эти события не произойдут никогда, следовательно, без вмешательства системы ожидание будет бесконечным.
Существует ряд механизмов синхронизации потоков и процессов. Они могут образовывать иерархию, когда на основе более простых средств строятся более сложные, а также могут быть функционально специализированными, например, средства для синхронизации потоков одного процесса, средства для синхронизации потоков разных процессов при обмене данными и т. п.
Для синхронизации потоков прикладных программ программист может использовать как средства операционной системы, так и собственные приемы синхронизации.
Механизмы синхронизации различаются в зависимости от того, относятся они к потокам одного или разных процессов. Для синхронизации потоков одного процесса можно использовать глобальные блокирующие переменные, которые позволяют контролировать работу потоков в критической секции (мониторы, семафоры).
Для потоков разных процессов ОС использует системные семафоры, события, сигналы, таймеры и пр. В распределенных системах, состоящих из нескольких процессоров, синхронизация может быть реализована только посредством передачи сообщений. Рассмотрим несколько более подробно некоторые названные средства синхронизации и связанные с ними понятия.
Похожие статьи
-
Основной особенностью мультипрограммных операционных систем является то, что в их среде параллельно развивается несколько (последовательных)...
-
Взаимодействие задач с PVM - Администрирование параллельных процессов
В системе PVM каждая задача, запущенная на некотором процессоре, идентифицируется целым числом, которое называется идентификатором задачи (TID) и по...
-
Разделение вычислений на независимые части - Администрирование параллельных процессов
Выбор способа разделения вычислений на независимые части основывается на анализе вычислительной схемы решения исходной задачи. Требования, которым должен...
-
Моделирование параллельных программ Рассмотренная схема проектирования и реализации параллельных вычислений дает способ понимания параллельных алгоритмов...
-
В работе использовались следующее программное обеспечение для решения поставленных задач: AutoCAD, ANSYS Workbench, ANSYS Icepak. Система AutoCAD...
-
Модели параллельных вычислений - Администрирование параллельных процессов
Параллельное программирование представляет дополнительные источники сложности необходимо явно управлять работой тысяч процессоров, координировать...
-
Вычислительные эксперименты для оценки эффективности параллельного варианта метода Гаусса для решения систем линейных уравнений проводились при следующих...
-
Назначение вычислительного кластера - Администрирование параллельных процессов
Кластеры используются в вычислительных целях, в частности в научных исследованиях. Для вычислительных кластеров существенными показателями являются...
-
Сетевыми протоколами называют протоколы первого и второго уровней, определяющих архитектуру локальной сети, в том числе ее топологию, передающую среду,...
-
Цели создания проекта - Администрирование параллельных процессов
Создание кластера для организации параллельных вычислений связано с развитием и внедрением таких суперсистем, использование которых позволит упростить...
-
Параллельная виртуальная машина кластера кафедры АИС - Администрирование параллельных процессов
Так как в основе кластера АИС лежит параллельная система Beowulf, в качестве основы его вычислительной среды используем коммуникационную библиотеку PVM...
-
Дистрибутивы развертывания кластера - Администрирование параллельных процессов
ParallelKnoppix - это модификация хорошо известного Linux-дистрибутива Knoppix live CD, которая позволяет установить кластер компьютеров для выполнения...
-
Существующие принципы администрирования Кластер -- группа компьютеров, объединенных высокоскоростными каналами связи, представляющая с точки зрения...
-
Коммуникационная библиотека PVM - Администрирование параллельных процессов
PVM (Parallel Virtual Machine) является продуктом исследовательского проекта по сетевым вычислениям в гетерогенной сетевой среде. Общая цель этого...
-
Структура кластера и его параметры Вычислительный кластер -- это совокупность компьютеров, объединенных в рамках некоторой сети для решения одной задачи,...
-
Постановка задачи - Администрирование параллельных процессов
В рамках дипломного проекта необходимо провести работы по администрированию кластера для организации параллельных вычислений. Работа заключается в том,...
-
Иерархия параллельных вычислительных систем - Повышение производительности работы библиотеки GridMD
Одной из основополагающих классификаций параллельных систем является Таксономия Флинна , в которой различаются следующие типы систем по взаимодействию...
-
Межпроцессное взаимодействие - Файловая система Windows 2000
Для общения друг с другом потоки могут использовать широкий спектр возможностей, включая каналы, именованные каналы, почтовые ящики, вызов удаленной...
-
Строгое определение протокола выглядит как формализованный набор правил, используемый ПК для коммуникаций. Из-за сложности коммуникаций между системами и...
-
Сеть кластера - Администрирование параллельных процессов
Основные типы локальных сетей, задействованные в рамках проекта Beowulf, - это Gigabit Ethernet, Fast Ethernet и 100-VG AnyLAN. В простейшем случае...
-
ЗАКЛЮЧЕНИЕ - Администрирование параллельных процессов
В данной дипломной работе были рассмотрены вопросы, касающиеся разработки кластера для организации параллельных вычислений, а так же администрирование...
-
Процесс декомпозиции - Администрирование параллельных процессов
Распараллеливание программ сводится к процессу декомпозиции задачи на независимые процессы, которые не требуют последовательного исполнения и могут,...
-
ВВЕДЕНИЕ - Администрирование параллельных процессов
Последние годы во всем мире происходит бурное внедрение вычислительных кластеров - локальных сетей, с узлами из рабочих станций или персональных...
-
Для администрирования кластера кафедры АИС для организации параллельных процессов было выбрано следующее программное обеспечение. 1. Intel® cluster...
-
Установка и администрирования PVM - Администрирование параллельных процессов
Для установки PVM в системе необходимо создать каталог, где будет располагаться система PVM. Будем считать, что установка PVM в каталог /pvm3. В этот...
-
Передача сообщений в PVM - Администрирование параллельных процессов
Посылка сообщений в PVM предназначена для передачи данных между различными процессам и состоит из трех шагов. 1. Первый шаг состоит в том, что буфер...
-
Основные функции: - Исполнение запросов программ (ввод и вывод данных, запуск и остановка других программ, выделение и освобождение дополнительной памяти...
-
Процессы и потоки - Разработка мобильного приложения расчета и учета оплаты коммунальных услуг
Когда хотя бы один из компонентов приложения (или все приложение) будет востребован, система Android запускает процесс, который содержит единственный...
-
Архитектура кластера кафедры АИС За основу проектирования кластера взята высокопроизводительная сетевая система Beowulf. Такой кластер имеет гетерогенную...
-
Распределение задач между процессами - Администрирование параллельных процессов
Распределение подзадач между процессорами является завершающим этапом разработки параллельного метода. Надо отметить, что управление распределением...
-
Управление задачами в PVM - Администрирование параллельных процессов
Управление задачами в PVM осуществляется на основе некоторого набора функций. Существует два варианта (два стиля) написания параллельных задач для PVM. В...
-
Распараллеливание процессов - Администрирование параллельных процессов
Старые линейные методы программирования не подходят для написания программ, эффективно использующих многопроцессорную технологию. Необходимо поменять...
-
Конечно-элементный анализ широко применяется при решении задач механики деформируемого твердого тела, теплообмена, гидро - и газодинамики, электро - и...
-
Языки и методы параллельного программирования - Администрирование параллельных процессов
Применение параллельных архитектур повышает производительность при решении задач, явно сводимых к обработке векторов. Автоматическое распараллеливание...
-
Формы и характеристики параллелизма Параллелизм -- это возможность одновременного выполнения нескольких арифметико-логических или служебных операций. На...
-
Принципы построения кластера - Администрирование параллельных процессов
Архитектура вычислительных кластеров появилась как развитие принципов построения систем MPP (высокопроизводительных систем) на менее производительных и...
-
Анализ работы СЛАУ на кластере - Администрирование параллельных процессов
Системы линейных уравнений возникают при решении ряда прикладных задач, описываемых дифференциальными, интегральными или системами нелинейных...
-
В третьей главе "Проектирование школьной социальной сети как среды организации внеурочной деятельности учащихся" представлены результаты формирующей...
-
Масштабирование набора подзадач - Администрирование параллельных процессов
Масштабирование разработанной вычислительной схемы параллельных вычислений проводится в случае, если количество имеющихся подзадач отличается от числа...
-
Программное обеспечение кластера, Операционная система - Администрирование параллельных процессов
Операционная система При построении кластера для организации параллельных вычислений более рационально иcпользовать свободно распространяемую...
Взаимодействие процессов, Параллельные процессы - Независимые и взаимодействующие вычислительные процессы