next up previous contents
Next: Priorité en mode NOYAU Up: BSD Previous: BSD   Contents

Priorité en mode USER

La gestion des priorités dépend de :

Tous les 4 quantums, la priorité du processus élu est réévaluée par :


\begin{displaymath}
\text{p\_usrpri}=PUSER+\frac 14\cdot \text{p\_cpu}+2 \cdot
\text{p\_nice}
\end{displaymath} (8.1)

p_usrpri est borné par 127.

Tous les ticks, l'utilisation du processeur par le processus élu est incrémentée :

\begin{displaymath}
\text{p\_cpu}=\text{p\_cpu}+1
\end{displaymath} (8.2)

Chaque seconde, p_cpu est ajustée par le calcul :

\begin{displaymath}
\text{p\_cpu}=\frac{2\cdot n}{2\cdot
n+1}\text{p\_cpu}+\text{p\_nice}
\end{displaymath} (8.3)

$n$ est la longueur moyenne de la file des processus prêts sur une seconde.

Si le processus est resté endormi plus d'une seconde, son niveau de priorité est recalculé à son réveil par :

\begin{displaymath}
\text{p\_cpu}=\left[\frac{2\cdot n}{2\cdot
n+1}\right]^{\text{p\_slptime}}\cdot \text{p\_cpu}
\end{displaymath} (8.4)

p_slptime est la durée d'endormissement du processus, mis à 0 au moment de la mise en sommeil, et incrémenté à chaque seconde.


next up previous contents
Next: Priorité en mode NOYAU Up: BSD Previous: BSD   Contents
Arnaud Revel
2001-11-26