Sunteți pe pagina 1din 6

Analele Universitii SPRU HARET, Seria Matematic-nformatic, nr.

1 , 2005, SSN 1841 - 7833


57




ASUPRA UTILIZRII UNOR MECANISME FORMALE
N DESCRIEREA PROCESELOR DE ATEPTARE
SPECIFICE SISTEMELOR CLIENT-SERVER


GABRIEL DIMITRIU
Stuaent Universitatea Spiru Haret, Facultatea Matematic-Informatic
gabrieltech.pub.ro


Rezumat: Aceast comunicare abordeaz modelarea proceselor de ateptare
care intervin n cadrul aplicaiilor client-server cu ajutorul teoriei limbajelor Iormale
i a structurilor AFN/AFD. ExempliIicarea este realizat pentru o aplicaie
particular.

Cuvinte cheie: gramatici Iormale, automate, client-server, modelare


1. INTRODUCERE

n contextul acestei lucrri, prin proces de ateptare se nelege un proces
industrial, inIormatic sau economic n care un server oIer servicii unor clieni.
Aplicaiile care implementeaz procese de ateptare sunt de tip client-server.
Tratarea apelurilor ntr-o central teleIonic, tratarea cererilor de ctre un
server WEB, sisteme de nregistrare n timp real, sisteme de comand i control ale
proceselor industriale, deservirea clienilor unei baze de date, bancomate etc. sunt
doar cteva exemple de aplicaii n care apare Ienomenul de asteptare.
Un model client-server presupune existena urmtoarelor elemente: ateptare,
un server (punct de deservire) care are o lege de servire, o lege de intrare a unor
entiti care trebuie servite, o lege de ieire din sistem i o anumit conIiguraie a
irului de ateptare.
Legea pentru generarea irului de ateptare este determinat de politica
serverului (coad: First In First Out; stiv: Last In Fist Out; list cu prioriti etc.).
Alegerea politicii (disciplinei) de servire este determinat de caracteristicile
procesului modelat. irul de ateptare poate Ii vid, Iinit sau inIinit; de asemenea el
poate s aib o rat constant sau o rat variabil care s determine momentele de
staionare (omaj) ale serverului (cnd serverul nu are nici ce prelucra i nici ce
Iurniza la ieire).
Mrimea irului precum i indicele de staionare speciIice serverului sunt
parametri importani privind dimensionarea serverului i alegerea legii de
Iuncionare sau pentru construcia serverului. De exemplu, dac timpii de ateptare
pentru o cerere devin prea mari i un client nu poate Ii servit n timp util, n cazul
proceselor de timp real, atunci se poate decide crearea n paralel a unor
Analele Universitii SPRU HARET, Seria Matematic-nformatic, nr. 1 , 2005, SSN 1841 - 7833
58
componente ale serverului n locul unde are loc gtuirea sau chiar dublarea
complet a serverului n cazul unor procese de importan strategic sau cnd se
dorete tratarea simultan a mai multor cereri.

2. MODELARE CU A1UTORUL LIMBA1ELOR FORMALE

n cele ce urmez se utilizeaz modelarea unui proces de ateptare Iolosind
teoria limbajelor Iormale aa cum este propus n |1|. Se consider vocabularele:

1
a},
2
a, b},
3
a,b,c} (1)

Fie W o unitate de timp, suIicient de mic pentru ca oricare dou cereri s nu
soseasc simultan n coada de ateptare i suIicient de mare ca s se poat spune c
deservirea se Iace n cel puin dou unitai de timp W (o unitate de timp pentru
prelucrare i o unitate de timp pentru ieire). Cu alte cuvinte, dac rata de sosire a
cererilor n server este de o cerere la dou uniti de timp W, atunci Iiecare cerere
este prelucrat Ir s atepte, iar serverul nu are 'timpi mori. n aplicaiile
practice, pentru a nu mri numrul de reguli prea mult, dar i pentru a avea o
valoare acoperitoare se va alege cea mai mare unitate de timp cu proprietile de
mai sus, cu excepia sistemelor de timp real, cu importan strategic, cnd se alege
cea mai mic valoare i chiar se poate ntrerupe servirea unui client, iar apoi se
poate servi alt client care are prioritate mai mare. n acest caz se salveaz
inIormaii i despre starea clientului n momentul ntreruperii, inIormaii necesare
pentru reluarea prelucrrii clientului din momentul ntreruperii, clientul ntrerupt
este pus n coada de ateptare cu prioritate maxim ca, dup terminarea prelucrrii
clientului prioritar el s Iie luat primul pentru a i se putea continua prelucrarea.
Legea de intrare poate Ii vzut ca o secven inIinit cu simboluri din
vocabularul
2
, simbolurile a i b generndu-se la un interval de timp W i avind
semniIicaia: a reprezint venirea unei cereri la server n acest interval, iar b ca
lipsa venirii unei cereri la server n acel interval. Aadar, conIorm celor menionate
mai sus, dac avem irul abbabba... clienii sunt preluai de ctre server Ir
ateptare, iar serverul nu are 'timpi mori.
Legea de servire poate Ii vzut ca un ir peste vocabularul
3
avnd
urmtoarele semniIicaii ale simbolurilor pe timpul unei perioade de timp W: a
dac o cerere este transmis serverului, b dac serverul este ocupat cu deservirea
altei cereri, c dac o cerere este satisIcut i i se trimite rspuns. AstIel, durata
servirii unei cereri este egal cu lungimea irului delimitat de dou simboluri a i c
consecutive. Cererile clienilor sunt identice ns timpul lor de servire va Ii diIerit
n Iuncie de momentul n care sosesc i nu de natura lor (cazul este cel a unei
reguli FIFO Ir prioritai, dar cu cereri identice).
Legea de ieire va Ii vzut ca un ir peste vocabularul
2
(a este ieirea din
server ce corespunde simbolului c din legea de servire, iar b aIirm c nici un client
nu primete rspuns i corespunde simbolurilor a i c din legea de servire).
irul de ateptare este un cuvnt peste vocabularul
2
: a reprezint venirea
unei cereri, b- orice ncercare de tratare a unei cereri care eueaza din cauza lipsei
de cereri.
Considernd subcuvintele irurilor prezentate obinem patru limbaje: LI
(limbajul de intrare), LS (limbajul de servire ale crui cuvinte ncep ntotdeauna cu
simbolul a, deoarece reprezint prima cerere care este primit de catre server,
Analele Universitii SPRU HARET, Seria Matematic-nformatic, nr. 1 , 2005, SSN 1841 - 7833
59
echivalent cu timpul 0), LO (limbajul de ieire) care sunt inIinite ntotdeauna i LC
(limbajul care reprezint irul de ateptare) care poate Ii inIinit, nul (n cazul n
care nu vine nici o cerere) sau de lungimea 1 (cnd cererile vin exact cu rata de
prelucrare a serverului, aa cum ar Ii cazul ideal).
Folosind notaiile de mai sus legile de Iuncionare ale serverului sunt:
1. dac n LS apare un simbol a, atunci cererea curent din LI este tratat de
server, dac cererea care trebuia s Iie tratat este b atunci se trateaz o cerere din
LC;
2. dac n LS apare un simbol a, n LI apare un simbol b iar LC este vid,
atunci serverul rmne n ateptare pn la apariia unui simbol a n LI iar LS
ramne n a;
3. dac LS este b atunci orice cerere care vine reprezentat printr-un simbol a
n LI este introdus n LC.
Cu aceste legi de Iuncionare se poate Iormula urmtorul algoritm dupa care
sistemul Iuncioneaz:
1. dac nu avem a la intrare i coada este goal treci la pasul 1;
2. dac avem a la intrare atunci prelucreaza a i treci n starea b, dac nu treci
la pasul 6;
3. dac n timp ce serverul prelucreaz apare un simbol a la intrare atunci
salveaza a n coad;
4. treci n starea c. Scoi la ieire a i dac n acelai timp apare a la intrare
salveaz a n coad;
5. treci n starea a i mergi la pasul 2;
6. dac coada nu este goal atunci extragi un element din coad, prelucrezi a,
treci n starea b i mergi la pasul 3.

3. MODELARE CU A1UTORUL AUTOMATELOR

Pe parcursul acestei seciuni se presupun cunoscute notaiile i teminologia
teoriei automatelor |2|.
Pentru modelarea procesului de ateptare cu ajutorul automatelor vom
presupune c deservirea area loc exact n doua unitati de timp (1 unitate de timp
pentru prelucrare i o unitate de timp pentru ieire) aadar irul starilor automatului
peste vocabularul
2
va Ii abcabc...

3.1 Modelare folosind automat finit nedeterminist

Algoritmul descris mai sus se poate modela cu ajutorul unui automat
nedeterminist cu 6 stri, aceste stri sunt date de tripletul (LS,LC,LO) cu
semniIicaiile din seciunea 2. Aadar mulimea strilor este: K(a,b,b), (a,a,b),
(b,b,b), (b,a,b,), (c,b,a), (c,a,a)} cu semniIicaiile:
x (a,b,b)se ateapt cerere de la clieni, coada este goal i la ieire nu se
Iurnizeaz nimic
x (a,a,b)se ateapt cerere de la clieni,n coad se aIl cel puin un client
i la ieire nu se Iurnizeaz nimic
x (b,b,b)se prelucreaz inIormaia pentru client, coada este goal i la
ieire nu se Iurnizeaz nimic
x (b,a,b)se prelucreaz inIormaia pentru client,n coad se aIla cel puin
un client i la ieire nu se Iurnizeaz nimic
Analele Universitii SPRU HARET, Seria Matematic-nformatic, nr. 1 , 2005, SSN 1841 - 7833
x (c,b,a)se Iurnizeaz la ieire un element a i n coada nu se aIl nici un
client
x (c,a,a)se Iurnizeaz la ieire un element a i n coad se aIl cel putin
un client.
Nedeterminarea provine din deIinirea strilor (b,a,b), (c,a,a) si (a,a,b) n care
nu se speciIic numrul de elemente care se aIl n coad, ci doar c exist
elemente n coad.
Starea iniial este q
0
(a,b,b)} iar mulimea strilor Iinale este
F(c,b,a),(c,a,a)}. Dei automatul considerat nu are stri Iinale n adevratul sens
al cuvntului, el mergnd la inIinit iar ieirea Iiind irul dat de limbajul LO, i
starea de ateptare n timp mort este q q
0
.
AlIabetul de intrare este 6a,b} cu a a venit o cerere de la un client i b
nu a venit o cerere de la un client.
Schema automatului este prezentat n Iigura 1:
(a,b,b)
(b,b,b)
(b,a,b)
(c,b,a)
(c,a,a)
(a,a,b)
a,b
a,b
a
b
b
a
b
b
a
a,b
Figura 1.

Tabelul 1 prezint Iuncia de stare G :

Tabelul 1
G A b
(a,b,b) (b,b,b)} (a,b,b)}
(a,a,b) (b,a,b)} (b,b,b),(b,a,b)}
(b,b,b) (c,a,a)} (c,b,a)}
(b,a,b) (c,a,a)} (c,a,a)}
(c,b,a) (a,a,b)} (a,b,b)}
(c,a,a) (a,a,b)} (a,a,b)}

Se observ ca nedeterminarea apare n momentul cnd vine simbolul b i
automatul este n starea (a,a,b) deoarece dac este un singur element n coada de
ateptare, atunci trece n starea (b,b,b), altIel trece n starea (b,a,b).
60
Analele Universitii SPRU HARET, Seria Matematic-nformatic, nr. 1 , 2005, SSN 1841 - 7833
61
Aadar cvintetul (,K,q
0
,F, G) Iormeaz un atomat Iinit nedeterminist.


3.2 Modelare folosind automatului finit determinist

Prima modiIicare pe care cititorul ar Ii tentat s o Iaca este ca s introduc un
contor care speciIic cte elemente sunt n coad, i n Iuncie de acel contor, s se
ia o decizie de trecere n strile (b,b,b) sau (b,a,b). Dar Icnd aceast modiIicare
ceea ce rezult nu mai este un automat n adevaratul sens al cuvntului deoarece
atunci vom avea un alIabet Ioarte mare pentru contor.
Propunem urmtoarea modiIicare a automatului Iinit nedeterminist prezentat
n seciunea 3.1 pentru a rezulta un automat Iinit determinist.
n locul alIabetului de intrare vom avea alIabetul
1
(a,b,b), (a,a,b),
(a,a,a), (a,b,a), (b,b,b), (b,a,b), (b,a,a), (b,b,a)}. Se observ c
1
:a,b} x a,b} x
a,b}, aadar noul alIabet este dintr-un spaiu tridimensional Ia de Iostul alIabet
de intrare care era dintr-un spaiu unidimensional. n acest triplet avem asignate
valorile (LI(i),LC(i),LC(i1)) sau (valoarea de intrare, prima cerere din coad, a
doua cerere din coad) toate la momentul respectiv deci pentru i, cu aceste
modiIicri implementarea cozii de ateptare se modic astIel nct s permit
citirea primului i celui de-al doilea element Ir a Iace extragerea lor eIectiv. Se
Iace convenia c dac nu este nici o cerere n coad acesta se asigneaz cu b iar
cererea urmtoare din coad este tot asignat cu b deoarece n coad nu sunt dect
a, iar situaia urmtoare nu este posibil LC(10)abaaaab deoarece n coad trebuie
s Iie numai a iar b deIinete sIritul cozii dar n schimb este posibil
LC(10)aaaaabb. n cazul n care se adaug n coad LC(10) nc un element el
devine LC(11)aaaaaabb. Aadar din
1
trebuie s scoatem tripletele (a,b,a) i
(b,b,a) deoarece mrim inutil alIabetul de intrare, aceste elemente neputnd veni
niciodat.
Mulimile strilor i a strilor Iinale rmn identice cu cele prezentate n
subseciunea 3.1 pentru automatul Iinit nedeterminist, dar se modiIic Iuncia
automatului care este acum G:
1
xKoK.
Cu notaiile i explicaiile de mai sus avem schema automatului Iinit
determinist prezentat n Iigura 2: n care prin x a Iost codiIicat orice valoare din
alIabetul a,b}.
AstIel, avem tabelul 2. Pentru Iuncia G n care prin I s-a reprezentat situaia
imposibil, deoarece n starea respectiv coada este ori plin i (x,b,x) nu poate
aprea sau coada este goal i (x,a,x) nu poate aprea.
Aadar cvintetul (
1
,K,q
0
,F, G) Iormeaz un atomat Iinit determinist, care se
observ c are aceleai stri Iinale i Iuncionare ca i automatul Iinit
nedeterminist.









Analele Universitii SPRU HARET, Seria Matematic-nformatic, nr. 1 , 2005, SSN 1841 - 7833
(a,b,b)
(b,b,b)
(b,a,b)
(c,b,a)
(c,a,a)
(a,a,b)
(a,a,x)
(b,a,x)
(a,a,x
(b,a,a
(a,b,b)
(b,a,b)
(b,b,b)
(a,b,b)
(b,b,b)
(b,b,b)
(a,b,b)
(a,a,x)
(b,a,x)
Figura 2

Tabelul 2
G (a,b,b) (b,b,b) (a,a,b) (a,a,a) (b,a,b) (b,a,a)
(a,b,b) (b,b,b) (a,b,b) I I I I
(a,a,b) I I (b,a,b) (b,a,b) (b,b,b) (b,a,b)
(b,b,b) (c,a,a) (c,b,a) I I I I
(b,a,b) I I (c,a,a) (c,a,a) (c,a,a) (c,a,a)
(c,b,a) (a,a,b) (a,b,b) I I I I
(c,a,a) I I (a,a,b) (a,a,b) (a,a,b) (a,a,b)

4. CONCLUZII

Se observ c Ir o inIormaie asupra modului n care opereaz sistemul nu
se poate Iace o simulare iar automatele pentru cazul n care prelucrarea dureaz
mai multe uniti de timp se complic Ioarte mult deoarece pentru Iiecare unitate
de timp n plus la prelucrare apare cte o stare deci dac perioada de timp ct se Iace
prelucrarea este n atunci numrul strilor atutomatului va Ii n5, ceea ce se vede c
nu mai este realizabil. n acel caz se poate Iace doar o simulare cu ajutorul unui
program sau pe hrtie a sistemului cum a Iost prezentat n |1| i nu o modelare,
caz n care se cunosc LI, LO, LS ale sistemului i se urmreste doar Iuncionarea
sistemului .

REFERENCES
1. Gh. Pun, Mecanisme generative ae procese economice. Ed.
Tehnic,Bucureti , 1980, pag 184-188
2. I. Vduva, Moaele ae simulare. Editura Universitii din Bucureti, 2004.

Abstract: In this paper we present the waiting processes modeling that appear in
client-server applications with the help oI Iormal language theory and oI NFA/DFA
structures Ior a particular application.
62

S-ar putea să vă placă și