next up previous contents
suivant: Conception et mise en monter: Principes de base précédent: Phase de démarrage: le   Table des matières

L'allocation du processeur

Une fois la phase de boot terminée, on alloue le processeur à un processus utilisateur. C'est le rôle de la procédure assembleur: alloueUC, décrite ci-dessous. Ce premier processus est bien entendu main, qui contient le code des autres processus de l'utilisateur.

La politique d'allocation suit la loi qui consiste à allouer le processeur au processus de plus grande priorité. On utilise pour cela deux informations. La première, fileEligibles est une file contenant tous les processus en attente d'exécution8, classés selon leur priorité: le plus prioritaire étant en tête de la file. La seconde, pidElu contient l'identifiant du processus qui s'exécutait avant l'appel à alloueUC. Le principe consiste donc à donner l'accès au processeur au processus en tête de la file des éligibles:fileEligibles, afin qu'il puisse s'exécuter.

L'allocation du processeur nécessite quelques précautions pour permettre un retour propre. En effet, il est nécessaire de faire ce que l'on appelle une sauvegarde de contexte du précédent processus qui s'exécutait. Ensuite, il faut restaurer le contexte du nouveau processus à exécuter en allant rechercher dans les piles utilisateur et superviseur son contexte sauvegardé lors d'un précédent appel à la fonction alloueUC.
Dans le cas où le nouveau processus à exécuter est le même que celui en cours d'exécution, alors les phases de sauvegarde et de restauration du contexte sont inutiles, et son exécution continue.
Dans le cas où le processus que l'on exécute est le tout premier, il n'y a pas de sauvegarde de contexte9.

L'algorithme d'allocation du processeur peut être résumé comme suit:

Figure 1: Algorithme d'allocation de ressources
\begin{figure}
\begin{verbatim}si ( pidElu == nil ) alors /* Test de la premiè...
...\vert sinon
\vert \vert on ne fait rien;
\vert fsi
fsi\end{verbatim}\end{figure}


next up previous contents
suivant: Conception et mise en monter: Principes de base précédent: Phase de démarrage: le   Table des matières
Alexandre DAGAN
2000-07-07