<br><br><div class="gmail_quote">2010/11/3 Martin Decky <span dir="ltr"><<a href="mailto:decky@d3s.mff.cuni.cz">decky@d3s.mff.cuni.cz</a>></span><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im"><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Mal by som mu nejak zmenit program counter na obsluznu rutinu a<br>
preplanovat? Pricom na konci obsluhy timera by som mal vzdy jump naspat<br>
na program counter, kde vlakno bolo predtym, nez som mu zacal vnucovat<br>
timer?<br>
</blockquote>
<br></div>
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.</blockquote>
<div>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.<br>
Je toto riesenie? (kedze neviem spravit samostatne vlakno na timery zatial, lebo som lamer)<br><br> <br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Pri zpracovavi v samostatnom vlakne som stale lamer v tom, ze kto na<br>
neho potom preplanuje, ked aj planovac pouziva timer framework.<br>
</blockquote>
<br></div>
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.<br>

<br>
<br>
M.D.<br>
<br>
_______________________________________________<br>
OSy mailing list<br>
<a href="mailto:OSy@d3s.mff.cuni.cz" target="_blank">OSy@d3s.mff.cuni.cz</a><br>
<a href="https://d3s.mff.cuni.cz/mailman/listinfo/osy" target="_blank">https://d3s.mff.cuni.cz/mailman/listinfo/osy</a><br>
</blockquote></div><br>