Processus et gestion de processus
et gestion de processus Processus Définition Modélisation Descripteur État Création Destruction Allocation de ressources
UNIX Processus UNIX - Modèle Création Terminaison Recouvrement
UNIX avec un processus Les fichiers standard Redirections Signaux
UNIX s entre processus Signaux Tubes Tubes nommés Inter-Processus s
Thread Processus et Gestion de processus Définition : un processus est l image mémoire de l'exécution d'un programme ou fichier binaire Programme ou fichier binaire : Objet statique Contenu identique dans le temps Les variables n'ont pas de valeur Les fichiers ne sont ni lus ni écrits
Processus et Gestion de processus Processus : Chargement en mémoire du contenu d'un fichier binaire Variables initialisées Tableaux créés par allocation de mémoire Fichiers lus, écrits Variable tout au long de son exécution Dynamique
Processus Modèles de processus Chaque système d'exploitation met en œuvre son modèle de processus Processus de Windows 7 processus Linux Pour des versions différentes du même SE le modèle de processus peut-être différent Taille maximale de la mémoire utilisable Taille des pointeurs Taille des tableaux Propriétaire, droits État,...
Modèles de processus Windows 7 Un nouveau modèle a été créé avec Vista : Virtual immersive science and technology application Caractéristiques : Un espace d'adressage virtuel propre Un code exécutable Des descripteurs d'accès aux objets systèmes ouverts Un contexte de sécurité
Processus Modèles de processus Windows 7 Caractéristiques : Un identifiant de processus Des variables d'environnement Une classe de priorité Un ensemble minimum et maximum de pages virtuelles de travail Orienté thread Moderne Référence : http://msdn.microsoft.com/enus/library/ms681917%28v=vs.85%29.aspx
Modèles de processus UNIX Modèle conçu dans les années 1970 Evolution avec les différentes versions du système UNIX puis Caractéristiques : Espace virtuel propre Segmenté : plusieurs segments Segments partageables Identifiants de processus et de processus père uniques
Descripteur de processus et table de processus Descripteur du processus : ensemble des informations caractérisant un processus Table des descripteurs de processus : ensemble des descripteurs Table utilisée à : Création Destruction Allocation du processeur Modification de l'état
États d'un processus Dans tous les SE un système peut-être dans les trois états principaux suivants : Actif : un processeur lui a été attribué et il exécute une partie de son code Activable : il est prêt à être exécuté, il dispose de toutes les ressources nécessaires hormis un processeur En attente ou bloqué : un événement extérieur, une ressource est/sont nécessaire(s) à son exécution Le nombre réels d'états varie suivant les SE
Diagramme d'états Activable Actif Bloqué
Processus Diagramme d'états Activable Actif : attribution d'un processeur Actif Activable : perte du processeur en temps partagé par exemple Actif Bloqué : le processus se met ou est mis en attente d'un événement extérieur Fin d'une opération d'e/s Attente d'un signal Allocation de mémoire Bloqué Activable : l'événement attendu s'est produit
Processus Processus : création Dans les systèmes modernes, multi-tâches, la création de processus est dynamique Primitive système permettant de créer un processus A la création d'un processus le SE doit Créer un nouveau descripteur Trouver les ressources nécessaires à son exécution : mémoire, périphériques,, sauf le processeur Insérer le processus dans la liste des tâches à exécuter pour lui attribuer un processeur
Processus : terminaison Un processus peut se terminer Il arrive à la fin de son code : terminaison normale Par action du SE : il a commis une faute Dans tous les cas le SE doit : Libérer les ressources qui avait été attribuées Détruire le descripteur du processus
Allocation de ressources L'allocation de ressources est une partie très importante dans l'écriture d'un SE Détermine en grande partie la qualité du système Deux stratégies : Statique : toutes les ressources sont attribuées à la création Dynamique : elles sont attribuées au moment de leur utilisation
Processus Allocation statique Garantie qu'un processus pourra s'exécuter Simple à mettre en œuvre Monopolisation de ressources pas forcément utilisées : int t[1 000 000 000], i ; for ( i =0 ; i < 100 ; i++) t[i] = 0 ; return 0 ; Peut interdire l'exécution d'une tâche en raison d'une ressource indisponible Réservée aux systèmes mono-tâches
Allocation dynamique La ressource n'est allouée au processus qu'au moment de son utilisation Pas de gaspillage de ressources Intervention du système durant l'exécution de la tâche Ralentissement Très utilisée dans les systèmes multi-tâches Difficultés en raison des différentes stratégies à mettre en œuvre selon les ressources
Allocation du processeur Allocation préemptive : Le système alloue le processeur à un processus et peut lui retirer à tout moment Le mécanisme d'interruption garanti que le SE va s'exécuter même si la tâche en cours monopolise le processeur Interruption sur fin d'opération d'e/s Interruption d'horloge
Allocation du processeur : temps partagé Équitable : chaque processus reçoit le processeur durant un quantum de temps ( 1/50 ème de seconde ) Quantum : très court pour donner l'impression d'une exécution continue Un processus peut épuiser son quantum ou perdre le processeur s'il se met en attente d'un événement extérieur Pas de famine : garantie d'exécution
Allocation du processeur : priorité Non équitable : lorsque le SE cherche à allouer le processeur le processus de priorité la plus élevée reçoit le processeur. Il le conserve jusqu'au moment ou il décide de l'abandonner, qu'il se met en attente d'un événement extérieur ou qu'il n'a plus la priorité la plus élevée
Allocation du processeur : priorité Priorité : P = f ( identifiant prop, ressources,...) Le mécanisme d'interruption permet au SE d'examiner les changements de condition Famine possible : une tâche peut n'être jamais exécutée
Processus Allocation du processeur : contexte Lorsqu'un processus perd le processeur l'état de la machine doit être sauvegardé afin d'être restauré lors de la reprise du processus L'ensemble des informations nécessaires est appelé contexte du processus Suivant les machines cette opération peut être très coûteuse en temps et des instructions spécifiques peuvent être disponibles pour accélérer les opérations Le contexte est étroitement lié au modèle de processus