Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пример отчета по Парраллельным вычислениям.doc
Скачиваний:
39
Добавлен:
18.09.2019
Размер:
288.77 Кб
Скачать

2.2 Абстрактная модель программы.

Программа должна соответствовать следующим требованиям :

-создавать потоки;

-возможность приостанавливать и возобновлять работу потоков;

-возможность менять приоритеты выполнения потоков;

-графическая демонстрация выполнения потоков.

2.2.1 Создание потоков

Создание потоков реализуется с помощью стандартного метода класса TThread – Create(CreateSuspended:boolean), где CreateSuspended – параметр логического типа. Если CreateSuspended=false, то выполнение процедуры Execute начнётся сразу после создания объекта потока, иначе – выполнение потока начнётся только после вызова метода Resume.В разработанной программе три потока T1,T2 и Т3 создаются при создании формы(окна приложения). Эти потоки создаются и сразу же начинает своё выполнение.

2.2.2 Приостановка и возобновление выполнения потоков

Приостановка выполнения потоков осуществляется с помощью метода Suspend, возобновление - Resume.

2.2.4 Смена приоритетов

Смена приоритетов выполнения потоков происходит сменой свойства Priority, возможные значения которого приведены в Таблице №1 «Приоритеты»:

tpIdle

Поток выполняется ,только когда система свободна

tpLowest

Приоритет на 2 пункта ниже нормального

tpLower

Приоритет на 1 пункт ниже нормального

tpNormal

Нормальный приоритет потока

tpHigher

Приоритет на 1 пункт выше нормального

tpHighest

Приоритет на 2 пункта выше нормального

tpTimeCritical

Поток имеет наивысший приоритет.

Таблица №1 «Приоритеты»

2.2.5 Графическая реализация выполнения потоков

В качестве графической реализации выполнения потоков подгружается картинка. Картинка представляет собой поток. Если поток выполняется – то картинка движется .В противном случае – стоит.

2.2.6 Синхронизация

Решение проблемы синхронизации потоков осуществляется при помощи стандартного метода Synchronyze.

3.1 Алгоритм на языке программирования высокого уровня.

Для реализации данной модели использован язык программирования Object Pascal, среда разработки – Delphi.

3.2 Окно приложения

Рисунок №1 «Окно программы»

3.3 Листинги программы

Листинги программы находятся в Приложении А.

4 Результат работы программы

Программа тестировалась на двух- и однопроцессорной системе.

Двухпроцессорная система:

Рисунок №2 «Работа на двухпроцессорной системе»

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

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

Рисунок №3 «Работа на однопроцессорной системе»

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

Заключение

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