OT: SW: přístup více úloh k jedné periférii.

Jiri Foldyna jiri.f na foldynovi.cz
Čtvrtek Březen 28 20:11:39 CET 2013


Dne 28.03.2013 18:51, Josef Štengl napsal(a):
> 'brej večír.
>
> Mám jednu periférii se kterou se komunikuje paralelně k CPU a nevím jak
> bezpečně ji zamknout po dobu kdy pracuje. Jedná se mi o to aby dva
> paralelní procesy nemohly přistoupit k periférii zároveň.
>
> pokud použiji systém:
>
> 1: přečtu si ZAMEK
> pokud ZAMEK zamčen
> goto 1
> pokud odemčen
> zamkni ZAMEK
>
> odemyká se na základě přerušení od periférie.
>
> No a problém je, že zamknutí zámku není atomické.
>
> Nechce se mi vymýšlet kolo a chybí mi v této oblasti vzdělání.
>
> Nemá někdo tušení jak tento problém řeší velký klucí, nebo co mám
> vlastně hledat abych si to nastudoval? Ono se mi nedostává ani v oblasti
> terminologie.
>
> Moc děkuji za nakopnutí.
>
> ced

Dobrý večer,

o teorii hezky píší Madnick a Donovan v klasice Operační systémy 
(kapitola Synchronizace procesů). Prakticky se dá v jednodušších 
případech použít DI/EI, pokud není zařízení připojeno na NMI nebo přes 
DMA. Procesor x86 má pro tyto účely implementovánu atomickou instrukci 
XCHG; případně lze použít prefix LOCK.

JF


Další informace o konferenci Hw-list