Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
final1-35-shpora.doc
Скачиваний:
9
Добавлен:
21.04.2019
Размер:
4.78 Mб
Скачать

28. Распределение процессов по процессорам. Централизованный метод “Up-Down”

Работает и со статич. и с динамич. системами процессов.

Центральный диспетчер процессов/-ров ведет общий пул процессорных ресурсов, общую таблицу процессов. Он должен распределять процессорный ресурс по процессам.

Критерий: «справедливое» распределение проц. ресурса по процессам. Используются динамические приоритеты процессов. Каждому процессу Pi присваиваеися приоритет ki. При порожд.проц. ki=0 , далее к меняется каждый квант времени. к++ если процесс пользуется ресурсом(выполняется). к-- если процесс запросил и ждет процессор. к=const если процесс не выполняется и не запрашивает ресурс.

29. Распределение процессов по процессорам. Иерархический алгоритм.

Проблема алгоритма – запаздывание информации о ресурсах, поступающих супервизору. Для ее решения есть правила:

R – кол-во ресурсов под управлением супервизора

R’ – кол-во предоставленных ресурсов

N – кол-во запрашиваемых ресурсов

R’ <= R

R’ > N

В эт. сл-е если в модуль прих.запрос на кол-во ресурсов, то окл-во выд.ресурсов уст.ся неск-ко больше, чем число запрашив. => избыточное выделение ресурсов («-»)

Для улучшения орг-ии обмена осущ. не выделение, а резервирование рес-ов. Запрос доходит до супервизора и он в свою очередь дает указание зарезервировать столько рес-ов.(вниз по иерархии)

Инф. о том, сколько рес-ов мб. зарезервирована отправляется обратно супервизору. Далее обратно отправляется уже указание о выделении ресурсов. Излишние зарезерв. ресурсы освобождаются.

Потери: в изб. выделении ресурсов. При недостаточном выделении пост. отказы обработки исх. данных.

30. Распределение процессов по процессорам. Стохастические алгоритмы.

Если сложно подобрать адекватные параметры системы для ее корр работы, если нет инф для оптимизации, то она носит вероятностный характер.

  1. инициатор-источних запроса / sender-initiated

ВМ ведет очередь готовых процессов. вводится пар. q – граничная длина очереди Q. Считается что пока Q < q работа происх. нормально. Иначе: принимается решение о отправки процесса в др. модуль. (Случ. выборка ВМ).

ВМ 2 смотрит Q2<q, и выделяет ресурс или отказывает. При отказе ВМ выбирает новый ВМ. После n неудач ВМ выполняет ресурс сам, или приостанавливает на нек.вр.

  1. инициатор-получатель / receiver-initiated

Если Q < q, то модуль недогружен, и по принципу из 1) он запрашивает процесс с других модулей.

Равномерность загрузки примерно одинакова, но 2 считается предпочтительнее т.к. он выполняется при малой загрузке системы.

31. Формальные модели параллельных вычислений

Параллельное программирование представляет дополнительные источники сложности - необходимо явно управлять работой тысяч процессоров, координировать миллионы межпроцессорных взаимодействий. Для того решить задачу на параллельном компьютере, необходимо распределить вычисления между процессорами системы, так чтобы каждый процессор был занят решением части задачи. Кроме того, желательно, чтобы как можно меньший объем данных пересылался между процессорами, поскольку коммуникации значительно больше медленные операции, чем вычисления. Часто, возникают конфликты между степенью распараллеливания и объемом коммуникаций, то есть чем между большим числом процессоров распределена задача, тем больший объем данных необходимо пересылать между ними. Среда параллельного программирования должна обеспечивать адекватное управление распределением и коммуникациями данных.

Из-за сложности параллельных компьютеров и их существенного отличия от традиционных однопроцессорных компьютеров нельзя просто воспользоваться традиционными языками программирования и ожидать получения хорошей производительности. Рассмотрим основные модели параллельного программирования, их абстракции адекватные и полезные в параллельном программировании:

1) Процесс/канал (Process/Channel)

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

2) Обмен сообщениями (Message Passing)

В этой модели программы, возможно различные, написанные на традиционном последовательном языке исполняются процессорами компьютера. Каждая программа имеют доступ к памяти исполняющего е§ процессора. Программы обмениваются между собой данными, используя подпрограммы приема/передачи данных некоторой коммуникационной системы. Программы, использующие обмен сообщениями, могут выполняться только на MIMD компьютерах.

3) Параллелизм данных (Data Parallel)

В этой модели единственная программа задает распределение данных между всеми процессорами компьютера и операции над ними. Распределяемыми данными обычно являются массивы. Как правило, языки программирования, поддерживающие данную модель, допускают операции над массивами, позволяют использовать в выражениях целые массивы, вырезки из массивов. Распараллеливание операций над массивами, циклов обработки массивов позволяет увеличить производительность программы. Компилятор отвечает за генерацию кода, осуществляющего распределение элементов массивов и вычислений между процессорами. Каждый процессор отвечает за то подмножество элементов массива, которое расположено в его локальной памяти. Программы с параллелизмом данных могут быть оттранслированы и исполнены как на MIMD, так и на SIMD компьютерах.

4)Общей памяти (Shared Memory)

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

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