gif-1001 cours 14, p.1 etienne tremblay ordinateurs, structure et applications gif-1001 université...

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

Upload: lammert-fievet

Post on 04-Apr-2015

105 views

Category:

Documents


0 download

TRANSCRIPT

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

GIF-1001Cours 14, p.1

Etienne Tremblay

Ordinateurs, Structure et Applications

GIF-1001

Université Laval, Hiver 2010

Cours 14, Les processus

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

GIF-1001Cours 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 qu’un fichier sur le disque dur soit lu. Pendant ce temps, le CPU tourne à vide.

• Certains programmes ont une vitesse d’exé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 d’exploitation multi-tâches est un SE où plusieurs programmes roulent « simultanément ». Il faut rappeler que le CPU n’exécute qu’une programme à fois. L’acétate suivante montre deux façons d’exécuter plusieurs programmes « simultanément ».

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

GIF-1001Cours 14, p.3

Exécution multi-tâches (2/3)

Exécution AttenteProgramme 1

Programme 2

OS dispatcher Attente

Exécution

Attente

Exécution

Attente

Attente

Interruptsd'horloge 1quantum

Sélection deprogramme

Exécution Requête I/O Attente

Exécution

Exécution

Requête I/O

Exécution

Attente

Requête I/O

Programme 1

Programme 2

Programme 3

• Partage du CPU lors d’attente après les I/Os

• Partage du CPU dans le temps

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

GIF-1001Cours 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 d’un nouveau programme est faite.

• Il est aussi possible d’interrompre le programme qui roule avec une interruption répétitive (basée sur l’horloge du système). Lorsque cette interruption survient, le système d’exploitation 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. L’opé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 d’exploitation qui limite le temps d’exécution d’un programme afin de faire de la supervision est dit préemptif (avec réquisition en bon français). Lorsqu’il n’y pas de réquisition, les programmes s’exécutent un peu plus vite car le système d’exploitation ne revient pas continuellement. Toutefois, il ne faut pas que le programme plante…

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

GIF-1001Cours 14, p.5

Minos, un exemple simple de SEMulti-tâches (1/3)

Minos kernel

P-2

P-3

P-1

P-4

P-5

Minos Memory Map

Interface decommande

Horloge

Kernel I/O system

Tiré du manuel de cours, page 466

Minos a été créé par l’auteur du manuel de cours

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

GIF-1001Cours 14, p.6

• Minos est un système d’exploitation très simple créer par Irv Englander dans les années 1970.

• 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 d’un programme Minos place ce programme en mémoire en fonction de la requête de l’usager (détermine la priorité) et de la taille du programme. S’il ne reste pas de place, Minos demande à l’usager quel programme effacer.

• Le Kernel de Minos est situé dans le bas de la mémoire. Il gère l’interface usager et les I/Os. Il contient également le service de l’interruption d’horloge durant lequel le programme a exécuter est choisi.

Minos, un exemple simple de SE Multi-tâches (2/3)

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

GIF-1001Cours 14, p.7

Minos, un exemple simple de SEMulti-tâches (3/3)

• Minos contient une table de contrôle des programmes. C’est dans cette table qu’est enregistré toute l’information 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 d’exécution.

• Lors d’une 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é.

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

GIF-1001Cours 14, p.8

Programmes, processus et threads• Un programme est un ensemble d’instructions et de variables dont le but

est d’accomplir une tâche précise. Un programme est habituellement créé par un programmeur doté du compilateur adéquat.

• Un processus est composé d’un programme et de l’ensemble des ressources reliées à l’exé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 l’usager (ex: exécution de programme), le système d’exploitation ou un processus (un processus parent crée un processus child).

• Une thread est une partie d’un 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 d’un 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).

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

GIF-1001Cours 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

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

GIF-1001Cours 14, p.10

États des processus (1/2)

• Un processus peut être dans trois états possibles: – En cours d’exécution (running)

• processus OK, processeur OK– Prêt (suspendu provisoirement pour qu’un autre processus

s’exécute, ready)• processus OK, processeur occupé

– Bloqué ou en attente (attendant un événement ou un délais)• processus non OK, même si processeur OK

Tiré et traduit de http://asi.insa-rouen.fr/enseignement/siteUV/se/Cours/Cours-10-1.pdf

Nouveau

Bloquéou en

Attente

Prêt En cours

Terminé

Admission,Planification de

haut-niveau

Ordonnancement

Quantumterminé

Attente d'E/SAttente de temps

Requête E/Sfinie

Temps écoulé

Fin duprocessus

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

GIF-1001Cours 14, p.11

États des processus (2/2)• Lorsqu’un 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 l’exécute. Il n’y habituellement qu’un seul processus qui roule à la fois.

• Lorsque le dispatcher est appelé de nouveau, il peut décider de cesser d’exé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 qu’elles soient complétées. Il devient bloqué. D’autres processus peuvent rouler pendant que l’accès aux E/Ss se fait.

• Lorsque l’E/S est complété pour un processus donné, ce processus est remis à l’état Prêt/Ready.

• Lorsqu’un processus se termine, il est détruit, terminé ou « tué » (l’opération est moins simple qu’il n’y paraît).

• Il existe d’autres états non affichés pour les processus: suspendu (par l’usager ou par manque de ressource), en reprise (après avoir été suspendu), swap (voir plus loin).

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

GIF-1001Cours 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 l’admission 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 d’optimiser l’utilisation 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 l’usager 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.

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

GIF-1001Cours 14, p.13

Swapping • Tous les PCBs sont habituellement en mémoire parce que le

dispatcher doit avoir les informations sur les processus rapidement.• Lorsqu’un 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.

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

GIF-1001Cours 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 l’exécution Terminer le plus de processus possible

Temps d’exécution min. Temps d’exécution le plus court possible

Utilisation max du CPU Le CPU doit être utilisé au maximum

Utilisation max ressources Les ressources doivent être utilisées au max.

Détérioration graduelle Un système surchargé doit ralentir, pas planter

Temps d’attente min. Petit délai entre l’admission et l’exécution

Temps de réponse correct Tâches longues, longues et tâches courtes, courtes

Prévenir la starvation L’exécution d’un processus ne doit pas être reportée indéfiniment.

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

GIF-1001Cours 14, p.15

Algorithmes de dispatching • Les pages 5,6 et 7 de

http://asi.insa-rouen.fr/enseignement/siteUV/se/Cours/Cours-10-1.pdf du cours de monsieur Leray sont présentées en classe.

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

GIF-1001Cours 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-10-

1.pdf– William Stallings: section 8.2

• Exercices– Irv Englander: 15.2, 15.3, 15.6