22.processus Flashcards
programme
ensemble
d’instructions et de variables dont le
but est d’accomplir une tâche
précise.
* C’est donc le code que l’on écrit et qui
est traduit en langage binaire par le
compilateur
processus
composé
* du programme;
* et de l’ensemble des ressources
reliées à l’exécution du programme.
Ces ressources incluent:
* un espace réservé en mémoire;
* des fichiers ouverts;
* du temps de CPU
On divise le temps du microprocesseur en petits morceaux, des
quanta
À chaque quantum, une —– est soulevée
À chaque quantum, une interruption est soulevée
La routine de traitement de l’interruption
Sauvegarde le contexte du processus en exécution (PC, CPSR,
registres)
* Sélectionne un autre processus à exécuter grâce à un programme
nommé l’ordonnanceur
* Restaure le contexte de ce nouveau processus (PC, CPSR, registres)
* Reprend l’exécution du processus où il était rendu
C’est l’—– qui décide quel processus exécuter à chaque quantum.
C’est l’ordonnanceur qui décide quel processus exécuter à chaque quantum.
Est-ce qu’un processus « sait » qu’il a été interrompu?
Non!
À ses yeux, il ne fait que continuer son exécution
comme s’il était seul sur Terre.
peut on faire 2 processus à la fois
non on alterne
À tout moment, un processus possède
un état.
Le système d’exploitation (SE) tient une liste de
tous les processus à exécuter, ainsi que leur état.
le SE stocke cette information dans un
Process
Control Block (PCB) pour chaque processus,
Process
Control Block (PCB) contient x4
son identifiant unique;
* son état;
* ses registres, sa partie de la mémoire et sa pile;
* d’autres informations, comme sa priorité
Un nouveau processus peut être démarré par:x3
une requête de l’usager (ex: exécution de programme);
* le système d’exploitation;
* ou un autre processus
Lorsqu’un processus est démarré, il est tout d’abord examiné
par
l’admission de haut niveau (high level scheduler)
Celui-ci détermine si l’ordinateur possède
les ressources
nécessaires pour exécuter le processus
* Si oui (la majorité du temps), le processus est admis et tombe dans
l’état prêt.
* Sinon, le processus ne peut être démarré.
Processus: état « prêt »
Le processus est prêt d’être exécuté, mais il ne
peut pas: il est en attente du micro-processeur
* Le micro-processeur est alors occupé à exécuter un
autre processus
* Il reste dans l’état prêt jusqu’à ce que
l’ordonnanceur le sélectionne comme prochain
processus à exécuter.
ordonnanceur est
Programme (du système d’exploitation) qui
sélectionne le prochain processus à exécuter
* S’exécute périodiquement grâce à des interruptions qui
redonnent le contrôle au système d’exploitation
Processus: état « en cours »
Le processus contrôle le micro-processeur!
* Il le fait jusqu’à ce que:
* l’ordonnanceur reprenne le contrôle pour pouvoir
exécuter un autre processus
* il revient alors à l’état prêt
Processus: état « terminé »
Lorsque le processus a complété son exécution,
ou lorsqu’on le ferme volontairement, il devient
dans l’état terminé.
L’ordonnancement des processus consiste simplement à
décider quel
processus sera exécuté dans le quantum suivant
Un algorithme d’ordonnancement a les objectifs suivants x9
Assurer l’équité
Maximiser l’exécution
Temps d’exécution min.
Utilisation max du CPU
Utilisation max ressources
Détérioration graduelle (Un système surchargé doit ralentir, pas planter)
Temps d’attente min.
Temps de réponse correct
Prévenir la famine (starvation)( L’exécution d’un processus ne doit pas être reportée indéfiniment.)
Ordonnancement: algorithme général en 4 étapes
- S’il y a un nouveau processus:
1.1. L’admettre en mémoire;
1.2. (Tourniquet seulement): placer le processus à la fin de la file d’attente - Choisir le processus parmi ceux admis en mémoire
selon l’algorithme d’ordonnancement; - Calculer la durée restante du processus choisi;
3.1. Si le processus choisi est terminé, le retirer de la liste
des processus en mémoire;
3.2. (Tourniquet seulement): Sinon, placer le processus à la fin de la file
d’attente - Passer au quanta suivant
algo Premier arrivé, premier servi
Le premier processus admis est exécuté jusqu’à sa fin.
Puis, on exécute le suivant.
* Cet algorithme n’est jamais utilisé. Il détruirait l’illusion
d’une exécution simultanée de plusieurs processus.
algo plus court d’abord
On exécute le processus le
plus court d’abord.
* Avantages: Maximise l’exécution et le temps
d’exécution
* Désavantages: Famine possible, inéquitable
Arrivée dynamique des processus
* En pratique, les processus arrivent à différents
moments. Il faut donc recalculer quel processus
sera exécuté en prochain. comment
* Plus court d’abord
On maintient une liste des processus, et on sélectionne
le plus court
Arrivée dynamique des processus
* En pratique, les processus arrivent à différents
moments. Il faut donc recalculer quel processus
sera exécuté en prochain. comment
* Plus court d’abord
On maintient une liste des processus, et on sélectionne
le plus court
algo tourniquet
exécute les
processus à tour de rôle.
* Avantages: Tous les processus ont du temps de CPU,
très équitable
* Désavantages: Ne maximise pas l’exécution ni le temps
d’exécution
Arrivée dynamique des processus
* En pratique, les processus arrivent à différents
moments. Il faut donc recalculer quel processus
sera exécuté en prochain. comment
* tourniquet
On maintient une file d’attente.
* Lorsqu’un nouveau processus arrive, on le place à la fin
de la file d’attente
notion de priorité
On exécute les processus selon leur
priorité.
* Avantages: Temps de réponse correct, temps d’attente
minimum
* Désavantages: Ne maximise pas l’exécution ni le temps
d’exécution, famine possible, le programmeur doit
déclarer des priorités
algo tourniquet priorité
On exécute tout d’abord
les processus selon leur priorité. Si plusieurs
processus ont la même priorité, on utilise le
tourniquet pour les exécuter en alternance.
* Avantages: Temps de réponse correct, temps d’attente
minimum
* Désavantages: Ne maximise pas l’exécution ni le temps
d’exécution, famine possible, le programmeur doit
déclarer des priorités
algo à priorité variable
On exécute les processus selon
leur priorité. La priorité d’un processus change
dynamiquement en fonction d’évènements (fin
d’attente, le processus a faim, admission, …).
* Avantages: Temps de réponse correct, temps d’attente
minimum
* Désavantages: Même que l’algorithme de priorité, mais
avec un impact beaucoup moindre
file avec tourniquet
On exécute
plusieurs fois les processus nouvellement admis,
puis les processus non terminés sont mis dans un
tourniquet.
* Avantages: Tous les processus ont du temps de CPU;
très équitable.
* Désavantages: Même que tourniquet, mais avec un
impact moindre
alog plus critique
Le processus
devant être exécuté dans les plus brefs délais est
d’abord exécuté.
* Avantages: Garantit l’exécution d’un processus critique
à l’intérieur d’un certain temps.
* Désavantages: Ne maximise pas l’exécution ni le temps
d’exécution, famine possible, le programmeur doit
déclarer des priorités
Lorsqu’il est en cours, un processus peut parfois avoir
besoin d’accéder à un périphérique. Les périphériques sont beaucoup plus —– que le microprocesseur,
alors le processus doit —– (longtemps)
que la requête soit terminée avant de ——
l’exécution. Pendant ce temps, le micro-processeur —-
Les périphériques sont beaucoup plus lents que le microprocesseur,
alors le processus doit attendre (longtemps)
que la requête soit terminée avant de poursuivre
l’exécution. Pendant ce temps, le micro-processeur ne fait rien!
Processus: état « en cours »
* Le processus contrôle le—-!
* Il le fait jusqu’à ce que: x2
- Le processus contrôle le micro-processeur!
- Il le fait jusqu’à ce que:
- l’ordonnanceur reprenne le contrôle pour pouvoir
exécuter un autre processus - il revient alors à l’état prêt
- il demande à utiliser un périphérique (entrée-sortie)
- il tombe alors dans l’état bloqué
Processus: état « bloqué »
Le processus est en —- d’un périphérique
(entrée-sortie)
* Lorsque le périphérique a terminé la requête,x2
Le processus est en attente d’un périphérique
(entrée-sortie)
* Lorsque le périphérique a terminé la requête,
* il soulève une interruption pour indiquer au système
d’exploitation qu’il a terminé la requête.
* le système d’exploitation remet alors le processus dans
l’état prêt.