Télécharger la présentation
1
Théorie Système Exploitation
CPI 2004 Les Processus Philippe Bancquart
2
Plan des systèmes d’exploitation
Création et suppression des processus Ordonnancement des processus (scheduling) Mécanisme de synchronisation entre processus Traitement des interblocages.
3
Processus : Est l'activité résultant de l'exécution d'un programme séquentiel, avec ses données, par un processeur. Un processus Un processus est l'exécution d'un programme à un instant donné. La composition : Espace adressable Des variables globales Descripteurs de fichiers Gestion de signaux Compteur ordinal Pile En tête : description Programme Instruction langage machine partie fixe Données variables, constantes taille variable Pile Varie selon l’imbrication des appels de fonctions
4
Programme et Processus
Entité purement statique associé à la suite des instructions qui la composent Processus Entité purement dynamique associé à la suite des actions réalisés par un programme
5
Sous Processus et threads
Chaque thread possède son propre mot d'état, son propre contexte du processeur mais partage le même segment de code et de données que le processus. Comme les threads partagent le même segment de données il faut faire très attention, lorsqu'on les programme, pour éviter tout conflit et incohérence dans leur exécution.
6
Threads Espaces d’adressage distincts = forte limitation des processus. Exemple du traitement de texte : Deux actions simultanées sur les mêmes données Caractères entrés au clavier Ecriture disque Correcteur orthographique activé au fur et à mesure de la frappe
7
Processus ≠ Threads PC Espace adressage Registres Variables globales
Informations locales à un processus : Espace adressage Variables globales Descripteurs de fichiers Signaux … Informations locales à un thread : PC Registres Pile Etat
8
Prêt (READY) signifie que le processus est en attente du processeur
Etats d'un processus En exécution (RUNNING) : signifie que le processus dispose du processeur à cet instant là . Prêt (READY) signifie que le processus est en attente du processeur En attente (SLEEP) 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 événements .
9
Etats d'un processus
10
Structure d'un processus : BCP ou PCB
Un processus est représenté par une structure appelé BCP (Block Control Processus) : Etat du processus (prêt, exécution) Un 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 exécutée par le processus . Les registres : c'est une structure de données concernant l‘exécution du processus
11
Structure d'un 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, ...
12
UC pour plusieurs processus
13
Opération sur un 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 Création Destruction Mise en attente / Réveiller Suspendre / Reprendre Changement de priorité
14
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'exécuter des processus en parallèles
15
Création d’un Processus
Création de processus permanents au démarrage du système (démons) , cron (séquencement de tâches, Unix),… Création d’un processus par un autre processus Hiérarchie de processus = groupe. fork (appel système Unix): processus fils, copie exacte du processus père (même programme, mêmes données, mêmes fichiers, mêmes variables d’environnement…), mais espaces d’adressage différents, en pratique, le processeur fils pointe sur les données du processus père, et la copie d’une adresse n’a lieu qu’en cas d’écriture, puis exécution de l’appel système exec pour charger en mémoire le nouveau programme.
16
Création d’un Processus
Après appel de fork, comment les processus font-ils pour savoir s’ils sont père ou fils ? Chaque processus a un identifiant (PID), fork renvoie 0 au fils, et le PID du fils au père, Le programme du processus père peut alors exploiter cette valeur.
17
Destruction : Il se termine normalement après l'exécution de la dernière instruction du programme associé . Il peut exécuter 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 : La libération des ressources qui lui avait été affecté . Le BCP est effacé . Il disparaît de la table et des files d'attente du système .
18
Mettre en attente et réveiller
Utilisé lorsqu'un processus a besoin de ressources autre que l'unité centrale (le processeur). Pour poursuivre son exé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.
19
Suspendre / Reprendre Il s'agit d'un retrait temporaire ou passager d'un processus . L'opération emmè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é.
20
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
21
Ordonnancement et file d'attente
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 :
22
Ordonnancement Le Système d'Exploitation doit choisir le processus à exécuter. C’est l’Ordonnanceur (scheduler) qui doit choisir le processus. Il doit faire son choix en fonction de : Equité (assurer que chaque processus reçoit sa part du temps processeur), efficacité (utiliser le temps processeur à 100%), temps de réponse (minimiser le temps de réponse pour les utilisateurs en mode interactif), temps d’exécution (minimiser le temps de réponse pour les qui travaille par lots), rendement (maximiser le nombre de travaux effectués en une heure).
23
Tourniquet (round robin)
Chaque processus possède un intervalle de temps « quantum » pendant lequel il est autorisé à tourner, ceci régulièrement sauf s’il est en E/S dans ce cas on passe à un autre. La difficulté est de régler le quantum, une table garde les processus prêts, la commutation prend du temps (sauvegarde registre, mappage mémoire, etc). Cette commutation de contexte prend par exemple 5ms, le quantum 20ms, donc 20% du temps est gâché pour la gestion du système (overhead). On peut augmenter le quantum à 500ms, mais dans ce cas si 10 utilisateurs tapent simultanément sur « return » le premier tourne ½ seconde, le 10eme au bout de 5s. Un bon compromis est 200 ms.
24
quantum
25
Priorité Chaque processus possède un niveau de priorité, on lance le processus avec la priorité la plus forte. Mais pour empêcher d’exécuter les processus avec priorités élevées, l’Ordonnanceur diminue à chaque top horloge cette priorité. Sous Unix commande (nice) Gestion dynamique, où la priorité est 1/f , f étant le quantum utilisé lors de la dernière utilisation. Cas où des process font beaucoup d’E/S. Exemple 2ms p=50 , 50msp=2, 100p=1 Généralement les processus sont groupés par classes de priorité.
26
priorité
27
Ordonnancement Ordonnancement du plus court.
On donne préférence au processus les plus courts, ceci étant fait par des estimations issues du passé, et des calculs de moyenne pondérée. Ordonnancement garanti Le principe st de donné de façon équitable dans ce cas aux utilisateurs, en fonction du paramètre UC. Dans le cas du temps réel, un processus qui doit se terminer dans les 10S et plus prioritaire que celui dans 10mn.
28
Exemple d’ordonnancement
Dans un système de traitement par lots, les processus sont exécutés l’un à la suite de l’autre selon l’ordre d’arrivée. Dans un système en temps partagé, le processeur est alloué à chaque processus pendant au plus un quantum de temps. Au bout de ce quantum, le processeur est alloué à un autre processus. Un système multiprogrammé gère le partage des ressources (mémoire, processeur, périphériques…) de l’ordinateur entre plusieurs programmes chargés en mémoire.
29
Critères d’Ordonnancement
Utilisation du processeur: maximiser l’utilisation du processeur. Débit des processus: maximiser le nombre de processus qui terminent leur exécution par seconde. Temps total d’exécution d’un processus. Temps d’attente d’un processus (dans la Ready Queue). Délai de réponse (commandes interactives).
30
Algorithmes d’Ordonnancement
Selon les applications de l’ordinateur, on utilise différents algorithmes:
31
First Come, First Served (FCFS)
Le processus «choisi» comme actif est celui qui se trouve le plus anciennement dans la liste des processus éligibles Ordonnanceur non préemptif Simple à implémenter Peu performant
32
Shortest Job First (SJF)
Le processus «choisi» comme actif est celui qui va consommer le moins de temps processeur difficile à prévenir l’avenir Effectuer des estimations à partir du « passé » Ordonnanceur non préemptif Difficile à implémenter Le meilleur ordonnanceur non préemptif
33
Priorité Affecter à chaque processus une priorité
Priorité fixe : statique Priorité variable : dynamique Affectation de la priorité : Décidé par l’administrateur En fonction des ressources demandés par le processus Préemptif/Non préemptif
34
Round-Robin Une période de temps (quantum)
processeur est allouée à chaque processus Allocation cyclique Partage de temps (time sharing) Le quantum de temps Fixé par l’administrateur Peut varier selon la priorité du processus
35
Algorithmes d’ordonnancement
36
Systèmes préemptifs Dans les systèmes d'exploitation préemptifs, l'ordonnanceur a la possibilité d'interrompre de lui- même le processus en cours d'exécution (sur déclenchement d'une interruption horloge) pour attribuer le processeur à un autre processus, alors que dans les systèmes d'exploitation non préemptifs, c'est au processus courant de rendre la main à l'ordonnanceur.
37
Ordonnancement peut être
Non préemptif : un processus s ’exécute jusqu ’à ce qu ’il se termine ou se bloque en attente d ’un évenement extérieur Préemptif : un processus peut être interrompu à tout moment de son éxécution pour laisser le cpu à un autre.
38
Processus Windows Processus Windows - Introduction
Windows est architecturé en services (processus) fonctionnant en arrière-plan. Il est possible d'afficher la liste des processus en cours dans le gestionnaire des tâches en appuyant simultanément sur «CTRL+ALT+Suppr», puis en cliquant sur l'onglet Processus. l'appelant dans le menu démarrer / exécuter avec la commande taskmgr.exe. La fenêtre affiche alors la liste des processus en cours d'exécution et les ressources qui leur sont alloués. La présence de vers, virus, et chevaux de Troie sur le système est généralement trahie par la présence de processus suspects.
39
Le gestionnaire des tâches
Applications: permet de voir les applications en cours de fonctionnement et d'agir sur ces dernières en activant le menu contextuel avec le bouton droit. Processus :permet de voir la liste des processus en cours d'exécution et de donner des informations relatives àleur fonctionnement Performances: donne des représentations graphiques de l'utilisation du processeur et du fichier d'échange Mise en réseau: donne des statistiques d'utilisation de la bande passante sur les interfaces réseaux de l'ordinateur Utilisateurs :affiche des informations sur les utilisateurs ayant accès à l'ordinateur et le statut des sessions.
40
Gestionnaire des tâches :Applications
Applications: Il est alors possible de: Basculer vers la tâche Mettre fin à la tâche Réduire la fenêtre de la tâche Agrandir la fenêtre de la tâche Mettre la tâche au premier plan Afficher le processus correspondant à la tâche
41
Gestionnaire des tâches :Processus
Par défaut le gestionnaire des tâches affiche les informations suivantes: Nom de l'image (nom de l'exécutable) Nom de l'utilisateur Processeur Util. Mémoire Il est possible d'afficher d'autres indicateurs, parmi les 25 indicateurs disponibles, en allant dans «Affichage / Sélectionner les colonnes»
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.