GEF 435 Principes des systèmes dexploitation Ordonnancement partie I (Tanenbaum 2.5)
Synopsis Arrière plan sur lordonnancement Concepts dordonnancement Catégories des algorithmes dordonnancement Buts de lordonnancement Ordonnancement dans les systèmes de lots (batch)
Arrière plan Lordonnancement sur les systèmes dexploitation initiaux était facile: exécute le prochain programme sur le ruban magnétique Les ordinateurs personnels ont changé cet environnement parce ce que nous mettons lemphase sur le processus qui interagit avec lutilisateur De plus avec laugmentation de la vitesse des CPU, la plupart des programmes pour ordinateurs personnels sont limités par la capacité de lutilisateur à fournir les entrées, pas par le CPU
Arrière plan Avec plusieurs processus qui sont en compétition pour les précieux cycles du CPU, une décision doit être faite pour savoir quel processus va exécuter Lordonnanceur est la partie du système dexploitation qui fait ce choix, basé sur un algorithme dordonnancement Lordonnanceur peut faire une très grande différence dans la performance qui est perçu par lutilisateur: Est-ce que lordonnanceur exécute la job de lots ou le processus qui répond à une entrée de lutilisateur?
Concepts dordonnancement (comportement) Comportement du processus Les processus alternent entre des salves de travail pour le CPU et des salves de demandes dE/S Les E/S qui sont fait par le CPU (ie: sans DMA) compte comme du travail de CPU Processus qui passent la majorité de leurs temps à exécuter sont tributaires du traitement ( compute-bound ) (tributaire du CPU) Processus qui passent la majorité de leurs temps à attendre pour les E/S sont tributaires des E/S ( I/O bound ) Note: ceci veut dire les périodes dattente pour lE/S, pas le temps passé à faire les E/S
Concepts dordonnancement (comportement) Comportement des processus Note: Avec laugmentation de vitesse des CPU, plus de processus deviennent tributaires des E/S Tributaire du CPU Tributaire des E/S
Concepts dordonnancement (Quand) On doit faire des décisions dordonnancement quand: Un nouveau processus est crée Exécute le parent ou lenfant? Un processus termine Un nouveau processus de la liste des processus qui sont prêt doit être choisit (même si cest le processus inactif (idle)) Un processus bloque sur E/S ou sémaphore Pourrait être bon de démarrer un processus sur lequel le processus bloqué attend Nimporte quel processus qui est prêt peut être démarré
Concepts dordonnancement (Quand) On doit faire des décisions dordonnancement quand: Sur une interruption Si linterruption est un périphérique dE/S, un processus était bloqué pour lE/S peut être prêt à exécuter Lordonnanceur pourrait démarrer le processus interrompu, le nouveau processus qui est maintenant prêt, ou un autre candidat Si linterruption vient dune horloge matériel dautres options sont possibles: un ordonnanceur préemptif peut décider de démarrer un autre processus et un ordonnanceur non préemptif retourne au processus courant et le laisse finir jusquà ce quil bloque ou laisse volontairement le CPU
Catégories dalgorithmes dordonnancement Différent algorithmes sont utilisés sur différents systèmes. Trois catégories majeurs pour algorithmes : Systèmes de lots Séries de programmes qui attendent pour exécution Systèmes interactifs Utilisateurs aux terminaux qui attendent pour leurs réponses Systèmes en temps réel Exécutent généralement dans un environnement non-hostile où les processus coopèrent pour finir une tâche
Buts des algorithmes dordonnancement Certains buts sont applicables à tout genre de systèmes Impartialité ( Fairness ) Les processus comparables devraient recevoir un service comparable Acceptable de traiter les différentes catégories de processus différemment, ie: le processus de fermeture dun réacteur nucléaire a priorité sur un jeux Application de la politique Actuellement applique les buts de limpartialité Balance Non désirable dexécuter tout les processus qui sont tributaire du CPU ensemble puis ensuite tout ceux qui sont tributaire des E/S
Buts des algorithmes dordonnancement Buts des systèmes de lots: Débit ( Throughput ) Maximise le nombre de jobs complétés par heure Temps de réponse ( Turnaround time ) Complète les jobs dans le plus petit lapse de temps possible Utilisation du CPU Utilise le CPU le plus possible – cest une ressource dispendieuse avec beaucoup de jobs qui attendent pour terminer Même si cette mesure est utilisé par certains, ce nest pas un bon choix – Que préfèrerais GM: plus dautos produits par heure ou que les robots soient utilisés 100% du temps?
Buts des algorithmes dordonnancement Systèmes interactifs Temps de réponse Le temps entre ce que lutilisateur envoie sa commande et quil obtient un résultat Généralement la commande devrait prendre précédence sur le travail darrière plan Proportionnalité Lidée que ça ne dérange pas aux utilisateurs dattendre si ils pensent que la demande devrait prendre du temps Compiler un gros programme prend du temps, mais si ça prend 20 secondes à fermer un IDE on deviens furieux!
Buts des algorithmes dordonnancement Systèmes en temps réel Rencontrer les échéanciers ( deadlines ) Ce but est évident quand on considère que les échéanciers sont une caractéristique marquante de ces systèmes Prédictibilité Être capable de prévoir combien de fois quun processus va avoir le CPU aide à écrire un programme qui rencontre ses échéances Un processus qui est prédictible va exécuter avec moins de gigue jitter – Ceci est assez important pour les applications multimédia
Ordonnancement des systèmes de lots Les algorithmes pour les systèmes interactifs que nous allons voir le prochain cours; peuvent être aussi utilisés pour ordonnancer les systèmes de lots Cet examen couvre les algorithmes qui sont seulement utiles au systèmes de lots A moins dêtre mentionné, lordonnancement réfère à ordonnancer les processus pour laccès au CPU
Ordonnancement des systèmes de lots Premier-arrivé premier-servis - First-Come First- Served Lalgorithme le plus simple Non-préemptif Une seule queue de processus prêts Chacun a le CPU et exécute jusquà ce quil bloque Avantages: Facile à comprendre et implémenter Définitivement impartial (si on considère lattente en ligne impartial)
Ordonnancement des systèmes de lots Premier-arrivé premier-servis Désavantages Potentiellement une grande perte de cycles de CPU CPU (1s)I/O (1ms) Chaque a besoin de faire 1000 lectures au disque, et bloque immédiatement (temps de CPU court: <1ms) Plusieurs processus tributaire aux E/S Si le processus dE/S a le CPU une fois par seconde cela va prendre 1000 secondes pour que tout les processus complètent! Si le processus qui est tributaire au CPU donne le CPU tout les 10ms, tout les processus qui font des E/S finissent en un petit 10 secondes! Exécute pour 1s à la fois et bloque
Ordonnancement des systèmes de lots La plus petite job en premier - Shortest Job First Non-préemptif Applicable pour les jobs de grandeur connue, ie: différent types de réclamations dans une compagnie dassurance Les processus mit dans cet ordre produisent le plus petit temps de réponse (généralement) Temps de réponse moyen = [8+(8+4)+(8+4+4)+( )]/4 = 14 Temps de réponse moyen = [4+(4+4)+(4+4+4)+( )]/4 = 11
Ordonnancement des systèmes de lots La plus petite job en premier Notez que le système est optimale quand tout les jobs sont disponibles en même temps Si une job qui est longue et encore en exécution quand un nombre de petites jobs arrivent, le délais de la longue job est ajouté à tout les nouvelles jobs Est-ce quil y a une solution à ce problème? Le temps du premier processus a plus dimpacte sur le temps de réponse que tout les autres (4a+3b+2c+d)/4
Ordonnancement des systèmes de lots Le plus petit temps qui reste est le Prochain - Shortest Remaining Time Next Similaire à la plus petite job en premier, mais préemptif Si une job qui arrive a moins de temps pour compléter que la job qui exécute, commence à exécuter la nouvelle job Donne un bon service au nouvelles jobs qui sont courtes
Ordonnancement des systèmes de lots Ordonnancement à trois niveaux Jusquici nous avons seulement considéré lordonnancement du CPU Les systèmes de lots peuvent bénéficier de lordonnancement de trois façons: Admission (ie: processus est crée et a maintenant le potentiel dembarquer sur le CPU au lieu dattendre sur le disque) Mémoire (si on permute au disque swapping, combien de fois est-ce que le processus est amené en mémoire). CPU (les algorithmes que lon viens de voir et ceux du prochain cours)
Ordonnancement des systèmes de lots Ordonnancement à trois niveaux
Ordonnancement des systèmes de lots Considérations de lordonnancement à trois niveaux Critères potentiels pour lordonnanceur dadmission: Mix de processus tributaires du CPU et des E/S Admet les plus petites jobs en premier (similaire à la méthode pour le CPU) Peut tenir les jobs dans la queue dadmission pour exécuter les plus récentes
Ordonnancement des systèmes de lots Considérations de lordonnancement à trois niveaux Critères potentiels pour lordonnanceur de mémoire (par processus): Combien de temps depuis le dernier swap du processus? Combien de temps de CPU il a eu récemment? Comment gros est le processus? Comment important est le processus? Problèmes pour lordonnanceur de mémoire big picture: Pas swaper trop souvent très coûteux en temps Peut gérer le dégrée de multiprogrammation pour obtenir près de 100% dutilisation du CPU (pas de changement de tâches inutiles)
Quiz Time! Questions?