Théorie Système Exploitation

Slides:



Advertisements
Présentations similaires
Produit Gammes Nomenclatures Modules Techniques Prix de Revient Prix de Vente Modules Techniques Client Marges Mise en route Temps Unitaire Prix (Ex:
Advertisements

GEF 435 Principes des systèmes d’exploitation
Module 5 : Implémentation de l'impression
Le Concept du programme enregistré
TECHNOLOGIE DES ORDINATEURS
Initiation à l’utilisation du logiciel STATISTICA
Synchronisation des processus père - fils
Types des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitations
Chapitre 3: Système d’exploitation
1. 2 Informations nécessaires à la création dun intervenant 1.Sa désignation –Son identité, ses coordonnées, son statut 2.Sa situation administrative.
Architecture de réseaux
Performances 1 Évolution : Performance. Performances 2 Évolution : Mémoire.
Le Concept du programme enregistré
Mémoire & Processus Cours SE - SRC
Autorisations Utilisation eCATT
Chap. 1 Structures séquentielles : listes linéaires
Systèmes d’exploitation
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
ARCHITECTURE GLOBALE CAPTAGE Traitement DES des données GRANDEURS
Page 1 Introduction à ATEasy 3.0 Page 2 Quest ce quATEasy 3.0? n Ensemble de développement très simple demploi n Conçu pour développer des bancs de test.
Présentation générale de MapBruit
6.1 URDL22005 Systèmes dexploitation Ordonnancement du CPU Concepts de Base Critères dOrdonnancement Algorithmes dOrdonnancement Ordonnancement Multi-Processeur.
Formation au module Structure de ZENTO
Informatique générale
Module 1 : Préparation de l'administration d'un serveur
Synchronisation et communication entre processus
Serveurs Partagés Oracle
Système d’exploitation
Configuration de Windows Server 2008 Active Directory
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.
Académie de Créteil - B.C Quest-ce quune Inscription 1)1 action + 1 stagiaire + 1 client 2)Parcours individuel (avec son Prix de Vente) 3)Un financement.
Gestion des bases de données
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
Module 4 : Création et gestion de comptes d'utilisateur
Création et gestion de comptes d'utilisateur
Allocation de mémoire Allocation de mémoire.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Procédures stockées CPI-SQLServer.
2 TP avec l ’aide d ’un modeleur 3D :
3.27 ALLOCATION DU CPU Critères :
Programmation concurrente
Module 2 : Préparation de l'analyse des performances du serveur
Ordonnancement de tâches
Mécanismes d'exécution et de communication
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Gestion des transactions SQLServer.
Qu’est-ce qu’un système d’exploitation ?
L ’Ordonnancement Ordonnancement.
Systèmes d'exploitations Processus
Bienvenue sur CAUTIONET l'outil On Line de gestion de caution
Vue d'ensemble Surveillance des journaux d'événements
Biologie – Biochimie - Chimie
Création et présentation d’un tableau avec Word 2007
JavaScript Nécessaire Web.
LES PILES ET FILES.
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.
Module 8 : Surveillance des performances de SQL Server
Présente Conception d’un petit site Web. 2 4-nov-03© Préambule Cette présentation fait suite à celle intitulée « Imaginer, concevoir, mettre.
Introduction à l’informatique en gestion 1 Plan de la leçon Compagnon office Sections et Mise en page En-têtes et pieds de page Notes de bas.
NOTIONS DE BASE DES SYSTÈMES TEMPS-RÉEL Sujets Concepts de processus/thread concurrents –Windows NT et la programmation temps réel Lectures: Chapitres.
La programmation système
Programmation Système et Réseau
En route vers le déploiement . . .
Ordonnancement (Scheduling)
Cours Système LI324 Les Interruptions Cours Système LI324
Les Processus.
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.
Transcription de la présentation:

Théorie Système Exploitation CPI 2004 Les Processus Philippe Bancquart

Plan des systèmes d’exploitation Création et suppression des processus Ordonnancement des processus (scheduling) Mécanisme de synchronisation entre processus Traitement des interblocages.

Processus : Est l'activité résultant de l'exécution d'un programme séquentiel, avec ses données, par un processeur. Un processus Un processus est l'exécution d'un programme à un instant donné. La composition : Espace adressable Des variables globales Descripteurs de fichiers Gestion de signaux Compteur ordinal Pile En tête : description Programme Instruction langage machine partie fixe Données variables, constantes taille variable Pile Varie selon l’imbrication des appels de fonctions

Programme et Processus Entité purement statique associé à la suite des instructions qui la composent Processus Entité purement dynamique associé à la suite des actions réalisés par un programme

Sous Processus et threads Chaque thread possède son propre mot d'état, son propre contexte du processeur mais partage le même segment de code et de données que le processus. Comme les threads partagent le même segment de données il faut faire très attention, lorsqu'on les programme, pour éviter tout conflit et incohérence dans leur exécution.

Threads Espaces d’adressage distincts = forte limitation des processus. Exemple du traitement de texte : Deux actions simultanées sur les mêmes données Caractères entrés au clavier Ecriture disque Correcteur orthographique activé au fur et à mesure de la frappe

Processus ≠ Threads PC Espace adressage Registres Variables globales Informations locales à un processus : Espace adressage Variables globales Descripteurs de fichiers Signaux … Informations locales à un thread : PC Registres Pile Etat

Prêt (READY) signifie que le processus est en attente du processeur Etats d'un processus En exécution (RUNNING) : signifie que le processus dispose du processeur à cet instant là . Prêt (READY) signifie que le processus est en attente du processeur En attente (SLEEP) signifie en attente de ressources autre que le processeur . C'est le système d'exploitation qui détermine et modifie l'état d'un processus sous l'effet des événements .

Etats d'un processus

Structure d'un processus : BCP ou PCB Un processus est représenté par une structure appelé BCP (Block Control Processus) : Etat du processus (prêt, exécution) Un numéro qui le désigne et le distingue des autres processus du système La valeur ou le compteur ordinal qui indique l'adresse de la prochaine instruction exécutée par le processus . Les registres : c'est une structure de données concernant l‘exécution du processus

Structure d'un processus Les registres et le compteur ordinal est sauvegardé lorsque le processus quitte l'état "En execution" et seront rechargés une fois que le processus revient à son état de "En execution". Le BCP contient également Les informations relatives à la quantité mémoire allouée au processus et les pointeurs vers ces zones mémoires Des informations qualitatives définies par le temps d'unité central utilisé, et le temps restant autorisé Des informations relatives aux opérations d'E/S du processus tel que : Périphériques alloués, opération en attente de complétion, fichiers ouverts, ... Des informations concernant les files d'attente où figure le processus tel que le numéro de priorité, des pointeurs vers des files d'attente, ...

UC pour plusieurs processus

Opération sur un processus C'est l'ensemble des opérations qui permettent de créer et de manipuler les processus . L'ensemble de ces opérations comprend Création Destruction Mise en attente / Réveiller Suspendre / Reprendre Changement de priorité

Création Un processus peut en créer un autre. Le premier est appelé père et le second fils. Le processus peut à son tour créer d'autres processus. Il devient le père de ses processus ... Ainsi on construit un graphe des autres processus ou figure une racine Dans le système Unix de nouveaux processus sont créés par une primitive du système d'exploitation -> fork() La combinaison de fork() et d'exec() permet d'exécuter des processus en parallèles

Création d’un Processus Création de processus permanents au démarrage du système (démons) email, cron (séquencement de tâches, Unix),… Création d’un processus par un autre processus Hiérarchie de processus = groupe. fork (appel système Unix): processus fils, copie exacte du processus père (même programme, mêmes données, mêmes fichiers, mêmes variables d’environnement…), mais espaces d’adressage différents, en pratique, le processeur fils pointe sur les données du processus père, et la copie d’une adresse n’a lieu qu’en cas d’écriture, puis exécution de l’appel système exec pour charger en mémoire le nouveau programme.

Création d’un Processus Après appel de fork, comment les processus font-ils pour savoir s’ils sont père ou fils ? Chaque processus a un identifiant (PID), fork renvoie 0 au fils, et le PID du fils au père, Le programme du processus père peut alors exploiter cette valeur.

Destruction : Il se termine normalement après l'exécution de la dernière instruction du programme associé . Il peut exécuter une instruction d'auto-destruction Ex : exit(...). Un processus peut-être détruit par un autre processus Ex : kill(...) La relation hiérarchique entre un processus et ses descendants est utilisé essentiellement pour contrôler la destruction des processus. Généralement la destruction d'un processus entraine : La libération des ressources qui lui avait été affecté . Le BCP est effacé . Il disparaît de la table et des files d'attente du système .

Mettre en attente et réveiller Utilisé lorsqu'un processus a besoin de ressources autre que l'unité centrale (le processeur). Pour poursuivre son exécution il est alors placé par le système dans l'état en attente. Comment un scheduler sait-il qu'un processus demande une ressource ? Lorsque plus tard le système d'exploitation est en mesure de lui affecter la ressource demandée il réveille le processus en attente et le met dans l'état prêt. Cela signifie que le processus dispose maintenant de la totalité des ressources sauf le micro-processeur.

Suspendre / Reprendre Il s'agit d'un retrait temporaire ou passager d'un processus . L'opération emmène un processus d'un état quelconque à l'état suspendu . Lorsque la reprise intervient le processus passe de l'état suspendu vers l'état prêt ou en attente . Les systèmes d'exploitation ne laissent jamais trop longtemps un processus dans l'état suspendu par souci d'équité.

Changement de priorité Il se fait en modifiant l'état du champ correspondant dans le BCP. Cette opération est effectuée par le système d'exploitation.  Diagramme d'état                                           

Ordonnancement et file d'attente Dans un système multi-programmé mono-processeur on définit une procédure système, l'ordonnanceur qui définit l'ordre dans lequel les processus "prêts" accèdent à la ressource UC et la durée pendant laquelle ils l'utilisent. Le terme Ordonnanceur a un sens plus large parce qu'il peut désigner une processus qui demande des ressources telles que :

Ordonnancement Le Système d'Exploitation doit choisir le processus à exécuter. C’est l’Ordonnanceur (scheduler) qui doit choisir le processus. Il doit faire son choix en fonction de : Equité (assurer que chaque processus reçoit sa part du temps processeur), efficacité (utiliser le temps processeur à 100%), temps de réponse (minimiser le temps de réponse pour les utilisateurs en mode interactif), temps d’exécution (minimiser le temps de réponse pour les qui travaille par lots), rendement (maximiser le nombre de travaux effectués en une heure).

Tourniquet (round robin) Chaque processus possède un intervalle de temps « quantum » pendant lequel il est autorisé à tourner, ceci régulièrement sauf s’il est en E/S dans ce cas on passe à un autre. La difficulté est de régler le quantum, une table garde les processus prêts, la commutation prend du temps (sauvegarde registre, mappage mémoire, etc). Cette commutation de contexte prend par exemple 5ms, le quantum 20ms, donc 20% du temps est gâché pour la gestion du système (overhead). On peut augmenter le quantum à 500ms, mais dans ce cas si 10 utilisateurs tapent simultanément sur « return » le premier tourne ½ seconde, le 10eme au bout de 5s. Un bon compromis est 200 ms.

quantum

Priorité Chaque processus possède un niveau de priorité, on lance le processus avec la priorité la plus forte. Mais pour empêcher d’exécuter les processus avec priorités élevées, l’Ordonnanceur diminue à chaque top horloge cette priorité. Sous Unix commande (nice) Gestion dynamique, où la priorité est 1/f , f étant le quantum utilisé lors de la dernière utilisation. Cas où des process font beaucoup d’E/S. Exemple 2ms  p=50 , 50msp=2, 100p=1 Généralement les processus sont groupés par classes de priorité.

priorité

Ordonnancement Ordonnancement du plus court. On donne préférence au processus les plus courts, ceci étant fait par des estimations issues du passé, et des calculs de moyenne pondérée. Ordonnancement garanti Le principe st de donné de façon équitable dans ce cas aux utilisateurs, en fonction du paramètre UC. Dans le cas du temps réel, un processus qui doit se terminer dans les 10S et plus prioritaire que celui dans 10mn.

Exemple d’ordonnancement Dans un système de traitement par lots, les processus sont exécutés l’un à la suite de l’autre selon l’ordre d’arrivée. Dans un système en temps partagé, le processeur est alloué à chaque processus pendant au plus un quantum de temps. Au bout de ce quantum, le processeur est alloué à un autre processus. Un système multiprogrammé gère le partage des ressources (mémoire, processeur, périphériques…) de l’ordinateur entre plusieurs programmes chargés en mémoire. 

Critères d’Ordonnancement Utilisation du processeur: maximiser l’utilisation du processeur. Débit des processus: maximiser le nombre de processus qui terminent leur exécution par seconde. Temps total d’exécution d’un processus. Temps d’attente d’un processus (dans la Ready Queue). Délai de réponse (commandes interactives).

Algorithmes d’Ordonnancement Selon les applications de l’ordinateur, on utilise différents algorithmes:

First Come, First Served (FCFS) Le processus «choisi» comme actif est celui qui se trouve le plus anciennement dans la liste des processus éligibles Ordonnanceur non préemptif Simple à implémenter Peu performant

Shortest Job First (SJF) Le processus «choisi» comme actif est celui qui va consommer le moins de temps processeur difficile à prévenir l’avenir Effectuer des estimations à partir du « passé » Ordonnanceur non préemptif Difficile à implémenter Le meilleur ordonnanceur non préemptif

Priorité Affecter à chaque processus une priorité Priorité fixe : statique Priorité variable : dynamique Affectation de la priorité : Décidé par l’administrateur En fonction des ressources demandés par le processus Préemptif/Non préemptif

Round-Robin Une période de temps (quantum) processeur est allouée à chaque processus Allocation cyclique Partage de temps (time sharing) Le quantum de temps Fixé par l’administrateur Peut varier selon la priorité du processus

Algorithmes d’ordonnancement

Systèmes préemptifs Dans les systèmes d'exploitation préemptifs, l'ordonnanceur a la possibilité d'interrompre de lui- même le processus en cours d'exécution (sur déclenchement d'une interruption horloge) pour attribuer le processeur à un autre processus, alors que dans les systèmes d'exploitation non préemptifs, c'est au processus courant de rendre la main à l'ordonnanceur.

Ordonnancement peut être Non préemptif : un processus s ’exécute jusqu ’à ce qu ’il se termine ou se bloque en attente d ’un évenement extérieur Préemptif : un processus peut être interrompu à tout moment de son éxécution pour laisser le cpu à un autre.

Processus Windows Processus Windows - Introduction Windows est architecturé en services (processus) fonctionnant en arrière-plan. Il est possible d'afficher la liste des processus en cours dans le gestionnaire des tâches en appuyant simultanément sur «CTRL+ALT+Suppr», puis en cliquant sur l'onglet Processus. l'appelant dans le menu démarrer / exécuter avec la commande taskmgr.exe. La fenêtre affiche alors la liste des processus en cours d'exécution et les ressources qui leur sont alloués. La présence de vers, virus, et chevaux de Troie sur le système est généralement trahie par la présence de processus suspects.

Le gestionnaire des tâches Applications: permet de voir les applications en cours de fonctionnement et d'agir sur ces dernières en activant le menu contextuel avec le bouton droit. Processus :permet de voir la liste des processus en cours d'exécution et de donner des informations relatives àleur fonctionnement Performances: donne des représentations graphiques de l'utilisation du processeur et du fichier d'échange Mise en réseau: donne des statistiques d'utilisation de la bande passante sur les interfaces réseaux de l'ordinateur Utilisateurs :affiche des informations sur les utilisateurs ayant accès à l'ordinateur et le statut des sessions.

Gestionnaire des tâches :Applications Applications: Il est alors possible de: Basculer vers la tâche Mettre fin à la tâche Réduire la fenêtre de la tâche Agrandir la fenêtre de la tâche Mettre la tâche au premier plan Afficher le processus correspondant à la tâche

Gestionnaire des tâches :Processus Par défaut le gestionnaire des tâches affiche les informations suivantes: Nom de l'image (nom de l'exécutable) Nom de l'utilisateur Processeur Util. Mémoire Il est possible d'afficher d'autres indicateurs, parmi les 25 indicateurs disponibles, en allant dans «Affichage / Sélectionner les colonnes»