Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Processes - Metodicka (edited) with MPI - last....doc
Скачиваний:
59
Добавлен:
22.12.2018
Размер:
1.59 Mб
Скачать

6.4Семафоры. 116

6.4.1Доступ к семафору 117

6.4.2Операции над семафором 118

6.4.3Управление массивом семафоров. 120

7Взаимодействие процессов в сети. 126

7.1Механизм сокетов. 126

7.1.1Типы сокетов. Коммуникационный домен. 127

7.1.2Создание и конфигурирование сокета. 128

7.1.3Предварительное установление соединения. 131

7.1.4Прием и передача данных. 133

7.1.5Завершение работы с сокетом. 135

7.1.6Резюме: общая схема работы с сокетами. 136

7.2Среда параллельного программирования MPI 144

7.2.1Краткий обзор параллельных архитектур. 145

7.2.2Модель программирования MPI. 150

7.2.3 Функции общего назначения. Общая структура программы. 151

7.2.4Прием и передача данных. Общие замечания. 156

7.2.5Коммуникации «точка-точка». Блокирующий режим. 158

7.2.6Коммуникации «точка-точка». Неблокирующий режим. 164

7.2.7Коллективные коммуникации. 171

8Алфавитный указатель упоминаемых библиотечных функций и системных вызовов. 180

9Список литературы 182

Часть I. Теоретические основы.

  1. Введение.

Вычислительная система (ВС) есть совокупность аппаратных и программных средств, функционирующих как единое целое и предназначенных для решения задач определенного класса. Любая вычислительная система обладает некоторым набором ресурсов. Эти ресурсы включают в себя как реально существующие физические ресурсы (устройства) с их реальными характеристиками, так и устройства, эксплутационные характеристики которых полностью или частично реализованы программным образом – виртуальные (логические) ресурсы (устройства). Под операционной системой (ОС) понимают комплекс программ осуществляющий управление, распределение и контроль за использованием ресурсов вычислительной системы.

Любая операционная система оперирует некоторыми сущностями (понятиями), которые во многом характеризуют свойства этой операционной системы. К таким сущностям могут относиться понятия – задача, процесс, объект, файл, набор данных и т.д.. Одним из важнейших таких понятий является понятие процесса. В общем случае процесс можно определить как совокупность данных и машинных команд, исполняющуюся в рамках ВС и обладающую правами на владение некоторым набором ресурсов. Эти права могут носить эксклюзивный характер, когда ресурс принадлежит только одному процессу, либо ресурс может одновременно принадлежать нескольким процессам – в этом случае ресурс называется разделяемым.

Во всех современных ВС поддерживается режим мультипрограммирования, поэтому одной из основных функций ОС является задача управления процессами в ВС. Эта задача включает в себя:

  • обеспечение жизненного цикла процессов (порождение, выполнение и уничтожение процессов);

  • распределение ресурсов ВС;

  • синхронизацию процессов;

  • организацию межпроцессного взаимодействия.

  1. Понятие процесса.

Нетрудно найти целый ряд “синонимов” понятия типа “процесс” – процесс, нить, задача, задание или программа, причем в различных ОС могут присутствовать только часть понятий из этого набора, и их интерпретация во многом будет зависеть от конкретной вычислительной среды, где они используются. Таким образом, разные операционные системы оперируют с разными понятиями относительно базовой сущности, с которой работает ОС . Более того эти понятия могут переплетаться, т.е. задача может состоять из нескольких процессов, а процесс имеет многонитевую структуру.

Для каждого процесса определена структура данных, фиксирующая текущее состояние процесса. Такую структуру называют контекстом процесса. Она существует с момента создания процесса и до момента завершения его работы. В зависимости от конкретной операционной системы, данная информационная структура может включать в себя содержимое пользовательского адресного пространства (т.е. содержимое сегментов программного кода, данных, стека, разделяемых сегментов и сегментов файлов, отображаемых в виртуальную память) – пользовательский контекст, содержимое аппаратных регистров (таких, как регистр счетчика команд, регистр состояния процессора, регистр указателя стека и регистров общего назначения) – регистровый контекст, а также структуры данных ядра ОС, связанные с этим процессом (контекст системного уровня). В общем случае данная информация может дополняться или меняться по ходу исполнения процесса в зависимости от того, чем в данный момент процесс занимался.

Одной из целей создания и поддержания такой структуры является возможность продолжения корректной работы процесса после приостановки его функционирования на процессоре. В момент выделения следующему процессу вычислительных ресурсов происходит так называемое переключение контекста, в результате которого происходит сохранение контекста текущего процесса и передача управления новому.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]