La gestion des processus. GIF-1001 Ordinateurs: Structure et Applications, Hiver 2016 Jean-François Lalonde Image: fugly.com

Documents pareils
DAns un système multi-utilisateurs à temps partagé, plusieurs processus

Ordinateurs, Structure et Applications

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

Partie 7 : Gestion de la mémoire

Cours de Systèmes d Exploitation

1 Mesure de la performance d un système temps réel : la gigue

Cours A7 : Temps Réel

MANUEL DE WEBCAM STATION EVOLUTION

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

I00 Éléments d architecture

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

Manuel de System Monitor

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

Métriques de performance pour les algorithmes et programmes parallèles

Fiche technique CPU 314SC/DPM (314-6CG13)

Cours Programmation Système

<Insert Picture Here> Solaris pour la base de donnés Oracle

Introduction aux Systèmes et aux Réseaux

Analyse de performance, monitoring

IV- Comment fonctionne un ordinateur?

CARPE. Documentation Informatique S E T R A. Version Août CARPE (Documentation Informatique) 1

4D v11 SQL Release 5 (11.5) ADDENDUM

Manuel de l utilisateur

sommaire Archives... Archiver votre messagerie... Les notes... Les règles de messagerie... Les calendriers partagés Les listes de diffusions...

Introduction à la Programmation Parallèle: MPI

Informatique pour scientifiques hiver Plan général Systèmes d exploitation

CONTROLE D ACCES A TRANSPONDEUR LECTEUR DE BADGE SANS CONTACT ST

UTILISATION DE LA BORNE PAR LE CLIENT

Le Logiciel de Facturation ultra simplifié spécial Auto-Entrepreneur

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

CONFIGURATION DE L AUTOMATE SIEMENS

Liste des Paramètres 2FC4...-1ST 2FC4...-1PB 2FC4...-1PN 2FC4...-1SC 2FC4...-1CB

Comment obtenir des ebooks sur le Reader

QoS Réseaux haut débit et Qualité de service

Unix/Linux I. 1 ere année DUT. Université marne la vallée

Oracle Maximum Availability Architecture

Jean-Philippe Paquette

VMware vsphere 5.0. Licences, tarifs et offres

Initiation à LabView : Les exemples d applications :

Parallélisme et Répartition

INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

Document de formation pour une solution complète d automatisation Totally Integrated Automation (T I A) MODULE A5 Programmation de la CPU 314C-2DP

1.1 L EXPLORATEUR WINDOWS

Chiffrement du système de fichiers EFS (Encrypting File System)

Encryptions, compression et partitionnement des données

IFT Systèmes d exploitation - TP n 1-20%

Premiers Pas avec OneNote 2013

PORTAIL DE GESTION DES SERVICES INFORMATIQUES

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

Ordinateurs, Structure et Applications

Fiche technique CPU 315SN/PN (315-4PN33)

Détection d'intrusions en environnement haute performance

TIS Web, complet et évolutif. Gestion en ligne des données pour les flottes de transport.

Installation et utilisation de Cobian Backup 8

Configuration du serveur ESX

Celestia. 1. Introduction à Celestia (2/7) 1. Introduction à Celestia (1/7) Université du Temps Libre - 08 avril 2008

Prérequis. Résolution des problèmes WMI. Date 03/30/2010 Version 1.0 Référence 001 Auteur Antoine CRUE

COMMISSION DES JEUNES ROYAL STADE WAREMMIEN FOOTBALL CLUB U.R.B.S.F.A. Matricule FB: Royal Stade Waremmien

Informatique en nuage Cloud Computing. G. Urvoy-Keller

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

NIMEGUE V3. Fiche technique 3.07 : Sauvegarde / Restauration manuelle

Tests de performance du matériel

Éléments d'architecture des ordinateurs

Janvier Entretien de l ordinateur

FileMaker Pro 13. Utilisation d une Connexion Bureau à distance avec FileMaker Pro 13

Exécutif temps réel Pierre-Yves Duval (cppm)

RACCOURCIS CLAVIERS. DEFINITION : Une «combinaison de touches» est un appui simultané sur plusieurs touches.

Introduction aux Systèmes et aux Réseaux, Master 2 CCI

TIVOLI STORAGE MANAGER. Denis Vandaele

Initiation au HPC - Généralités

Chapitre 2. Cluster de calcul (Torque / Maui) Grid and Cloud Computing

Atelier n 12 : Assistance à distance

Préconisations Techniques & Installation de Gestimum ERP

WIFI-DMX INTERFACE AUTONOME V 1.5.0

Optimisation multi-critère pour l allocation de ressources sur Clouds distribués avec prise en compte de l énergie

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

Un ordonnanceur stupide

SCL LOGICIEL DE CONTROL

Sybase High Avalaibility

On appelle variable condition une var qui peut être testée et

VMware Infrastructure The New Computing Platform. Stéphane CROIX Systems Engineer

Les tablettes. Présentation tablettes Descriptif Fournisseurs Caractéristiques Comparatifs Conseils Perspectives Démonstration

Gestion d un VIDÉOPROJECTEUR. ou d un ÉCRAN SECONDAIRE

Les pannes non bloquantes ou aléatoires :

Chapitre 4 : Outils de communication centralisés entre processus

1. Systèmes d entrée/sortie 2. Systèmes de fichiers 3. Structure de mémoire de masse (disques)

WINDOWS Remote Desktop & Application publishing facile!

Licences Windows Server 2012 R2 dans le cadre de la virtualisation

Concept de machine virtuelle

en version SAN ou NAS

LECTEUR DE COMPACT DISC CDJ-400

Conventions d écriture et outils de mise au point

LYCEE DE BRAS PANON MAPA MAI 2015

Systèmes d exploitation Gestion de processus

Un ordinateur, c est quoi?

MODE OPERATOIRE CIEL GESTION COMMERCIALE VERSION EVOLUTION BTS PME PMI

VOS RESSOURCES NUMÉRIQUES PAS À PAS

ESPACE MULTIMEDIA DU CANTON DE ROCHESERVIERE

Exigences système Edition & Imprimeries de labeur

Transcription:

La gestion des processus GIF-1001 Ordinateurs: Structure et Applications, Hiver 2016 Jean-François Lalonde Image: fugly.com

Analogies Un illusionniste : Fait disparaître certaines limites du matériels Donne l illusion que la machine a une mémoire infinie et une infinité de processeurs Un gouvernement : Protège les utilisateurs les uns des autres Partage des ressources de façon efficace et équitable Crédit: P. Giguère

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. Un processus n est pas un programme! Un processus est créé par: une requête de l usager (ex: exécution de programme), le système d exploitation ou un autre processus (un processus parent crée un processus enfant ( child )). Un «thread» est une partie d un processus qui peut être exécutée indépendamment des autres éléments du processus (en parallèle). Un thread a ses propres registres (incluant le compteur de programme) 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 peuvent servir à répondre à des événements dans des programmes (exemples d événement: clic de souris, touche de clavier enfoncée, message reçu par port série, etc.).

Exécution multi-tâches Exécuter un seul programme à la fois est un gaspillage de temps et de ressources, car les programmes attendent souvent après un périphérique. Par exemple, un programme peut attendre qu un fichier sur le disque dur soit lu. Pendant ce temps, le microprocesseur tourne à vide. Certains programmes ont une vitesse d exécution limitée par la puissance du microprocesseur (CPU Bound), mais la plupart des programmes sont limités par de nombreux accès aux périphériques (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 microprocesseur n exécute qu un programme à fois. L acétate suivante montre deux façons d exécuter plusieurs programmes «simultanément».

Exécution multi-tâches Partage du CPU lors d attente après les I/Os Programme 1 Exécution Requête I/O Attente Programme 2 Exécution Requête I/O Programme 3 Partage du CPU dans le temps Exécution Exécution Attente Requête I/O Programme 1 Exécution Attente Exécution Programme 2 Exécution Attente Sélection de programme OS dispatcher Attente Attente Attente Interrupts d'horloge 1quantum

Rappel: Interruptions et système d exploitation Les interruptions permettent l exécution de plusieurs processus Comment? Une horloge génère des interruptions périodiquement À chaque interruption, on change le processus à exécuter

Exécution multi-tâches Le SE change le programme exécuté: lorsque ce programme attends après un périphérique. Lorsqu un programme utilise les services d I/O, un nouveau programme est exécuté. lorsque l horloge du système émet une interruption. Le SE interrompt 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 peu de temps de CPU afin de déterminer quel est le prochain 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 ordonnancement (dispatching). L ordonnanceur (dispatcher) choisit le prochain programme à effectuer en fonction de plusieurs critères (priorité, temps inactif, bloqué par un accès aux périphériques ). Un SE qui limite le temps d exécution d un programme afin de faire de la supervision est dit préemptif (avec réquisition). 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

Process Control Block (PCB) Chaque processus: a un bloc de contrôle qui le décrit; a un IDentifieur unique; peut avoir des enfants ou un père; a un état; a ses registres, sa mémoire et sa pile; 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

Planification de haut niveau Il y a deux niveaux de planification: L admission de haut niveau ( high level scheduler ) est responsable de l admission des processus. Décide quel programme sera mis en mémoire. 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, il 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. L ordonnancement des processus ( dispatcher ), qui est responsable de l ordre dans lequel les processus admis seront exécutés

États des processus Nouveau Ordonnancement Terminé Prêt En cours Admission, Planification de haut-niveau En cours d exécution Requête E/S finie Temps écoulé processus OK, processeur OK Quantum terminé Bloqué ou en attente Attente d'e/s Attente de temps Fin du processus Prêt (suspendu provisoirement pendant qu un autre processus s exécute) processus OK, processeur occupé Bloqué ou en attente (attendant un événement d un périphérique ou suspendu pour un certain temps) processus non OK, même si processeur OK

États des processus 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 détermine que le processus doit ê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 par microprocesseur. Lorsque le dispatcher est appelé de nouveau, il peut décider de cesser d exécuter le processus en cours pour en exécuter un autre. Le processus en cours 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 accès au périphérique 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é» Il existe d autres états non affichés pour les processus: suspendu (par l usager ou par manque de ressources), en reprise (après avoir été suspendu), swap (voir plus loin).

Ordonnancement (Dispatching) L ordonnancement des processus 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é Maximiser l exécution Temps d exécution min. Utilisation max du CPU Utilisation max ressources Détérioration graduelle Temps d attente min. Tous les processus sont traités également Terminer le plus de processus possible Temps d exécution le plus court possible Le CPU doit être utilisé au maximum Les ressources doivent être utilisées au max. Un système surchargé doit ralentir, pas planter 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 famine (starvation) L exécution d un processus ne doit pas être reportée indéfiniment.

Analogie de la vie de tous les jours

Algorithmes d ordonnancement Processus 1 terminé Processus 2 terminé P1 P1 P1 P1 P2 P2 P2 P3 Premier arrivé, premier servi (exemple de mauvais algorithme) Le premier processus admis est exécuté jusqu à sa fin. Puis, on exécute le suivant. Cet algorithme n est jamais utilisé. Il équivaudrait à remplacer le noyau du système d exploitation par une file d exécution des processus et détruirait l illusion d une exécution simultanée de plusieurs processus.

Algorithmes d ordonnancement Processus 2 terminé Processus 1 terminé P2 P2 P1 P1 P1 P1 P3 P3 P3 P3 P3 Le plus court d abord: On exécute le processus le plus court d abord. Avantages: Maximise l exécution et le temps d exécution Désavantages: Famine possible, inéquitable

Algorithmes d ordonnancement P1 P2 P3 P4 Le tourniquet (round-robin): On exécute les processus à tour de rôle. Avantages: Tous les processus ont du temps de CPU, très équitable Désavantages: Ne maximise pas l exécution ni le temps d exécution

Exercice pour se réchauffer Les processus suivants sont admis à l ordonnanceur (dans l ordre): P1, durée: 5 P2, durée: 3 Écrivez quel processus est exécuté par le microprocesseur à chaque quantum de temps si l algorithme utilisé par l ordonnanceur est: premier arrivé, premier servi plus court d abord tourniquet

Exercice pour se réchauffer Les processus suivants sont admis à l ordonnanceur (dans l ordre): P1, durée: 5 P2, durée: 3 Écrivez quel processus est exécuté par le micro-processeur à chaque quantum de temps si l algorithme utilisé par l ordonnanceur est: premier arrivé, premier servi: P1 P1 P1 P1 P1 P2 P2 P2 plus court d abord: P2 P2 P2 P1 P1 P1 P1 P1 tourniquet: P1 P2 P1 P2 P1 P2 P1 P1

Exercice pour se réchauffer (bis) Les processus suivants sont admis à l ordonnanceur (dans l ordre): P1, durée: 5, temps d arrivée: 0 P2, durée: 4, temps d arrivée: 0 P3, durée: 2, temps d arrivée: 2 P4, durée: 3, temps d arrivée: 5 Écrivez quel processus est exécuté par le micro-processeur à chaque quantum de temps si l algorithme utilisé par l ordonnanceur est: premier arrivé, premier servi plus court d abord tourniquet

Exercice pour se réchauffer (bis) Les processus suivants sont admis à l ordonnanceur (dans l ordre): P1, durée: 5, temps d arrivée: 0 P2, durée: 4, temps d arrivée: 0 P3, durée: 1, temps d arrivée: 2 P4, durée: 3, temps d arrivée: 5 Écrivez quel processus est exécuté par le micro-processeur à chaque quantum de temps si l algorithme utilisé par l ordonnanceur est: premier arrivé, premier servi P1 P1 P1 P1 P1 P2 P2 P2 P2 P3 P4 P4 P4 plus court d abord P2 P2 P3 P2 P2 P4 P4 P4 P1 P1 P1 P1 P1 tourniquet P1 P2 P3 P1 P2 P4 P1 P2 P4 P1 P2 P4 P1

Algorithmes d ordonnancement Priorité: On exécute les processus selon leur priorité. Avantages: Temps de réponse correct, temps d attente minimum Désavantages: Ne maximise pas l exécution ni le temps d exécution, famine possible, le programmeur doit déclarer des priorités

Algorithmes d ordonnancement Priorité Variable: On exécute les processus selon leur priorité. La priorité d un processus change dynamiquement en fonction d évènements (fin d attente, le processus a faim, admission, ). Avantages: Temps de réponse correct, temps d attente minimum Désavantages: Même que l algorithme de priorité, mais avec un impact beaucoup moindre.

Algorithmes d ordonnancement Processus 2 terminé P1 P1 P1 P2 P2 P2 P3 P3 P3 File avec tourniquet (round-robin): On exécute plusieurs fois les processus nouvellement admis, puis les processus non terminés sont mis dans un tourniquet. Avantages: Tous les processus ont du temps de CPU; très équitable. Désavantages: Même que tourniquet, mais avec un impact moindre P1 P3

Algorithmes d ordonnancement Le plus critique (RTOS surtout): Le processus devant être exécuté dans les plus brefs délais est d abord exécuté. Avantages: Garantit l exécution d un processus critique à l intérieur d un certain temps. Désavantages: Ne maximise pas l exécution ni le temps d exécution, famine possible, le programmeur doit déclarer des priorités

Ordonnancement Windows Algorithme: Multilevel Feedback Queues Nouveau processus Q8 (priorité maximale) Proc. Proc. Q7 Q6 Proc. Q5 Q4 Q3 Q2 Q1 (priorité minimale) Proc. Proc. Proc. Dernière queue opère avec un tourniquet ( round-robin )

Ordonnancement Windows Variantes: Nombre de queues L algorithme d ordonnancement à utiliser pour chaque queue (peut être différent) Comment assigner un processus à une queue à priorité plus élevée (ou plus faible)

Ordonnancement Linux Algorithme: Completely Fair Scheduler Arbre rouge-noir arbre binaire balancé Assigne un score à chaque processus basé sur une comparaison avec un OS idéal OS idéal: traite tous les processus en parallèle Le score est élevé si la différence entre le temps de traitement alloué au processus et le temps que ça aurait dû prendre est élevé

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 pour récupérer de la mémoire. Le PCB sur le disque dur est un swap file.

Références et exercices Références Irv Englander: chap. 15.3, 18 (jusqu à 18.5) William Stallings: section 8.2