[OSy] Nestihajici zapsani CP0 compare registru

Michal Klempa michal.klempa at gmail.com
Wed Nov 3 13:57:56 CET 2010


2010/11/3 Martin Decky <decky at d3s.mff.cuni.cz>

> Mal by som mu nejak zmenit program counter na obsluznu rutinu a
>> preplanovat? Pricom na konci obsluhy timera by som mal vzdy jump naspat
>> na program counter, kde vlakno bolo predtym, nez som mu zacal vnucovat
>> timer?
>>
>
> Ano, i tato (pomerne komplikovana) varianta je mozna. Ovsem mnohem
> jednodussi je vyprsene timery proste provest primo v planovaci. Uvedomte si,
> ze planovac, dokud skutecne nepreplanuje na nove vlakno, bezi porad v
> puvodnim kontextu. Tj. kdyz nekdo explicitne zavola schedule(), tak bezi v
> kontextu vlakna, ktere ho zavolalo, a pokud se schedule() zavola z obsluzne
> rutiny casovace, tak taky bezi v kontextu vlakna, ktere bylo preruseno.

V principe teda, kazdy kto da interval mensi ako ma scheduler, takmer vzdy
vyprsi a vykona sa az v okamihu schedule. Nanajvys ma sancu sa vykonat zopar
timerov skor, priamo v obsluhe exception so zakazanymi interruptami.
Je toto riesenie? (kedze neviem spravit samostatne vlakno na timery zatial,
lebo som lamer)



>
>
>  Pri zpracovavi v samostatnom vlakne som stale lamer v tom, ze kto na
>> neho potom preplanuje, ked aj planovac pouziva timer framework.
>>
>
> Zrejme bude tedy potreba rozdelit Vas timer framework na dve vrstvy. Nizsi
> vrstva se bude starat ciste o naplanovani nejblizsi obsluhy, bude se starat
> o nastavovani Compare a Count registru a provadet generickou obsluhu
> hardwaroveho casovace, zatimco vyssi vrstva se bude starat o "uzivatelske"
> casovace a provadeni jejich obsluznych rutin.
>
>
> M.D.
>
> _______________________________________________
> OSy mailing list
> OSy at d3s.mff.cuni.cz
> https://d3s.mff.cuni.cz/mailman/listinfo/osy
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://d3s.mff.cuni.cz/pipermail/nswi004/attachments/20101103/e4017716/attachment.html>


More information about the NSWI004 mailing list