Характеристики МПС с общей памятью
⇐ ПредыдущаяСтр 2 из 2
Пусть в МПС поступает М потоков с интенсивностями l1,...,lM. Обслуживание заявок сводится к выполнению соответствующих программ, средние трудоемкости которых равны Q1,…,QM операций в расчете на один прогон программы. Примем, что обслуживание заявок выполняется на основе дисциплины FIFO. В таком случае можно считать, что система обслуживает однородный поток заявок, поступающих с интенсивностью
= i Для обслуживания любой заявки из суммарного потока требуется в среднем процессорных операций .На каждый из процессоров поступает N-я доля заявок и, следовательно, отдельный процессор обслуживает поток с интенсивностью /N. Среднее время простоя процессоров можно получить, приняв ti за время простоя i-того процессора, тогда среднее время простоя 1 процессора вычисляется по формуле:
T= i /N,
где N- количество процессоров. РЕЗУЛЬТАТЫ ИССЛЕДОВАНИЯ Таблица 3.1 Результаты работы многопроцессорных систем, обрабатывающих очередь из 100 заданий
График 3.1
Диаграмма 3.1
Таблица 3.2 Результаты работы многопроцессорных систем, обрабатывающих очередь из 1000 заданий
График 3.2
Диаграмма 3.2
ОПИСАНИЕ ПРОЦЕДУР, ИСПОЛЬЗУЕМЫХ В ПРОГРАММЕ Глобальные переменные procc: array [1..10] of integer- массив процессоров системы c: integer - переменная для подсчета количества простаивавших процессоров; k: integer - переменная для подсчета общего времени простоя процессоров; cz: integer - переменная для хранения текущего числа заданий(100 или 1000); na: integer - переменная для хранения суммы длин заданий; max: integer - переменная для хранения количества времени, которое проработает система после того, как ей будет передано последнее задание на обработку; Процедуры Procedure mass (chzad: integer; proc: integer) - процедура, имитирующая работу многопроцессорной системы с общей памятью, выполняет обработку массива, состоящего из cz заданий, в системе с pr процессорами. В качестве параметров получает количество заданий chzad и количество процессоров proc в системе; s:integer - переменная для подсчета времени, в течении которого будут выполняться chzad заданий; f:Boolean - переменная для проверки передано ли очередное задание свободному процессору; procedure vizov - процедура создает массив заданий длинной 1-8 и 3-6 и отправляет его на обработку 2-х, 5-ти и 10-ти процессорной системе при помощи вызова процедуры mass. Процедура вызывается в основной программе для 100 и 1000 заданий отдельно; pr:integer - переменная для хранения количества процессоров системы; мультипроцессорный память заявка архитектура ЗАКЛЮЧЕНИЕ В результате выполнения курсовой работы были получены такие характеристики работы мультипроцессорных систем с общей памятью как общее время, необходимое для выполнения 100 и 1000 заданий различной длинны, среднее время простоя процессоров и среднее время, необходимое для выполнения одной заявки.
Полученные данные показали прямую зависимость общей производительности системы от количества процессоров, т.е. с ростом числа процессоров в системе растет и общая производительность системы; эта зависимость хорошо видна на Графике 3.1. Как видно из Таблицы 3.1 для обработки одной и той же очереди заявок общей длинной 487 системе с 2-мя процессорами требуется почти в 2,5 раза больше времени, чем системе с 5-ю процессорами и в 4,7 раза больше, чем системе с 10-тью процессорами. Как видно из таблиц 3.1 и 3.2 на производительность многопроцессорной системы с общей памятью влияет и диапазон длин заявок очереди. Для обработки очереди длинной 487, состоящей из 100 заявок, длина которых изменяется от 1 до 8, потребовалось почти столько же времени, сколько и для обработки такой же очереди общей длинной 874(что почти в 2 раза больше предыдущей), заявки которой имеют длину 3-6. Это обусловлено тем, при обработке первой очереди встречаются как очень короткие (длинной 1-4), так и длинные заявки, на обработку которых требуется больше времени. В связи с этим растет и среднее время простоя процессоров, т.к. некоторые процессоры могли выполнить короткие заявки и завершить работу, в то время как остальные продолжали выполнять длинные заявки. При обработке очереди длинной 3-6 разница в длине заявки составляет 1-2, т.е. процессоры выполняют заявки практически одновременно, таким образом, сокращается время простоя процессоров. Среднее время выполнения одной заявки так же находится в прямой зависимости от числа процессоров системы. Затраты времени на выполнение одной заявки значительно сокращаются с ростом количества процессоров, как видно из Таблиц 3.1 и 3.2 среднее время, необходимое на выполнение одной заявки системе с двумя процессорами, составило 2,6. Системе с пятью процессорами потребовалось примерно 1,1 системного времени, что в 2,4 раза больше, чем первой. Десятипроцессорная система выполняла дону заявку за 0,5, т.е. в 2 раза быстрее, чем предыдущая система. Таким образом, можно сделать вывод, что производительность многопроцессорной системы зависит, прежде всего, от количества процессоров в системе, а так же от диапазона длин заявок очереди. Полученные результаты показали, что наибольшей производительности система достигает при наличии 10 процессоров и наименьшем диапазоне длин заявок очереди (в данном случае 3-6).
Список литературы
1. В.И. Лойко; Вычислительные системы и сети”; г. Краснодар, изд. КГАУ, 2000 г. . В.Л. Бройдо; Вычислительные системы, сети и телекоммуникации”; Санкт-Петербург, 2002 г.
Приложение Листинг программы Program df; uses crt;: array [1..10] of integer;:array[1..1000] of integer;,k,cz,na,max:integer;mass(chzad:integer; proc:integer); var,s,i:integer;:boolean; j:=0;:=0;:=1;:=1;i<=chzad do f:=false; beginj:=1 to proc do beginprocc[j]=0 then:=true;[j]:=zad[i];(i);(procc[j]);;;(s);;f=true;;:=0;j:=1 to proc domax<procc[j] then max:=procc[j]; end;:=0;:=0;j:=1 to proc do beginprocc[j]<max then begin:=k+(max-procc[j]); inc(c);;;:=s+max;c<> 0 then('TimeV=',s);('Prostoi ',k/c:3:3);(' Time1= ',s/chzad:3:3);('TimeV=',s);('Prostoi ',k,'');(' Time1= ',s/chzad:3:3); end;; procedure vizov;pr,i:integer;:=0;i:=1 to cz do[i]:=random(8)+1;:=na+zad[i];;('*******',cz,'ZADANII****'); writeln;('....Dlinna zayavki 1-8...'); writeln('== Dlinna ocheredi ',na,'====='); writeln;:=2;(pr, ' PROCC -> ');(cz,pr);:=5;(pr, ' PROCC -> ');(cz,pr);:=10;(pr, ' PROCC -> ');(cz,pr);i:=1 to cz do[i]:=3+random(3);:=na+zad[i]; end; writeln;('Dlinna zayavki 3-6'); writeln('= Dlinna ocheredi ',na,'='); writeln;:=2;(pr, ' PROCC -> ');(cz,pr);:=5;(pr, ' PROCC -> ');(cz,pr);:=10;(pr, ' PROCC -> ');(cz,pr); writeln readln;;;;:=100;;;:=1000;; end.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|