![]() |
|||||
![]() |
|||||
| - II - ELEMENTS DE BASE | |||||
| 1960 : les concepteurs du système d'exploitation MULTICS ont introduit le terme de processus comme abstraction de l'activité d'un processeur. |
|||||
|
|
C'est une entité purement statique associée à la suite des instructions qui la composent . C'est une entité purement dynamique associée à la suite des actions réalisées par un programme . La notion de processus introduit implicitement le concept et le fonctionnement des systèmes multi-programmé . Un processus est une abstraction de données définies par 2 parties : un état et un comportement .
C'est le système d'exploitation qui détermine et modifie l'état d'un processus sous l'effet des évenements . On appelle ressource les éléments qui contribuent à la progression des procédures . A chaque ressource est associée un ensemble d'opérations d'accès qui permettent de l'utiliser et un ensemble de règles d'utilisation qui constituent les conditions d'emploi . Il y a 2 sortes de ressources :
On appelle classe de ressources un couple constitué d'une collection d'éléments regroupés sous un nom commun et de l'ensemble des opérations que l'on peut lui appliquer . Plus précisement, la classification des ressources dépend du contexte . Les classes de ressources d'un système d'exploitation possèdent les opérations communes suivantes :
|
||||
| Un processus est représenté par une structure appelé BCP (Block Control Processus) cad bloc de controle de processus . Le BCP contient :
Les registres et le compteur ordinal est sauvegardé lorsque le processus quitte l'état "En execution" et seront rechargés une fois que le processus revient à son état de "En execution". Le BCP contient également :
Plus précisemment un BCP contient toutes les informations d'un processus qu'il faut sauvegarder pour permettre la reprise ultérieure de l'éxécution de ce processus . |
|||||
|
|
C'est l'ensemble des opérations qui permettent de créer et de manipuler les processus . L'ensemble de ces opérations comprend :
Un processus peut en créer un autre. Le premier est appelé père et le second fils. Le processus peut à son tour créer d'autres processus. Il devient le père de ses processus ... Ainsi on construit un graphe des autres processus ou figure une racine Dans le système Unix de nouveaux processus sont créés par une primitive du système d'exploitation -> fork() La combinaison de fork() et d'exec() permet d'éxécuter des processus en parallèles. Un processus fils nouvellement créer peut se terminer de différentes façons :
La relation hiérarchique entre un processus et ses descendants est utilisé essentiellement pour contrôler la destruction des processus. Généralement la destruction d'un processus entraine :
3 - Mettre en attente et réveiller Utilisé lorsqu'un processus a besoin de ressources autre que l'unité centrale (le processeur). Pour poursuivre son éxécution il est alors placé par le système dans l'état en attente. Comment un scheduler sait-il qu'un processus demande une ressource ? Lorsque plus tard le système d'exploitation est en mesure de lui affecter la ressource demandée il réveille le processus en attente et le met dans l'état prêt. Cela signifie que le processus dispose maintenant de la totalité des ressources sauf le micro-processeur. Il s'agit d'un retrait temporaire ou passager d'un processus . L'oération ammène un processus d'un état quelconque à l'état suspendu . Lorsque la reprise intervient le processus passe de l'état suspendu vers l'état prêt ou en attente . Les systèmes d'exploitation ne laissent jamais trop longtemps un processus dans l'état suspendu par souci d'équité. Il se fait en modifiant l'état du champ correspondant dans le BCP. Cette opération est effectuée par le système d'exploitation. |
||||
| Diagramme d'état | |||||
|
|||||
| La vie d'un processus se décompose en alternance de période d'utilisation du micro-processeur et de période d'accomplissement d'opérations d'E/S. On appelle la première phase de calcul et la seconde phase d'E/S. Des études ont montré que la mojorité des processus ont des phase de calcul très courtes et des phase d'E/S très longues. Exemple : Les systèmes interactifs (traitement de texte) ont des phases d'E/S très longues par rapport aux phases de calcul. Les sytèmes scientifiques ont par contre des phase de calcul extrèmement longues. |
|||||
|
Dans un système multi-programmé mono-processeur on définit une procédure système, l'ordonnanceur qui définit l'ordre dans lequel les processus "prêts" accèdent à la ressource UC et la durée pendant laquelle ils l'utilisent. Le terme ordonnanceur a un sens plus large parce qu'il peut désigner une processus qui demande des ressources telles que :
a) ordonnanceur à long terme (job scheduler) :
b) ordonnanceur de l'UC (cpu scheduler)
c) ordonnanceur à moyen terme (medium term scheduler)
|
|||||
| Dernière modification le Tue Dec 31 18:56:01 2002 |
Alain et Estelle Barbet Textes et images © 1997-2003 |