Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы Операц среды Уманский 2011.docx
Скачиваний:
40
Добавлен:
24.09.2019
Размер:
67 Кб
Скачать
☆

Уровень параллелизма данных

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

Уровень распараллеливания алгоритмов

Следующий уровень, это распараллеливание отдельных процедур и алгоритмов. Сюда можно отнести алгоритмы параллельной сортировки, умножение матриц, решение системы линейных уравнений.

Параллелизм на уровне инструкций

Наиболее низкий уровень параллелизма, осуществляемый на уровне параллельной обработки процессором нескольких инструкций. На этом же уровне находится пакетная обработка нескольких элементов данных одной командой процессора. Программа представляет собой поток инструкций выполняемых процессором. Можно изменить порядок этих инструкций, распределить их по группам, которые будут выполняться параллельно, без изменения результата работы всей программы. Это и называется параллелизмом на уровне инструкций. Для реализации данного вида параллелизма в микропроцессорах используется несколько конвейеров команд, такие технологии как предсказание команд, переименование регистров.

  1. Каким образом файлы, процессы и потоки могут быть использованы для синхронизации? Сотрудничество с использованием разделения:

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

Сотрудничество с использованием связи:

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

  1. Какие методы могут использоваться для ликвидации тупиковых ситуаций?

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

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

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