Исследование алгоритмов управления ресурсами однопроцессорных серверов при оперативной обработке задач (алгоритмы SPT и RR)
Содержание
Введение
.Постановка задачи
.Теоретическая часть
.1 Алгоритм SPT
.2 Алгоритм RR
.3 Алгоритм FB
.Описание алгоритма
.Результаты работы
.Анализ работы программы
Заключение
Список используемых источников
Приложения
Введение
Вычислительные системы различной архитектуры являются аппаратной частью информационной технологии, достигшей к концу ХХ века глобального характера и содержания. Мультипроцессорные системы, к которым относятся также компьютерные сети, позволяют за счет изменения их архитектуры оптимизировать параметры основных информационных процессов информационной технологии: обработки, накопления, передача данных и представление знаний. В данном курсовом проекте рассмотрено управление ресурсами вычислительных систем однопроцессорных систем оперативной обработки (алгоритм SPT и RR). Задачей курсовой работы является сравнение результатов работы алгоритмов SPT и RR.
Цель работы - моделирование вычислительной однопроцессорной системы оперативной обработки.
Написать программу, реализующую работу процессора по обработке
очереди заявок переменной длины по следующим алгоритмам:
без предварительной сортировки заявок по длительности;
с предварительной сортировкой заявок по длительности, по алгоритму SPT;
по алгоритму RR.
Обработать очереди из 100 и 1000 заявок;
вероятность прихода заявок: 30 и 60;
Найдена: сумму длин всех заявок в очереди; время, необходимое для обработки очереди по каждому из алгоритмов и при всех условиях; среднее время ожидания для короткой заявки. Результаты оформлены в виде таблицы. Оценены эффективности алгоритмов. Произведен анализ работы.
Список используемых источников
1.В.И. Ключко, В.И.Лойко, Архитектура вычислительных систем и сетей ЭВМ. Изд. КубГТУ. 2000г.-153с.
.В.И. Лойко, Методические указания к лабораторным работам. Изд. КубГТУ. 2000г. -25с.
Приложения
Приложение 1
Листинг программы
Program Kurs;Crt;=^pnt;=record:pointer;:integer;;i: integer;
a,prr,pspt,ph,p1,p2,px:pointer;,r,N,t,t2,k,k2,v,d,s2,c:integer;, Dlit, Short: Integer;,Tspt,Trr:Integer;
ch:char;
{Процедура добавления заявки}
Procedure push (var px,y:pointer; l:integer);(p1);^.ptr:=nil;y=nil then:=p1;:=p1;^.time:=l;^.ptr:=p1;^.time:=l;;:=p1;;;;
{ Число тактов}(' Введите число заявок (100 или 1000) ');(N);
{ Вероятность прихода заявки}(' Введите вероятность прихода заявки (30% или 60%) ');(P);
{ Длительность решения задачи}(' Введите длительность решения задачи (0-7) ');(Dlit);
{ Заявка считается короткой}(' Заявка считается короткой (4) ');
{Readln(}Short:=4;{);}
{Заполнение списка заявок}:=nil;ph:=nil;p1:=nil;p2:=nil;prr:=nil;pspt:=nil;
v:=0;:=0;:=0;
{ For i:=1 to n do}
Repeat:=random(10)+1; {Генерации вероятности прихода заявки}
If r<=(P div 10) {------------------------}
l:=random(Dlit)+1; {Генерация длительности заявки}(ph,a,l); {Добавление заявки}(v); {Счетчик заявок}:=Summ+l; {Сумма длинн заявок}
endpush(ph,a,0); {Заявки нет}:=c+1;;v=n;;(' Сумма длин всех заявок: ',Summ);
{;Алгоритм без сортировки}:=0;:=ph;
k:=0;:=1;:=0;:=0;:=0;
If a^.time=0 {Если время заявки 0 (заявки в этот такт нет) }
thend<i then
begin
d:=i; {Простой}(s2);(t);:=a^.ptr; {Следующая заявка}d<i then:=d+a^.time;(t,a^.time);(k);
a:=a^.ptr; {Следующая заявка}
end;(i);(a^.ptr=nil) ; { Заявки кончились}:=n-s2;k=0 then k:=1;
Writeln;(' Среднее время пребывания заявки в очереди : ',t/k:0:4);(' Число тактов процессора: ',d);
{;Алгоритм SPT с сортировкой}:=0;
a:=nil;:=ph;:=0;:=1;:=0;:=0;:=0;(px^.time=0) then(a=nil) then:=px^.ptr;(px);:=ph;^.ptr:=px^.ptr;(px);:=a^.ptr;begin:=px;:=px^.ptr;;(a^.ptr=nil);:=ph;(Tspt);
If a^.time=0 {Если время заявки 0 (заявки в этот такт нет) }
thend<i then:=i; {Простой}(s2);:=a^.ptr; {Следующая заявка}
end
elsed<i then
begin:=d+a^.time; { Считаем число тактов работы алгоритма SPT }
inc(t,a^.time);(k);
a:=a^.ptr; {Следующая заявка}
end;(i);(a^.ptr=nil) ; { Заявки кончились}
s2:=n-s2;
If k=0 then k:=1;;
Writeln(' SPT: Среднее время пребывания заявки в очереди : ',t/k:0:4);(' Число тактов процессора: ',d);
{;Алгоритм RR}:=0;:=0;:=0;:=ph;:=0;:=0;
i:=1;:=0;:=0;(Trr); { Считаем время работы алгоритма RR }a^.time=0 {Если время заявки 0 (заявки в этот такт нет) }
thend<i then:=i;(s2);:=a^.ptr; { Следующая заявка}(a^.time>0) and (a^.time<5) {Если длина заявки дольше короткой}d<i then:=d+a^.time;(t,a^.time);(k);
a:=a^.ptr; { Следующая заявка}{Отбрасываем длинную заявку в конец очереди}
begind<i then
d:=d+Short;
p2:=a^.ptr;(t2,a^.time);(k2);:=a^.time-Short;:=a^.ptr;a^.ptr=nil;(ph,a,r);:=p2;;(i);(a^.ptr=nil) ;:=n-s2;k=0 then k:=1;
Writeln;(' RR : Среднее время пребывания короткой заявки в очереди : ',t/k:0:4);(' Среднее время пребывания длинной заявки в очереди : ',t2/k2:0:4);(' Число тактов процессора: ',d);
Writeln;('Выход? (Y-Да) ' );:=ReadKey;(Ch='y') or (CH='Y') or (CH='н')or(CH='Н');
End.
Приложение 2
Результат работы программы
Результат работы программы для 100 заявок с вероятностью прихода заявки 60%, длительностью решения задачи 7т:
Результат работы программы для 100 заявок с вероятностью прихода заявки 60%, длительностью решения задачи 7т:
Больше работ по теме:
Предмет: Информационное обеспечение, программирование
Тип работы: Курсовая работа (т)
Новости образования
КОНТАКТНЫЙ EMAIL: [email protected]
Скачать реферат © 2019 | Пользовательское соглашение
ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ