<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;">
Mam timer, ktory si pusta priamo scheduler, takze raz cas sa aktivuje<br>
funkcia 'schedule' volana ako handler nejakej struct timer:<br>
schedule_init () {<br>
        <br>
        timer_init(&tmr[cpuid()], 2000,&schedule_on_timer, ...)<br>
        timer_start(&tmr[cpuid()]);<br>
}<br>
</blockquote>
<br></div>
Zrejme tedy myslenka, ze planovac je obsluzna rutina generickeho timeru, nebude uplne nejstastnejsi ..<br>
<br>
Mozna uz jen proto, ze obecne timery maji jednorazovou povahu, zatimco preemptivni planovac je urcite spise periodicka zalezitost. Viz muj predchozi email -- snaha o jednotne API by nemela znamenat, ze se nasilne unifikuji i veci, ktere by bylo vyhodnejsi resit na ruznych urovnich abstrakce.</blockquote>
<div>Na tuto zradnu cesticku ma naviedol komentar v kaliste v schedule(), kde je nieco v zmysle better use timer framework.<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;">
Otazka je, maju sa spracovavat handlery timerov so zakazanym<br>
interruptom?<br>
</blockquote>
<br></div>
Na to se neda uplne obecne odpovedet, to zavisi na mnoha jinych rozhodnutich v navrhu Vaseho kernelu. Kde a jak presne handlery timeru bezi, zda je Vas kernel obecne preemptivni (tj. podporuje vnorene vyjimky) apod.<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;">
Myslim ze som to dokazal kodom vyssie, nejaka rozumna konstanta tam asi<br>
vzdy bude musiet byt, lebo samotne write_cp0_compare a read_cp0_count<br>
nieco trvaju, tak aby som tam zapisal nieco urcite vacsie, ako pocet<br>
tickov ktore trva kym sa vykonaju tieto instrukcie.<br>
</blockquote>
<br></div>
Jiste, nema smysl, aby se timer exception vyvolal okamzite pote, co nastavite Compare a Count. Na to nepotrebujete zadny exception, v takovem pripade je lepsi zavolat obsluzny kod primo :)<div><div></div><div class="h5">
<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>
</div></div></blockquote></div><br>