260 likes | 545 Views
Chapitre 01. Rappel // Basé sur le cours de Dr. Jaber Jemai. Rappel. Systèmes d’exploitation Avancées. Définitions Processus / Threads Intérruption / Préemption / Déroutement Le modèle des processus L’arborescence Le PCB Les états d’un processus Commutation de contexte
E N D
Chapitre 01 Rappel// Basé sur le cours de Dr. JaberJemai
Rappel Systèmes d’exploitation Avancées • Définitions • Processus / Threads • Intérruption / Préemption / Déroutement • Le modèle des processus • L’arborescence • Le PCB • Les états d’un processus • Commutation de contexte • Ordonnancement des processus
Pile d’exécution (fonctions) Segment de code (instructions en langage machine) Segment de données (les variables) Composantes d’un processus Définition: Processus • Le processus est un concept fondamental de tout système d’exploitation. Un processus est l’unité système qui permet l’exécution d’un programme. • Un processus est un programme en exécution. Il définit un objet dynamique tandis que le programme est un objet statique. • Un processus est caractérisé par son pointeur de pile, ses instructions et ses données, … Ces attributs définissent le contexte d’un processus.
Disque Exemple: traitement de texte multi-threaded: t3 t1 Absbjshd Dnddjkjdq Hqdjlqdjl Jddmkm Djdlqjdjdq djdqkmkd Absbjshd Dnddjkjdq Hqdjlqdjl Jddmkm Djdlqjdjdq djdqkmkd Absbjshd Dnddjkjdq Hqdjlqdjl Jddmkm Djdlqjdjdq djdqkmkd t2 clavier Définition: Thread • Un thread ou encore processus léger (lightweight process) est une unité d’exécution de code. il est issu d’un processus mais ne contenant que la pile d’exécution. • Un processus contient donc au moins un thread de contrôle unique en plus de l’espace d’adressage (segments code et données). • Thread 1: remet en forme le document • Thread 2: interaction avec l’utilisateur • Thread 3: écrit périodiquement le contenu de la RAM sur le disque
Aspects matériels: Interruptions 1. Le périphérique a terminé son E/S Processeur Contrôleur d’interruptions 4. Le processeur acquite l’interrupt. Disque 2. Interruption Clavier Horloge 3. Description de l’interruption Comment se produit une interruption? Les interruptions constituent une concept fondamental des systèmes d’exploitation. Une interruption est signal produit par un périphérique et envoyé vers le processeur pour l’informer de la fin d’une E/S, la production d’une erreur …
Intérruption / Préemption / Déroutement Une interruption est signal produit par un périphériques et envoyé vers le processeur pour l’informer de la fin d’une E/S, la production d’une erreur … La préemption est la capacité d’un système d’exploitation multitâche à exécuter ou stopper une tache planifié en cours d’exécution en faveur d’une autre tache Déroutement : produit par une erreur interne au processus (prévisible , ex division par zéro)
Login: Mot de passe: Login: Mot de passe: … Login: Mot de passe: Terminal 1 Terminal 2 Terminal n shell ls Modèle des processus: Arborescence • Les processus sont organisés sous forme d’une arborescence ou chaque processus a un seul père et peut avoir plusieurs fils. • Un processus est identifié par un PID (ProcessIDentifier) et un PPID (Parent ProcessIDentifier). • Exemple: L’arborescence des processus sous Linux init
Modèle des processus: PCB • Chaque processus est représenté dans le système d’exploitation par une structure de données contenant toute information décrivant le contexte du processus appelé bloc de contrôle (Process Control Bloc: PCB). • Attributs d’un PCB: • PID et PPID, • État, • Priorité, • Compteur ordinal, • Fichiers ouverts, • Pointeurs: seg. code, seg. données, seg. Pile, • Temps d’exécution.
Nouveau Terminé Prêt Élu Bloqué Graphe des états d’un processus Modèle des processus: États • Lorsqu’un processus s’exécute; il change d’état. Il peut se trouver dans l’un des trois états principaux suivants: • Prêt (Ready) : le processus attend son tour pour s’exécuter • Élu (Running) : les instructions sont en cours d’exécution. • Bloqué (Sleep) : le processus bloqué en attente d’événement: signal, E/S, …
Nouveau Terminé Prêt Élu Bloqué Graphe des états d’un processus Modèle des processus: Transitions • Création du processus • Allocation du processeur • Fin du temps alloué sur le processeur, l’exécution du processus n’est pas terminée • Opération E/S • Fin opération E/S • Exécution terminée
P0 P1 Élu Inactif Sauvegarde PCB0 Recharge PCB1 Inactif Élu Sauvegarde PCB1 Recharge PCB0 Inactif Élu Modèle des processus: Commutation de contexte • Sur un système multiprogrammé, le SE doit redonner le contrôle du processeur d’un processus à un autre en effectuant des commutations de contexte. • La commutation de contexte consiste a mémoriser le PCB du processus courant et charger le PCB du processus a élire.
P1 P2 Algo. d’ordonnancement Pi CPU P3 … Pn Ordonnancement des processus Étant donnée un ensemble de processus prêts, l’Ordonnanceur (scheduler) du SE doit choisir quel processus élire en utilisant un algorithme d’ordonnancement.
Nouveau Terminé Prêt Élu Bloqué Quand invoquer l’ordonnanceur • Chaque fois que le processus exécutant est interrompu • un processus exécutant devient bloqué (4) • un processus change d’élu à prêt (3) • un processus exécutant se termine (6) • Chaque fois qu’un nouveau processus est prêt • un processus se présente en tant que nouveau (1) • un processus change de bloqué à prêt (5) • L’ordonnanceur choisi un processus parmi les processus prêts et lui alloue le processeur
Ordonnancement des processus • Un bon algorithme d’ordonnancement : • Chaque processus doit avoir sa part de temps CPU: équité. • Utiliser le temps processeur a 100%: efficacité. • Minimiser le temps de réponse en mode interactif. • Il existe deux types d’algorithmes d’ordonnancement: • Ordonnancement sans réquisition (sans préemption): exécution d’un processus jusqu’à sa terminaison. • Ordonnancement avec réquisition (avec préemption): suspension possible d’un processus élu même s’il n’a pas terminé son exécution.
Caractéristiques des algorithmes d’ordonnancement Temps de rotation = date de fin – date d’arrivée Temps rotation moyen = ∑ temps rotation / nbr processus Temps attente = temps de rotation – temps d’exécution Temps attente moyen = ∑ temps attente / nbr processus
Algorithmes Ordonnancement • Premier Arrivée Premier Servi (First Come First Served FCFS) • Exécution des processus dans leur ordre d’arrivée chronologique. • Plus Court d’Abord (Short Job First SJF): • SJF sans réquisition: • Le scheduler choisi le processus prêt ayant le plus petit temps d’exécution. Une fois un processus est élu, il n’est jamais suspendu jusqu’à la fin de son exécution. • SJF avec réquisition (Short NextRemaining Time SNRT) A chaque instant, le scheduler cherche parmi les processus prêts celui ayant le plus petit temps d’exécution restant.
http://w3.uqo.ca/luigi/ P1 P2 P3 0 24 27 30 Premier arrivé, premier servi (First come, first serve, FCFS) Exemple: ProcessusTemps de cycle P1 24 P2 3 P3 3 Si les processus arrivent au temps 0 dans l’ordre: P1 , P2 , P3 Le diagramme Gantt est: Temps de rotation pour P1=(24-0), P2=(27-0), P3=(30-0) Temps de rotation moyen : (24+27+30)/3=17 Temps d’attente pour P1= 24-0-24; P2= 27-0-3; P3= 30-0-3 Temps attente moyen: (0 + 24 + 27)/3 = 17
http://w3.uqo.ca/luigi/ P1 P2 P3 0 24 27 30 Tenir compte du temps d’arrivée! • Dans le cas où les processus arrivent à moment différents, il faut soustraire les temps d’arrivée • Exercice: répéter les calculs si: • P1 arrive à temps 0 et dure 24 • P2 arrive à temps 2 et dure 3 • P3 arrive à temps 7 et dure 3 • Donc P1 attend 0 comme avant • Mais P2 attend 24-2, etc. arrivée P2 arrivée P3
http://w3.uqo.ca/luigi/ P1 P2 P3 0 24 27 30 Tenir compte du temps d’arrivée! • Exercice: répéter les calculs si: • P1 arrive à temps 0 et dure 24 • P2 arrive à temps 2 et dure 3 • P3 arrive à temps 7 et dure 3 • FCFS • Temps de rotation moyen = (24-0)+(27-2)+(30-7) /3= 24 • Temps d’attente moyen = ((24-0-24)+(27-2-3)+(30-7-3)/3 = (0 + 22 + 20 )/3 = 14 arrivée P3 arrivée P2
http://w3.uqo.ca/luigi/ P1 P3 P2 P4 0 7 8 12 16 Exemple de SJF sans préemption • Processus ArrivéeCycle • P107 • P2 24 • P341 • P454 • SJF (sans préemption) • Temps de rotation moyen = (7-0)+(12-2)+(8-4)+(16-5) /4= 8 • Temps d’attente moyen = ((7-0-7)+(12-2-4)+(8-4-1)+(16-5-4))/4 = • (0 + 6 + 3 + 7)/4 = 4 P2 arr. P3 arr. P4arr
http://w3.uqo.ca/luigi/ Exemple de SJF avec préemption • Processus ArrivéeCycle • P107 • P2 24 • P341 • P454 • SJF (préemptive) • Temps de rotation moyen =(16-0)+(7-2) + (5-4) + (11-7) /4 = 7 • Temps moyen d`attente = (16-0-7)+(7-2-4)+(5-4-1)+(11-7-4)/4 = • (9 + 1 + 0 + 2) /4= 3 • P1 attend de 2 à 11, P2 de 4 à 5, P4 de 5 à 7 P1 P2 P3 P2 P4 P1 11 16 0 2 4 5 7 P2 arr. P3 arr. P4arr
Difficultés majeures avec les méthodes discutées • Premier arrivé, premier servi, FCFS: • Temps moyen d’attente non-optimal • Mauvaise utilisation des ressources s’il y a apport continu de processus aux cycles longs (v. effet d’accumulation) • Plus court servi, SJF: • Difficulté de prévoir la durée du prochain cycle • Famine possible des processus ‘longs’ s’il y a apport continu de processus aux cycles courts • Donc besoin d’une méthode systématiquement préemptive • Le tourniquet • si vous faites toujours les devoirs les plus courts en premier, vous pourriez avoir l’impression de faire beaucoup mais vous pourriez ne jamais arriver aux plus longs… • si vous faites les devoirs dans l’ordre d’arrivée, les longs pourraient vous bloquer pour longtemps… • donc votre solution est de donner un peu de temps à chacun, cycliquement
Algorithmes Ordonnancement • Tourniquet (Round Robin RR, l’algorithme circulaire) • Le temps processeur est diviser en intervalles de temps appelés Quantum Q, chaque processus s’exécutera exactement pendant son quantum. • Le processeur sera réquisitionner: • Le processus élu a épuisé son quantum, • Le processus élu a fini son exécution avant la fin de son quantum, • Le processus élu demande une entrée/sortie.
P1 P2 P3 P4 P1 P3 P4 P1 P3 P3 Exemple: Tourniquet tranche = 20 • ProcessusCycle • P1 53 • P2 17 • P3 68 • P4 24 • Temps de rotation ? Temps attente moyen ? • Observez • temps de rotation et temps d’attente moyens beaucoup plus élevés que SJF • mais aucun processus n’est favorisé 0 20 37 57 77 97 117 121 134 154 162
Algorithmes Ordonnancement • Ordonnancement avec priorité • Le système d’exploitation ordonne les processus prêts selon l’ordre décroissant de leurs priorités et le processus a élire est celui avec la plus haute priorité. • Les priorités utilisées peuvent être statiques ou dynamiques. • Les priorités statiques ne changent pas au cours de l’ordonnancement. • Les priorités dynamiques seront recalculées périodiquement après un intervalle de temps bien défini.
A retenir • Notions de processus et thread • PCB • Notions d’intéruption de préemption et de déroutement • Etats d’un processus • Graphe d’états & transitions • Algorithmes d’ordonnacement • FCFS, SJF, SNRT, RR, avec Priorités