Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 1

Simulacija rada klijent-server aplikacije.

Dva klijenta pristupaju podacima na


serverskoj strani. Prvi klijent pristupa serveru na slucajan nacin po Poas.
raspodeli sa konstantom LambdaCitanja i ocitava podatke sa servera. Drugi klijent
pristupa serveru na slucajan nacin po Poas. raspodeli sa konstantom LambdaUpisa i
upisuje (menja) podatke na serveru. Dok jedan klijent pristupa podacima sa servera,
drugi ceka zavrsetak njegovog rada. Uz pretpostavku da je za opsluzivanje svakog
klijenta neophodno 2sec, napisati funkciju koja odredjuje prosecno vreme cekanja
svakog klijenta i ukupan broj opsluzenih zahteva klijenata. Vreme simulacije je
VremeSim (u sekundama). Ukoliko u nekom trenutku oba klijenta pristupaju serveru,
prvo se obradjuje klijent koji vrsi upis.
KOD:
function [prosjek, br_klijenata] = server(LambdaCitanja, LambdaUpisa, VremeSim)
read = poissrnd(LambdaCitanja, 1, VremeSim);
write = poissrnd(LambdaUpisa, 1, VremeSim);
read = cumsum(read);
write = cumsum(write);
read = read(read<=VremeSim);
write = write(write<=VremeSim);
q1 = zeros(1,VremeSim);
q2 = zeros(1,Vremesim);
wait_read = zeros(1, VremeSim);
wait_write = zeros(1, VremeSim);
for t=1 : VremeSim
dosli_read = sum(read == t);
dosli_write = sum(write == t);
q1(t) = q1(t-1) + dosli_read;
q2(t) = q2(t-1) + dosli_write;
if (q2(t) > 0 && ceka == 0)
q2(t) = q2(t) - 1;
br_klijenata = br_klijenata + 1;
ceka = 2;
else
if (q1(t) > 0 && ceka == 0)
q1(t) = q1(t) - 1;
br_klijenata = br_klijenata + 1;
ceka = 2;
end
end
ceka = ceka - 1;
for i = t : t + q1(t)
wait_read(i) = wait_read(i) + 1;
end
for i = t : t + q2(t)
wait_write(i) = wait_write(i) + 1;
end
end
prosjek = (sum(wait_read) + sum(wait_write)) / 2*br_klijenata;
main:
[prosjek, br_klijenata] = server(2,2,20);

by Skovla

April 2009

You might also like