OT - multitask
Andras Tantos
andras at tantosonline.com
Sat Dec 17 19:14:23 CET 2005
Hali!
En a kovetkezot csinalnam: A 'szkop' processz, vagy thread, vagy akarmi
szepen toltoget egy (cirkularis) buffert. Amikor kesz van vele (pl. mert a
trigger feltetel teljesult) akkor a buffert 'kesz'-nek nyilvanitja, es uj
buffert kezd tolteni. Amikor a masik, megjelenito thread-nek az adatokra
szuksege van, akkor 'mintat' vesz a 'kesz' bufferbol, azaz az egeszet
gyorsan atveszi maganak, es ezzel egyutt ad egy ujabb buffert a szkop
thread-nek (feltehetoen azt, amit ez elott vett el). Ez nagyon gyorsan
megoldhato (2-3 pointer muvelet), erre az idore egyszeruen letiltanam az
IRQ-kat (ez sokkal gyorsabb, mint egy mutex, vagy valami hasonlo
szinkronizacios mechanizmus). Ha a megjelenito thread elvette az adatokat
ilyen modon, utana mar motozhat amilyen sokaig akar. Ez egy megjelenito
eseten szepen mukodik. Ha ket megjelenito van, akkor talan az a legjobb, ha
a szkop processz egyszerre ket buffert tolt mindket megjelenitonek. Vegulis
az otlet nem mas, mint egy '1' melysegu FIFO tarolo, amiben az elemek egesz
buffer-ek.
Udv,
Tantos Andras
----- Original Message -----
From: "Erdos Zoltan" <silverst at axelero.hu>
To: <elektro at tesla.hu>
Sent: Saturday, December 17, 2005 8:49 AM
Subject: Re: OT - multitask
> Hm... gondolkodom...
>
> Alapbol egy nagy puffermemorias tarolo szkopra gondolok, ami a masik felen
> weboldalon mutatna a jelalakot... azaz webserverkent is muxik.
> az adatallomany raadasul idoben gyorsan valtozo, az egyik process (a
> mintavet-betarol) irja piszkosul a tarat (adatstrukturat ha ugy progizom)
> a masik process (ami mondjuk aktiv html-be agyazott ablak)
> meg olvassa rendesen.... Namost oket hogyan vedjem egymastol?
> Az meg csak a hab a tortan, hogy egy kis lcd-n is megy a megjelenites...
> :-)
> (meg azon is gondolkodom, konvertalom az egeszet vmi animalt gif-nek,
> aljas modon atverve az egesz browsert.. :-) )
>
> Z.
>
> SZIGETI Szabolcs wrote:
>
>> Hali!
>>
>> Nem bonyolult, csak de :-)
>>
>> A cache-nek nem sok köze van hozzá direktben. Arra kell vigyázni, hogy a
>> küönbözo kernel adatstuktúrák védve legyenek a más process általi
>> módosítástól (pl. mutex).
>>
>> A hagyományos Unix ez úgy oldotta meg, hogy az egész kernel kvázi egy
>> hatalmas mutex alatt volt, ha egyszer valaki belépett a kernelbe, pl. egy
>> rendszerhívásba, akkor egészen addig nem léphetett be senki más, amíg o
>> ki nem lépett. Ez egyrészt rontja a multiprocesszoros muködés
>> hatékonyságát, mert csak egy folyamat lehet bent a kernbelben (pl.
>> fájlrendszer muködés), a másiknak a másik processzoron várnia kell, amíg
>> o ki nem lép.
>>
>> Minál jobban fel tudod bontani a kernelt olyan kis részekre amelyeket
>> külön kölcsönös kizárással védhetsz, annál jobb lesz a dolog, mert annál
>> kisebb lesz a valószínusége, hogy két processz ugyanazon a részen akar
>> futni.
>>
>
>
>
> -----------------------------------
> Szponzorunk: http://tonerbolt.hu/
>
More information about the Elektro
mailing list