Documente Academic
Documente Profesional
Documente Cultură
I. Notion de processus
I.1 Introduction
Si la durée d'exécution des séquences est assez petite, les UT auront l'impression que
les 2 pgms s'exécutent en parallèle On parle alors de pseudo-parallélisme.
1
I.3 Concept de TACHE et concept de JOB
* On utilise parfois le terme tâche (TASK) pour faire référence à une entité
multithread alors que processus lourd fait référence à une tâche dotée d'1 seul
thread. Il arrive d'utiliser l'expression processus léger pour désigner un thread.
* Sur les premiers systèmes par lots, le terme JOB (travail) était utilisé pour faire
référence à 1 ou plusieurs pgms exécutés de manière séquentielle et traités par le
système comme une entité unique.
* Un job en cours d'exécution est un processus C'est pourquoi, il arrive que les
termes soient employés indifféremment.
* Compétition :
- Situation dans laquelle plusieurs processus doivent utiliser simultanément
une ressource à accès exclusif (i.e : ressource ne pouvant être utilisée que par un seul
processus à la fois).
- Eg. : . Processeur (cas du pseudo-parallélisme) ;
. Imprimante.
- Une solution possible : Faire attendre le processus demandeurs que l'occupant
actuel ait fini.
* Coopération :
- Situation dans laquelle plusieurs processus collaborent à une tâche commune et
doivent se synchroniser pour réaliser cette tâche.
- Eg. : . P1 produit un fichier ; P2 imprime le fichier
. P1 met à jour un fichier ; P2 consulte le fichier.
- La synchronisation se ramène au cas suivant : Un processus doit attendre qu'un
autre processus ait franchi un certain point de son exécution.
2
Dans les 2 types de relations (compétition ou coopération), on est conduit à faire
attendre un processus.
* 1 processus peut se trouver dans différents états, suivant qu'il dispose de tout
ou partie des ressources dont il a besoin pour s'exécuter.
* La ressource processeur doit être distingué de l'ensemble des autres ressources : S'il
manque une ressource autre que le processeur, celui-ci ne peut faire évoluer le
processus Il est inutile que cette ressource chère lui soit allouée.
* Il est nécessaire de bloquer un processus qui n'a pas toutes les ressources dont il a
besoin pour s'exécuter, dans l'attente que ces ressources soient disponibles.
Actif
3
Bloqué Prêt4
* Les transitions entre les états Actif & Prêt sont provoquées par un module du SE
(au niveau le plus bas), appelé ordonnanceur de processus (Scheduler). Si plusieurs
processus sont prêts, l'ordonnanceur doit donc choisir le processus à exécuter ;
l'algorithme utilisé est l'algorithme d'ordonnancement. Un ordonnanceur doit faire
face à 2 pbs principaux :
- Le choix du processus à exécuter, et
- Le temps d'allocation du processeur au processus choisi.
* Critères d'ordonnancement :
- Equité : Chaque processus doit avoir du temps processus ;
3
- Efficacité : Le processeur doit être utilisé à 100 % (% d'utilisation de l'UC à
maximiser) ;
- Temps de réponse : L'UT devant sa machine ne doit pas trop attendre (à minimiser
pour les UT en mode interactif) ;
- Temps d'exécution : Une séquence d'instructions ne doit pas trop durer (minimiser
l'attente pour les UT en mode batch) ;
- Rendement : Il faut faire le plus de chose en une heure.
* Sur les systèmes interactifs actuels, c'est l'ordonnancement préemptif qui est utilisé
L'ordonnanceur peut préempter 1 processus avant qu'il se bloque ou se termine,
afin d'attribuer l'UC à 1 autre processus.
4
- Si un processus s'exécute toujours au bout de son quantum, le
processeur est réquisitionné et alloué à 1 autre processus. Si, par
contre, le processus se bloque ou se termine avant la fin de son
quantum, le processeur est immédiatement alloué à 1 autre processus.
- Cet algo est facile à réaliser : L'ordonnanceur doit mémoriser une liste
des processus prêts & lorsque son quantum est épuisé, le processus en
cours est mis à la fin de la liste.
- Pb : Choix de la durée du quantum.
a) Exclusion mutuelle :
5
Il doit exister 1 limite au nbre de fois que l’on permet à d’autres processus à entrer
dans leurs SCs après qu’1 processus a effectué 1 requête pour entrer dans sa SC et
avant que la requête ne soit accordée.
Nous supposons que chaque processus s’exécute à 1 vitesse <> 0. Cependant, nous ne
pouvons effectuer aucune supposition concernant la vitesse relative des n processus.
6
Fin
Exercice : Montrer que cette solution est correcte.
Nous devons démontrer que :
1. L’exclusion mutuelle est préservée ;
Utilisation :
P faux ;
// entrée
E : TAS(p) ;
Aller à E ;
//SC
//sortie
P faux
Ré-écriture de TAS :
TAS(p : booléen) : booléen
Début
Si (p) alors TAS vrai sinon p vrai ; TAS faux finsi
Fin
Usage :
P faux ;
……………….
Tque (TAS(p)) faire ftque
SC
P faux ;
…………….
3.3 Exclusion mutuelle par attente passive :
Les solutions basées sur l’attente active testent si 1 processus peut entrer en SC ; le processus
exécute 1 boucle jusqu’à ce qu’il soit autorisé à entrer en SC. Cependant, l’attente active
consomme beaucoup de temps processeur.
Les techniques de l’attente passive demandent 1 certaine intervention mais évite 1 surcharge
inutile du processeur.
Ils existent 1 grand nombre de solutions pour implémenter les méthodes d’attente passive :
- Les verrous ;
- Les sémaphores ;
- Les moniteurs ;
- ………………………
D’1 point de vue formel, on peut –généralement- montrer qu’elles sont toutes équivalentes.