processus
015, AG 2021015, AG 2021
Processus
– Définition
– Modélisation
– Descripteur
– État
– Création
– Destruction
– Allocation de ressources
G 2021 AG 2021
Processus UNIX - GNU/Linux
– Modèle
– Création
– Terminaison
– Recouvrement
015, AG 2021015, AG 2021
Communication avec un processus
– Les fichiers standards
– Redirections
– Signaux
G 2021 AG 2021
Communications entre processus
– Signaux
– Tubes
– Tubes nommés
– Inter-Processus Communications
015, AG 2021015, AG 2021
Processus et Gestion de processus
Communication Comm. Inter.
Thread
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
G 2021 AG 2021
Processus et Gestion de processus
Communication Comm. Inter.
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
015, AG 2021015, AG 2021
Modèles de processus
Communication Comm. Inter.
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, ...
G 2021 AG 2021
Modèles de processus Windows 7
Communication Comm. Inter.
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é
015, AG 2021015, AG 2021
Modèles de processus Windows 7
Communication Comm. Inter.
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/en- us/library/ms681917%28v=vs.85%29.aspx
G 2021 AG 2021
Modèles de processus UNIX
Communication Comm. Inter.
Modèle conçu dans les années 1970
Evolution avec les différentes versions du système UNIX puis GNU/Linux
Caractéristiques :
– Espace virtuel propre
– Segmenté : plusieurs segments
– Segments partageables
– Identifiants de processus et de processus père uniques
015, AG 2021015, AG 2021
processus
Communication Comm. Inter.
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
G 2021 AG 2021
États d'un processus
Communication Comm. Inter.
Dans tous les SE un processus 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
015, AG 2021015, AG 2021
Diagramme d'états
Communication Comm. Inter.
Activable
Actif Bloqué
G 2021 AG 2021
Diagramme d'états
Communication Comm. Inter.
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
– …
015, AG 2021015, AG 2021
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
À 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
Communication Comm. Inter.
G 2021 AG 2021
Processus : terminaison
Communication Comm. Inter.
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
015, AG 2021015, AG 2021
Allocation de ressources
Communication Comm. Inter.
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
G 2021 AG 2021
Allocation statique
Communication Comm. Inter.
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];
for (int 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
015, AG 2021015, AG 2021
Allocation dynamique
Communication Comm. Inter.
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
G 2021 AG 2021
Allocation du processeur
Communication Comm. Inter.
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
015, AG 2021015, AG 2021
Allocation du processeur : temps partagé
Communication Comm. Inter.
É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
G 2021 AG 2021
Allocation du processeur : priorité
Communication Comm. Inter.
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
015, AG 2021015, AG 2021
Allocation du processeur : priorité
Communication Comm. Inter.
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
G 2021 AG 2021
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
Communication Comm. Inter.