Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Файлы для подготовки к экзамену / Архитектура компьютеров и ВС, принципы параллельного программирования.doc
Скачиваний:
71
Добавлен:
28.06.2014
Размер:
1.26 Mб
Скачать
    1. Введение и основные понятия.

      1. Ряд основных понятий и определений.

Определение 1a. Процесс – это программа на стадии ее выполнения, некоторое вычисление, которое может выполняться параллельно с другими.

Определение 1b. Процесс Windows– объект ОС; оболочка для манипулирования программой, в ней нет исполняемого кода.

Операции над процессами:

  • создание процесса;

  • уничтожение;

  • изменение приоритета;

  • запуск;

  • блокировка;

  • вытеснение;

  • приостановка;

  • возобновление.

При создании процесса создается главный поток.

Определение 2. Поток – объект ОС, который содержит выполняемый код и подлежит планированию.

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

      1. Архитектурный облик современного компьютера.

Архитектура ЭВМ – это общее описание структуры и функций ЭВМ. Архитектура не несет в себе описание деталей технического и физического устройств компьютера.

Пояснения к схеме:

ПР – процессор;

П – порты;

УП – управление памятью;

ИНТ – интерфейс;

ОП – оперативная память;

Д – диски;

КР – коммутатор.

В данной схеме местная периферия (принтеры, мониторы и т.д.), общий блок УП для все процессоров.

Основные блоки процессора.

Пояснения к схеме:

СК – счетчик команд;

ИА – индексное устройство;

ДШ – дешифратор кода команд;

УП – управление памятью;

АУ – арифметическое устройство;

РК – регистры команд;

РО – регистры операнд;

РР – регистры результатов.

      1. Схема выполнения (команд) программы.

Параллельная обработка данных имеет две разновидности:

  • конвейерная

  • параллельная.

Параллельная обработка.

Если некое устройство выполняет одну операцию за единицу времени, то тысячу операций оно выполнит за тысячу единиц. Если предположить, что есть пять таких же независимых устройств, способных работать одновременно, то ту же тысячу операций система из пяти устройств может выполнить уже не за тысячу, а за двести единиц времени. Аналогично система из N устройств ту же работу выполнит за 1000/N единиц времени.

Конвейерная обработка.

Рассмотрим схему выполнения программы, введение конвейера и анализ его работы:

Пояснения к схеме:

СК – счетчик команд;

ИА – индексное устройство;

ДШ – дешифратор кода команд;

УП – управление памятью;

АУ – арифметическое устройство;

РК – регистры команд;

РО – регистры операнд;

РР – регистры результатов.

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

Процессоры первых компьютеров выполняли все эти "микрооперации" для каждой пары аргументов последовательно одна за другой до тех пор, пока не доходили до окончательного результата, и лишь после этого переходили к обработке следующей пары слагаемых. Идея конвейерной обработки заключается в выделении отдельных этапов выполнения общей операции, причем каждый этап, выполнив свою работу, передавал бы результат следующему, одновременно принимая новую порцию входных данных. Получаем очевидный выигрыш в скорости обработки за счет совмещения прежде разнесенных во времени операций. Предположим, что в операции можно выделить пять микроопераций, каждая из которых выполняется за одну единицу времени. Если есть одно неделимое последовательное устройство, то 100 пар аргументов оно обработает за 500 единиц. Если каждую микрооперацию выделить в отдельный этап конвейерного устройства, то на пятой единице времени на разной стадии обработки такого устройства будут находится первые пять пар аргументов, а весь набор из ста пар будет обработан за 5+99=104 единицы времени - ускорение по сравнению с последовательным устройством почти в пять раз.

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

Принципиальные характеристики компьютера:

  • производительность – [оп/сек];

  • быстродействие – время выполнения операций.

Выделим важнейшие факторы, влияющие на быстродействие процессора.

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

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

Количество тактов, затрачиваемых на выполнение команды, зависит от сложности этой команды и от методов адресации операндов.

Первоначально для количественной оценки производительности процессоров применялась единица измерения MIPS (Mega Instruction Per Second), соответствовавшая количеству миллионов выполняемых команд за секунду. Естественно, изготовители микропроцессоров старались ориентироваться на самые быстрые команды.

Другой аналогичный показатель быстродействия процессора — время выполнения коротких (быстрых) операций.

Время выполнения команд — важный, но далеко не единственный фактор, определяющий быстродействие. Большое значение имеет также структура системы команд процессора. Например, некоторым процессорам для выполнения какой-то операции понадобится одна команда, а другим процессорам — несколько команд. Какие-то процессоры имеют систему команд, позволяющую быстро решать задачи одного типа, а какие-то — задачи другого типа. Важны и методы адресации, разрешенные в данном процессоре, и наличие сегментирования памяти, и способы взаимодействия процессора с устройствами ввода/вывода и т.д.

Существенно влияет на быстродействие системы в целом и то, как процессор «общается» с памятью команд и памятью данных, применяется ли совмещение выборки команд из памяти с выполнением ранее выбранных команд.

Источники убыстрения:

  • организационно технологические;

-повышение быстродействия элементов процессора;

-введение дополнительных устройств, имеющих возможность работать параллельно;

(СДС – 7600, Крэй, Стрейч, БЭСМ6)

  • организационно управленческие решения;

-динамический анализ независимых команд в потоке. Накладные расходы на динамический анализ большие;

Определение. Команды являются независимыми, если выполняется

-параллельное выполнение ветвей программы связанное с условными переходами;

-введение сопроцессоров.