La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

GIF-1001 Cours 14, p.1 Etienne Tremblay Ordinateurs, Structure et Applications GIF-1001 Université Laval, Hiver 2010 Cours 14, Les processus.

Présentations similaires


Présentation au sujet: "GIF-1001 Cours 14, p.1 Etienne Tremblay Ordinateurs, Structure et Applications GIF-1001 Université Laval, Hiver 2010 Cours 14, Les processus."— Transcription de la présentation:

1 GIF-1001 Cours 14, p.1 Etienne Tremblay Ordinateurs, Structure et Applications GIF-1001 Université Laval, Hiver 2010 Cours 14, Les processus

2 GIF-1001 Cours 14, p.2 Exécution multi-tâches (1/3) Exécuter un seul programme à la fois est une gaspille de temps et de ressource, car les programmes attendent souvent après une opération E/S. Par exemple, un programme peut attendre quun fichier sur le disque dur soit lu. Pendant ce temps, le CPU tourne à vide. Certains programmes ont une vitesse dexécution limitée par la puissance du CPU (CPU Bound), mais la plupart des programmes sont limités par de nombreux accès aux E/Ss (I/O Bound). Un système dexploitation multi-tâches est un SE où plusieurs programmes roulent « simultanément ». Il faut rappeler que le CPU nexécute quune programme à fois. Lacétate suivante montre deux façons dexécuter plusieurs programmes « simultanément ».

3 GIF-1001 Cours 14, p.3 Exécution multi-tâches (2/3) Partage du CPU lors dattente après les I/Os Partage du CPU dans le temps

4 GIF-1001 Cours 14, p.4 Exécution multi-tâches (3/3) Il est possible de changer le programme qui roule lorsque ce programme rencontre attends après des E/Ss. Lorsque le programme utilise les services de E/Ss, la sélection dun nouveau programme est faite. Il est aussi possible dinterrompre le programme qui roule avec une interruption répétitive (basée sur lhorloge du système). Lorsque cette interruption survient, le système dexploitation utilise un peut de temps de CPU afin de déterminer quel est le programme à exécuter. Chaque programme est ainsi exécuté en petits morceaux (time-slicing) de temps appelés quantum. Lopération consistant à choisir le prochain programme exécuté se nomme dispatching. Le dispatcher peut choisir le prochain programme à effectuer en fonction de plusieurs critères (priorité, temps inactif, bloqué par des E/Ss). Un système dexploitation qui limite le temps dexécution dun programme afin de faire de la supervision est dit préemptif (avec réquisition en bon français). Lorsquil ny pas de réquisition, les programmes sexécutent un peu plus vite car le système dexploitation ne revient pas continuellement. Toutefois, il ne faut pas que le programme plante…

5 GIF-1001 Cours 14, p.5 Minos, un exemple simple de SE Multi-tâches (1/3) Tiré du manuel de cours, page 466 Minos a été créé par lauteur du manuel de cours

6 GIF-1001 Cours 14, p.6 Minos est un système dexploitation très simple créer par Irv Englander dans les années Minos peut exécuter 5 programmes à la fois. Le programme dans la partition de mémoire P-1 est le plus prioritaire. Les programmes dans P-2, P-3 et P-4 ont la même priorité alors que P-5 est le moins prioritaire. Un clavier permet de charger/sauvegarder des programmes sur un ruban magnétique (lire un magnétocassette). Lors de lecture dun programme Minos place ce programme en mémoire en fonction de la requête de lusager (détermine la priorité) et de la taille du programme. Sil ne reste pas de place, Minos demande à lusager quel programme effacer. Le Kernel de Minos est situé dans le bas de la mémoire. Il gère linterface usager et les I/Os. Il contient également le service de linterruption dhorloge durant lequel le programme a exécuter est choisi. Minos, un exemple simple de SE Multi-tâches (2/3)

7 GIF-1001 Cours 14, p.7 Minos, un exemple simple de SE Multi-tâches (3/3) Minos contient une table de contrôle des programmes. Cest dans cette table quest enregistré toute linformation nécessaire au dispatching des programmes. Pour tous les programmes en mémoire, le PC du programme (léquivalent de CS:IP du 8086) est enregistré dans la table de contrôle ainsi que tous les registres du microprocesseur (A et X dans le cas de Minos, équivalents à AX et BX du 8086). La table de contrôle contient le statut de chaque programme: ces derniers peuvent être inactifs, bloqués par des I/Os, prêt ou en cours dexécution. Lors dune opération de dispatch, le kernel de Minos vérifie le statut de chaque programme et il détermine le programme à exécuté en fonction de ce statut et des priorités. Une variable sert à déterminer quel est le dernier programme de priorité moyenne à avoir été exécuté.

8 GIF-1001 Cours 14, p.8 Programmes, processus et threads Un programme est un ensemble dinstructions et de variables dont le but est daccomplir une tâche précise. Un programme est habituellement créé par un programmeur doté du compilateur adéquat. Un processus est composé dun programme et de lensemble des ressources reliées à lexécution du programme. Ces ressources incluent de la mémoire, des I/Os, des fichiers ouverts par le programme, du temps de CPU et autres. Donc processus != programme. Un processus est créé par une requête de lusager (ex: exécution de programme), le système dexploitation ou un processus (un processus parent crée un processus child). Une thread est une partie dun processus qui peut être exécutée indépendamment des autres éléments du processus. Un thread a ses propres registres (incluant PC) et sa propre pile, mais il partage le reste de ses ressources avec les autres constituant du processus. Les threads sont créés habituellement au début dun programme. Ils servent à répondre à des évènements (events) dans des programmes event-driven (exemples dévènement: click de souris, touche de clavier enfoncée, message reçu par port série).

9 GIF-1001 Cours 14, p.9 Process Control Block (PCB) Chaque processus a un block de contrôle qui le décrit. Chaque processus a un IDentifieur unique. Chaque processus peut avoir des enfants ou un père. Chaque processus a un état (voir la prochaine acétate). Chaque processus a ses registres, sa mémoire et sa pile. Chaque processus a une priorité. Les processus peuvent partager de la mémoire, des processus, des fichiers, des I/Os et autres. Process ID (PID) Pointer to parent process Pointers to child processes Process state Program Counter Registers Memory pointers Priority information Accounting information Pointers to shared ressources PCB Typique

10 GIF-1001 Cours 14, p.10 États des processus (1/2) Un processus peut être dans trois états possibles: –En cours dexécution (running) processus OK, processeur OK –Prêt (suspendu provisoirement pour quun autre processus sexécute, ready) processus OK, processeur occupé –Bloqué ou en attende (attendant un événement ou un délais) processus non OK, même si processeur OK Tiré et traduit de

11 GIF-1001 Cours 14, p.11 États des processus (2/2) Lorsquun processus est admis, il est mis dans létat Prêt/Ready par défaut. Il est prêt à être exécuté. Quand le dispatcher (pas très français mais très clair) détermine que le processus peut être exécuté, il le met en mode En Cours/Running et il lexécute. Il ny habituellement quun seul processus qui roule à la fois. Lorsque le dispatcher est appelé de nouveau, il peut décider de cesser dexécuter le processus pour en exécuter un autre. Le processus running est remis dans létat Prêt/Ready. Un processus qui roule peut faire des requêtes à des E/Ss et attendre quelles soient complétées. Il devient bloqué. Dautres processus peuvent rouler pendant que laccès aux E/Ss se fait. Lorsque lE/S est complété pour un processus donné, ce processus est remis à létat Prêt/Ready. Lorsquun processus se termine, il est détruit, terminé ou « tué » (lopération est moins simple quil ny paraît). Il existe dautres états non affichés pour les processus: suspendu (par lusager ou par manque de ressource), en reprise (après avoir été suspendu), swap (voir plus loin).

12 GIF-1001 Cours 14, p.12 Admission des processus: planification de haut niveau Il y a deux niveaux de planification par rapport aux processus. Le high level scheduler est responsable de ladmission des processus. Le dispatcher détermine quel processus est exécuté parmi les processus admis. La planification de haut niveau sert à décider quand et si un processus sera admis en fonction de la mémoire et des E/Ss disponible. Il essaie doptimiser lutilisation des E/Ss et de la mémoire. Dans un environnement interactif, le high level scheduler a un rôle moins important: les processus sont admis rapidement afin de satisfaire les demandes de lusager sans retard. Le high level scheduler devient important dans un environnement où les programmes sont exécutés en groupes et lorsque les ressources du système sont limitées.

13 GIF-1001 Cours 14, p.13 Swapping Tous les PCBs sont habituellement en mémoire parce que le dispatcher doit avoir les informations sur les processus rapidement. Lorsquun processus est inactif depuis longtemps (il est bloqué par une opération très longue par exemple), son PCB peut être mis sur le disque dur. Le PCB sur le disque dur est un swap file.

14 GIF-1001 Cours 14, p.14 Dispatching (Ordonnancement) Le dispatching consiste simplement à décider quel processus sera exécuté dans le quantum suivant. Il existe plusieurs algorithmes de dispatching présentés plus loin. Tous les algorithmes de dispatching devraient avoir les objectifs suivants: Assurer léquitéTous les processus sont traités également Maximiser lexécutionTerminer le plus de processus possible Temps dexécution min.Temps dexécution le plus court possible Utilisation max du CPULe CPU doit être utilisé au maximum Utilisation max ressourcesLes ressources doivent être utilisées au max. Détérioration graduelleUn système surchargé doit ralentir, pas planter Temps dattente min.Petit délai entre ladmission et lexécution Temps de réponse correctTâches longues, longues et tâches courtes, courtes Prévenir la starvationLexécution dun processus ne doit pas être reportée indéfiniment.

15 GIF-1001 Cours 14, p.15 Algorithmes de dispatching Les pages 5,6 et 7 de rouen.fr/enseignement/siteUV/se/Cours/Cours-10-1.pdf du cours de monsieur Leray sont présentées en classe.http://asi.insa- rouen.fr/enseignement/siteUV/se/Cours/Cours-10-1.pdf

16 GIF-1001 Cours 14, p.16 Références et exercices Références –Irv Englander: Section 13.4 et chapitre 15 jusquà 15.4 inclus. –http://asi.insa-rouen.fr/enseignement/siteUV/se/Cours/Cours pdfhttp://asi.insa-rouen.fr/enseignement/siteUV/se/Cours/Cours pdf –William Stallings: section 8.2 Exercices –Irv Englander: 15.2, 15.3, 15.6


Télécharger ppt "GIF-1001 Cours 14, p.1 Etienne Tremblay Ordinateurs, Structure et Applications GIF-1001 Université Laval, Hiver 2010 Cours 14, Les processus."

Présentations similaires


Annonces Google