[pso] Tema 2 linux

Adrian Stanciu pso@cursuri.cs.pub.ro
Thu, 26 Aug 2004 13:10:35 +0300


On 26 Aug 2004 08:31:16 -0000, Ioan MANEA <ioan@home.ro> wrote:
> Dar intreruperile se genereaza astfel:
> OUT[0], OUT[1]...., OUT[3] (adica se genereaza INT pentru scrierea datelor, dar intre aceste OUT-uri NU se genereaza deloc intreruperi pentru citire pt. COM2
> se asteapta in FLUSH pentru ca toate OUT-urile sa se genereze, iar apoi vine imediat, din userspace, CLEAR IN pentru COM2. Se executa CLEAR IN, apoi se scriu alte 4 caractere.
> deci, se executa OUT[4], OUT[5],...OUT[7].
> Eh, si se executa citirea, unde se sleep-aiei procesul pentru ca nu avem date. Si apoi vin, finally, intreruperile de citire:
> IN[0], IN[1]... IN[7]! Adica toate datele.
> Logic, cand se executa citirea, se citesc datele scrise de OUT[0]...OUT[3], nu cele de la OUT[4]...OUT[7]. Astfel, datele sunt clar defazate prin buffere, si deci verificarile nu merg.

Nu cred ca este problema ta ca intreruperile de IN vin toate grupate,
hardware-ul (in cazul tau masina virtuala) trebuie sa serializeze intreruperile.
Asa ca s-ar putea sa fie o problema cu masina virtuala. Incearca pe o
masina fizica, mai face la fel?

--adrian