Alian Web Server
carre_transparent.gif (42 octets) carre_transparent.gif (42 octets) carre_transparent.gif (42 octets) carre_transparent.gif (42 octets) carre_transparent.gif (42 octets)
    Retour au sommaireAlian
Rubrique informatique
Théorie des systèmes d'exploitation
    - 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.

   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Sommaire Haut de page

 

Définitions

1 - Programme :

C'est une entité purement statique associée à la suite des instructions qui la composent .

2 - Processus

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 .

3 - Etats d'un processus

  • En execution signifie que le processus dispose du processeur à cet instant là .
  • Prêt signifie que le processus est en attente du processeur
  • En attente signifie en attente de ressources autre que le processeur .

C'est le système d'exploitation qui détermine et modifie l'état d'un processus sous l'effet des évenements .

4 - Ressources

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 :

  1. Matérielles, telles que l'U.C., la ROM, le disque, les disquettes .... dispositif physique
  2. Logicielles, telles que compilateur, ASM, éditeur .

5 - Classe 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 :

  • Demander
  • Allouer (peut être assimiler à demander)
  • Utiliser (peut prendre des formes spécifiques à la ressource)
  • Libérer
     

Structure d'un processus : BCP

   

Sommaire Haut de page

 

Un processus est représenté par une structure appelé BCP (Block Control Processus) cad bloc de controle de processus . Le BCP contient :

  • Etat du processus
  • Numéro qui le désigne et le distingue des autres processus du système
  • La valeur ou le compteur ordinal qui indique l'adresse de la prochaine instruction executée par le processus .
  • Les registres : c'est une structure de données concernant l'execution du processus

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 :

  • Les informations relatives à la quantité mémoire allouée au processus et les pointeurs vers ces zones mémoires
  • Des informations qualitatives définies par le temps d'unité central utilisé, et le temps restant autorisé
  • Des informations relatives aux opérations d'E/S du processus tel que : Périphériques alloués, opération en attente de complétion, fichiers ouverts, ...
  • Des informations concernant les files d'attente où figure le processus tel que le numéro de priorité, des pointeurs vers des files d'attente, ...

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 .

   

Opération sur un processus

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Sommaire Haut de page

 

C'est l'ensemble des opérations qui permettent de créer et de manipuler les processus . L'ensemble de ces opérations comprend :

  1. Création
  2. Destruction
  3. Mise en attente / Réveiller
  4. Suspendre / Reprendre
  5. Changement de priorité

1 - Création

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.

2 - Destruction

Un processus fils nouvellement créer peut se terminer de différentes façons :

  • Il se termine normallement après l'éxecution de la dernière instruction du programme associé .
  • Il peut executer une instruction d'auto-destruction Ex : exit(...).
  • Un processus peut-être détruit par un autre processus Ex : kill(...)

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 :

  1. La libération des ressources qui lui avait été affecté .
  2. Le BCP est effacé . Il disparait de la table et des files d'attente du système .

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.

4 - Suspendre / Reprendre

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é.

5 - Changement de priorité

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
   
     

Phase de processus : Calcul scientifique et E/S

 

Sommaire Haut de page

 

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.

     

Ordonnancement et file d'attente

 

Sommaire Haut de page

 

1 - Définition

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 :

2 - File d'attente

  • Lorsque différents processus demandent l'allocation d'une ressource, ces processus doivent attendre
  • Pour garder trace des process en attente le système d'exploitation gère un file d'attente associée à chaque ressource
  • Lorsqu'une ressource redevient disponible, le système d'exploitation doit être capable en fonctions de critères bien déterminés de selectionner le bon processus et de lui affecter la ressource . Ce choix dépend de la politique d'ordonnancement

3 - Types d'ordonnanceurs :

a) ordonnanceur à long terme (job scheduler) :

Il détermine si un processus utilisateur qui le demande peut entrer dans le système. Cette décision dépend d'informations sur le système à l'instant considéré.

b) ordonnanceur de l'UC (cpu scheduler)

Il a pour tâche de choisisr dans la file d'attente de l'UC le processus a qui sera attribué l'UC . Celui-ci est activé au bout d'une période maximale qui correspond à la phase de calcul. Cette période à un ordre de grandeur de 10 ms.

c) ordonnanceur à moyen terme (medium term scheduler)

Il a pour tâche de déterminer quel processus rangé temporairement sur le disque peut accéder à la mémoire centrale.

     
Retour Haut de page Suite Sommaire