{
Информационная система (ИС) представляет собой одно рабочее место, на котором производится обработка некоторой
информации. Заявка на обработку информации, поступившая в момент времени, когда рабочее место занято, получает отказ.
Интенсивность потока заявок лямда = 0,8 (заявок в секунду),
среднее время обработки t =1,5с.
Все потоки считаются простейшими. Требуется определить:
a) относительную пропускную способность ИС ;
b) абсолютную пропускную способность ИС;
c) среднюю долю не обслуженных заявок;
d) фактическую пропускную способность ИС.
}
uses {раздел объявления используемых модулей}
crt; {стандартный модуль Crt}
const {раздел описания констант}
l = 0.8; {интенсивность потока}
t = 1.5; {среднее время обслуживания}
var {раздел описания переменных}
mu, {интенсивность потока обслуживания}
O, {относительная пропускная способность}
A, {абсолютная пропускная способность}
N, {номинальная пропускная способность}
Potk, {средняя доля необслуженных заявок}
PS : real; {фактическая пропускная способность}
i, count, served, denied: word; {переменные для расчетов}
isfree: boolean; {ИС свободна}
timeout: real; {время до завершения занятости ИС}
begin {начало}
clrscr; {очистка экрана}
mu := 1 / t; {интенсивность потока обслуживания}
O := mu / (mu + l); {относительная пропускная способность}
writeln('a) Otnositel''naya propusknaya sposobnost'': ', O:7:4); {вывод на экран}
A := l * O; {абсолютная/фактическая пропускная способность}
writeln('bd) Absolutnaya (facticheskaya) propusknaya sposobnost'': ', A:7:4); {вывод на экран}
Potk := 1 - O; {средняя доля необслуженных заявок}
writeln('c) Srednyaya dolya neobslugenych zakazov: ', Potk:7:4); {вывод на экран}
N := 1/t; {номинальная пропускная способность}
writeln('Nominal''naya propusknaya sposobnost'': ', N:7:4); {вывод на экран}
writeln; {разрыв в сообщениях}
writeln('Modeling:'); {моделирование}
write('Enter the number of attempts: '); {приглашение для ввода количества повторений}
readln(count); {ввод числа}
served := 0; {обслужено}
denied := 0; {отказов в обслуживании}
isfree := true; {ИС свободна}
timeout := 0; {время до освобождения ИС}
for i := 1 to count do begin {повторим нужное число раз}
if (isfree) then begin {если ИС свободна}
Inc(served); {возьмем задачу в обслуживание}
timeout := t; {запустим таймер}
isfree := false; {отметим занятость системы}
end else begin {иначе (когда занята!)}
Inc(denied); {откажем задаче в обслуживании}
timeout := timeout - l; {"выждем" время до поступления следующей задачи}
if (timeout <= 0) then {если система освободилась}
isfree := true; {сообщим "свободная касса"}
end;
end;
writeln('Number of attempts: ', count); {количество повторений опыта}
writeln('Served: ', served, ' (', 100*(served/count):7:4, '%)'); {обслужено}
writeln('Denied: ', denied, ' (', 100*(denied/count):7:4, '%)'); {отказов в обслуживании}
writeln('Round served ', served/(count*l):0:4, ' in time.'); {в среднем обслуживалось в единицу времени}
writeln('Done. Press any key...'); {работа завершена}
readkey; {нажмите любую клавишу}
end. {конец}
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.