Rappel // Basé sur le cours de Dr. Jaber Jemai

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

Module Systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
Le Concept du programme enregistré
Calcul géométrique avec des données incertaines
Synchronisation des processus père - fils
Types des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Ordonnancement partie I (Tanenbaum 2.5)
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitations
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Considération de temps.
GEF 435 Principes des systèmes d’exploitation
Conception et programmation Programmation Parallèle
Performances 1 Évolution : Performance. Performances 2 Évolution : Mémoire.
Des systèmes classiques aux systèmes temps réels
Plan Ordonnancement Obtention des tests de faisabilité entre processus
Mémoire & Processus Cours SE - SRC
Ordonnancement des mouvements de deux robots
Ordonnancement du CPU Concepts de Base Critères d’Ordonnancement
Ordonnancement Processus
                                        République Algérienne Démocratique et Populaire Ministère de l’Enseignement Supérieur et de la Recherche Scientifique.
Qu’est-ce qu’un ordinateur ?
ARCHITECTURE GLOBALE CAPTAGE Traitement DES des données GRANDEURS
6.1 URDL22005 Systèmes dexploitation Ordonnancement du CPU Concepts de Base Critères dOrdonnancement Algorithmes dOrdonnancement Ordonnancement Multi-Processeur.
Module 4 - Ordonnancement Processus
Récursivité.
Rappel sur la synchronisation des processus
Démarche de résolution de problèmes
Synchronisation et communication entre processus
Chapitre 2 Système d’Exploitation Gestion des Processus
1 Threads et Lightweight Processes Chapitre 5 En français on utilise parfois flots ou fils pour threads. Votre manuel préfère le mot anglais thread : terminologie.
Algorithmique et Programmation
1 CLUB DES UTILISATEURS SAS DE QUÉBEC COMMENT TRANSFORMER UN PROGRAMME SAS EN TÂCHE PLANIFIÉE SOUS WINDOWS Présentation de Jacques Pagé STRiCT Technologies.
Les tâches suivantes doivent être exécutées P3 P2 P1 CPU processustemps d'arrivée temps d'exécution priorité P1553 P2311 P3223 P4114 * P est la plus.
8.1 URDL22005 Systèmes dexploitation Interblocages Modèle Système Caractérisation dinterblocage Méthodes pour Gérer les Interblocages Prévention des Interblocages.
Programmation linéaire en nombres entiers Algorithme de la subdivision successive («Branch and Bound Algorithm»)
3.27 ALLOCATION DU CPU Critères :
Programmation concurrente
Module 4 - Ordonnancement Processus
Chapitre 6 (Silberchatz)
1 Licence dinformatique Algorithmique des graphes Problèmes dordonnancement. Utilisation de ce document strictement réservée aux étudiants de l IFSIC dans.
PROGRAMMATION MULTI-TÂCHES (MULTITHREADING)
Ordonnancement de tâches
Le diagramme de séquences
Atelier de formation : MAT optimisation II (les graphes).
Mécanismes d'exécution et de communication
Ordinateurs, Structure et Applications
Qu’est-ce qu’un système d’exploitation ?
L ’Ordonnancement Ordonnancement.
Systèmes d'exploitations Processus
Les processus, à quoi ça sert ?
Quel est l’intérêt d’utiliser le diagramme de Gantt dans la démarche de projet A partir d’un exemple concret, nous allons pouvoir exploiter plusieurs parties.
Cours des Systèmes d’exploitations
Architecture Chapitre 4 Interruptions. 2 Plan Principe Schéma d’acquisition Les états d’une interruption Décentralisation des interruptions Exemples.
Théorie Système Exploitation
Interactions entre Processus
La programmation système
Programmation Système et Réseau
A) Avec l’ordonnancement Rate Monotonic les priorités des processus suivent l’ordre inverse des périodes : P1 est prioritaire sur P2, lui-même prioritaire.
Doan Chien Thang Aôut,2008.  La vue d'ensemble des systèmes d'exploitation  Les processus et les fils  Gestion de la mémoire  Le système des fichiers.
Ordonnancement (Scheduling)
Cours Système LI324 Les Interruptions Cours Système LI324
Les Processus.
Systèmes d’exploitation Processus conclusion Modèle conceptuel de processus Pour masquer les effets des interruptions, les SE fournissent un modèle conceptuel.
1.1: notions de bases de l’informatique
Architecture d’un ordinateur
Gestion des Tâches Les Processus. Un système multitâches La carte mère comporte Le Processeur (calcul et attente) Les jeux de composants spécialisés (entrées-sorties.
Chapitre 12 Surveillance des ressources et des performances Module S41.
1 UNIX AVANCE Yves PAGNOTTE – Janvier – LES PROCESSUS SOUS UNIX.
5 – PARALLELISME , ORDONNANCEMENT
Transcription de la présentation:

Rappel // Basé sur le cours de Dr. Jaber Jemai Chapitre 01 Rappel // Basé sur le cours de Dr. Jaber Jemai

Rappel Définitions Le modèle des processus 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

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. Pile d’exécution (fonctions) Segment de code (instructions en langage machine) Segment de données (les variables) Composantes d’un processus

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). Exemple: traitement de texte multi-threaded: Disque Absbjshd Dnddjkjdq Hqdjlqdjl Jddmkm Djdlqjdjdq djdqkmkd clavier t1 t2 t3 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 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 … Processeur Contrôleur d’interruptions Disque Horloge Clavier 1. Le périphérique a terminé son E/S 4. Le processeur acquite l’interrupt. 2. Interruption 3. Description de l’interruption Comment se produit une interruption?

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)

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 (Process IDentifier) et un PPID (Parent Process IDentifier). Exemple: L’arborescence des processus sous Linux init Login: Mot de passe: Terminal 1 … Terminal 2 Terminal n shell ls

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.

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é Bloqué Prêt Élu       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 Nouveau Terminé Bloqué Prêt Élu       Graphe des états d’un processus

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. Sauvegarde PCB0 Sauvegarde PCB1 Recharge PCB1 Recharge PCB0 P0 P1 Élu Inactif

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. P1 P2 P3 Pn … Algo. d’ordonnancement Pi CPU

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 Nouveau Terminé Bloqué Prêt Élu      

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 Next Remaining Time SNRT) A chaque instant, le scheduler cherche parmi les processus prêts celui ayant le plus petit temps d’exécution restant.

Premier arrivé, premier servi (First come, first serve, FCFS) http://w3.uqo.ca/luigi/ Exemple: Processus Temps 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 P1 P2 P3 24 27 30

Tenir compte du temps d’arrivée! http://w3.uqo.ca/luigi/ 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. P1 P2 P3 24 27 30 arrivée P2 arrivée P3

Tenir compte du temps d’arrivée! http://w3.uqo.ca/luigi/ 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 P1 P2 P3 24 27 30 arrivée P2 arrivée P3

Exemple de SJF sans préemption http://w3.uqo.ca/luigi/ Processus Arrivée Cycle P1 0 7 P2 2 4 P3 4 1 P4 5 4 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 P1 P3 P2 7 16 P4 8 12 P2 arr. P3 arr. P4 arr

Exemple de SJF avec préemption http://w3.uqo.ca/luigi/ Processus Arrivée Cycle P1 0 7 P2 2 4 P3 4 1 P4 5 4 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 P3 P2 4 2 11 P4 5 7 16 P2 arr. P3 arr. P4 arr

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.

Exemple: Tourniquet tranche = 20 Processus Cycle 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é P1 P2 P3 P4 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