[so] Aruncarea prajiturii(lor)

Octavian Purdila so@atlantis.cs.pub.ro
Mon, 10 Nov 2003 16:39:51 +0200


On Sat, 8 Nov 2003 05:52:05 -0800 (PST), Murgan Mihai <murganm@yahoo.com> 
wrote:

> Ca sa aruncam prajiturile cofetaria trebuie sa fie anuntata ca s-a scurs 
> timpul de valabilitate al unei prajituri. Acest lucru poate fi facut fie 
> cu un alt proces care sa doarma valabilitatea unei prajituri si cand 
> devine constient sa anunte sa fie aruncata, fie prin threaduri care sa 
> faca acelasi lucru, fie prin semnale pe Linux si prin CreateTimerQueue 
> si functii de semnalat evenimente pe Windows.Dintr-un e-mail anterior am 
> inteles ca nu avem voie sa facem threaduri. In laboratoare inca nu am 
> discutat de functiile pomenite de mine mai sus(CreateTimerQueue,etc).
> Deci cel mai firesc lucru mi se pare crearea unui nou proces, daca 
> gresesc spuneti-mi ce anume sa folosesc.
> In al doilea rand, daca creez un nou proces acesta poate sa aiba doua 
> comportamente:
> 1.Sa doarma intreaga perioada de timp de valabilitate cat i-a mai ramas 
> prajiturii puse cel mai de mult in frigider
> 2.Sa doarma cate o secunda si sa verifice daca a expirat timpul vreunei 
> prajituri.
> In cazul 1 exista riscul sa arunc vreo prajitura cu cateva secunde mai 
> tarziu decat termenul limita, secunde pierdute de calculele facute de 
> procesor si de primirea mesajelor intre procese.

La fel si in cazul 2 :) Solutii pentru probleme de genul asta nu exista 
decat
daca se foloseste un RTOS. Chiar daca faci busy waiting nu poti fi sigur 
(SO te poate intrerupe, teoretic
indefinit de mult timp)

tavi