epid-cpi-isaip philippe bancquart - mise à jour 24/02/2005 - page 1 système exploitation après...
TRANSCRIPT
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 1
Système Exploitation Après avoir vu les machines, nous voyons comment le système
d’exploitation les exploite.
Plan des systèmes d’exploitation
Processus, ordonnancement
Commutation de contexte
Gestion Fichiers
Utilitaires
Système répartis
Présentation Windows NT
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 2
IntroductionUn « Ordinateur » ne peut fonctionner qu’avec un
Système d’exploitation : son rôle.
Gestion de l’information : stockage, rechercher, communication
Exploitation des programmes : lancer, arrêter, gérer,..
L'exécution des commandes d'entrée/sortie : Pas d’accès direct au matériel.
la gestion de la mémoire, y compris la virtuelle.
la gestion des fichiers
la multi-programmation (« multi-tâche ») :
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 3
Questions Comment exécuter plusieurs programmes à la fois ?
Et si ces programmes veulent tous accéder à l 'imprimante en même temps ?
Et s'ils doivent échanger des informations
Comment exécuter un seul programme avec plusieurs processeurs ?
la sécurité (gestion des accès,...)
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 4
Tâches d’un Système Exploitation Exécution des commandes, avec un langages
Gestion de la mémoire
Gestion des fichiers
Multi programmation
Plusieurs programmes à la fois
Accéder plusieurs à la fois sur la même ressource
La sécurité
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 5
le rôle d’un système d’exploitation
Offre aux utilisateurs une machine virtuelle plus simple d’emploi que la machine réelle (appels systèmes).
Il gère et contrôle le matériel
Gérer les “périphériques”
Interface avec les moniteurs de ces équipements
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 6
Que doit faire l’OS ? Assurer le chargement du programme en mémoire
“Chargeur”, ou “loader”
Fourniture de la mémoire
“Gérer” le programme chargé en mémoire
Permettre son interruption, son redémarrage…
Enchaînement des travaux
Exemple : compilation, édition de liens, chargement et exécution
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 7
En supplément du SE Un langage de commande
Divers utilitaires (compilateurs, éditeurs, outils, communication, gestion fichiers, sauvegardes, ...)
Une interface graphique pour l'utilisateur
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 8
Quelques SE
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 9
Caractéristiques de l’ordinateur nu Matériel : processeur, mémoire, périphériques
Gestion de ces éléments
Un périphérique tel qu’un disque est extrêmement compliqué à gérer
Imprimante pour plusieurs machines
Ligne de connexion à distance…
Il faut disposer au minimum d’un ensemble de “sous-programmes” sachant prendre en charge ces tâches fastidieuses et répétitives
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 10
Qu’est-ce qu’un “équipement” ? Un accessoire de la périphérie d’un ordinateur
disque
imprimante
modem…
Une carte, avec des circuits spécialisés pour la gestion de l’équipement, des circuits de communication avec l’ordinateur principal, et un “moniteur” gérant un micro-processeur
Moniteur ou driver
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 11
Moniteur Un moniteur a une vocation déterminée
Service bien défini et toujours le même
Programme chargé de contrôler un équipement
ROM : contient le programme sous une forme inaltérable
RAM : mémoire de travail
Fournit une interface “standard” du point de vue logiciel
Le matériel est “propriétaire”
L’interface répond à une spécification “universelle”
Exemples :
disque à la norme SCSI, IDE
imprimante “postscript”
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 12
Difficulté de réaliser les entrées/sorties sur la machine nue
Appel de sous-programmes utilitaires liés avec le programme principal
Chargement à chaque exécution, taille importante des applications
Exemple : printf
Appel de sous-programmes “systèmes” toujours présents
“Noyau” [kernel] du système d’exploitation
méthodes “spéciales” d’appel : “appel système”
une instruction spécifique génère une interruption (trap)
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 13
Appel système Similaire à un appel de sous-programme :
Passer des paramètres
Réaliser une fonction
Obtenir un résultat [code de retour]
Différence : “changement de mode”
Passage du “mode utilisateur” au “mode système”
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 14
Modes kernel ou “mode système” Permet l’utilisation d’instructions “privilégiées”
interdites en mode programme et provoquent une erreur [exception]
permet l’accès à toutes les ressources de la machine
gestion des périphériques
ensemble de la mémoire
L’accès aux matériel oblige de passer par le mode Noyau ce qui protège la machine.
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 15
Gestion du changement de mode Sauvegarder l’état du programme courant
Registres
Indicateurs d’état : PSW “Program Status Word”
Passer en “mode système”
Décoder la raison d’être du changement
Décoder les paramètres
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 16
Passage en “mode système” Évènements synchrones
Instruction spéciale
Requête au système
Erreur du programme : “exception”
Instruction illégale
Écriture dans une zone de mémoire protégée
Évènements asynchrones
Interruption “extérieure”
Provoquée par l’utilisateur [bouton reset]
Provoquée par un moniteur gérant un périphérique externe
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 17
Comment fonctionne une interruption ? Une interruption arrive “n’importe quand”
Provoquée par le moniteur, ou le contrôleur d’une carte périphérique
Changement de niveau électrique sur une/+ pattes du processeur
Matériel : la “nature”, ou le “niveau” sont pris en compte
Ensemble d’adresses de sous-programmes spécialisés pour chaque type d’interruption : le “vecteur d’interruption”
Instruction de “retour” d’interruption
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 18
Gérer l’interruption Être complètement transparente au programme en cours - au
moins pour une E/S
Attente de la fin de l’instruction en cours
Sauvegarde : registres, pile, indicateurs d’état, pointeur d’instruction
Un code spécifique gère l’interruption
Peut-on interrompre ce code ?
Masquage/démasquage des interruptions
Différents niveaux d’interruptions :
priorités relatives des interruptions
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 19
Les interruptions du 80x86
16 interruptions et exceptions prédéfinies
“vecteurs” 0 à 8, 10 à 14, 16, 18
224 “interruptions” définissables par l’utilisateur
0 Division par zéro1 Debug2 Interruption Externe non masquable3 Breakpoint [INT 3]4 Overflow6 Code opération illégal7 Processeur mathématique absent13 Protection mémoire19-31 Réservé
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 20
Vision applicative du 80x86 Registres et mémoire visibles par le programmeur
Mémoire4 Go
EIP
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 21
Un exemple : le BIOS du PC “Basic Input/Output System”
A quoi sert le BIOS ?
Mise en œuvre du PC au démarrage
“POST” : Power-On Self Test
Charger des programmes depuis une disquette ou un disque dur
Charger le DOS - Système d’opération du PC
Assurer une gestion élémentaire des périphériques
Clavier, Écran, Ports d’E/S, cartes vidéo, etc...
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 22
Sous quelle forme se présente le BIOS
En général, une ROM
Utilise une partie de la RAM
Gère une mémoire CMOS rémanente
Décrit la “configuration” du système
Tous les BIOS sont différents : cartes mères, périphériques, bus, constructeur…
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 23
Système Exploitation : Le DOS “Disk Operating System”
MS-DOS
Conçu par Microsoft à la demande d’IBM
Première version : 1980
But :
Gestion de plus haut niveau des périphériques
Gestion du système de fichiers
Enchaînement des tâches
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 24
Les services du DOS S’obtiennent à travers l’instruction INT 21h
Paramètres dans des registres
Un certain registre (ah) contient un numéro de fonction
Autres paramètres éventuels dans des registres
MS-DOS préserve les valeurs des registres(sauf s’il fournit des résultats dans certains d’entre eux)
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 25
Autres types de fonctions Gestion de l’heure / date
Lire, écrire les informations concernant l’heure et la date
Maintenues par un mécanisme spécifique : RTC, “real time clock”
Gestion de la mémoire
Allouer un bloc de mémoire
Libérer un bloc de mémoire
Modifier la taille d’un bloc de mémoire
Possibilité d’influer sur les stratégies d’allocation
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 26
Gestion du système de fichiers Fonctions de haut niveau
Ouverture de fichiers
Nom du fichier, nature de l’accès [lecture, écriture, màj]
Création de fichiers
Fermeture de fichiers
Effacement, renommage de fichiers
Lecture, écriture, déplacement de pointeur, etc...
Traitement des anomalies, comptes-rendus
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 27
Résumé : BIOS et DOS BIOS : un “moniteur résident” qui offre des fonctions de bas
niveau, et permet le chargement de DOS
Fournit à DOS une vision “standard” de la machine
DOS : un système d’exploitation qui :
Assure l’enchaînement & la gestion des tâches
Fournit aux programmes des services de haut niveau :
gestion de la mémoire
gestion des périphériques
en particulier, système de fichiers
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 28
Notion de “Tâche” DOS ne permet qu’un “travail” à la fois :
Le programme de l’utilisateur,
...ou DOS lui-même, réalisant une opération pour le compte de ce programme
Système monotâche
Avantages :
simplicité de conception, taille raisonnable, etc.
Inconvénient :
utilisation médiocre des ressources de la machine
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 29
Système Multitâches Partage les ressources entre plusieurs processus
Ressources : mémoire, processeur, périphériques…
Processus : un programme en cours d’exécution
Caractéristiques :
Système plus complexe
Nécessite des ordinateurs disposant de plus de ressources
Permet une meilleure utilisation des caractéristiques de la machine
Exemple : programmes réalisant des E/S
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 30
Système Multi-utilisateurs Notion d’utilisateur :
Personne “autorisée” à utiliser la machine
Mécanisme d’authentification
Notions de droits relatifs à une ressource [ex: fichier]
Problèmes de protection et de partage des ressources.
Peu de différences avec un système multi-tâches
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 31
Que partager : L’unité centrale Plusieurs programmes peuvent s’exécuter en même temps
Une seule CPU, mais...
un programme réalise des E/S, pendant lesquelles la CPU est “inactive”
un autre programme peut utiliser la CPU pendant ces attentes
Comment s’assurer d’un partage de temps équitable
Permettre à tous les programmes de progresser régulièrement
pouvoir interrompre un programme, par exemple à intervalles de temps fixes : les horloges, “timers”
Utiliser au mieux la CPU
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 32
Que partager : La mémoire centrale Plusieurs programmes peuvent cohabiter en mémoire
“bonne programmation”
mécanismes de protection mutuelle
système de gestion matérielle de la mémoire
Comment fournir aux programmes la mémoire dont ils ont besoin, au moment où ils en ont besoin ?
gestion de la mémoire
Les périphériques
Les périphériques physiques
Imprimante :queues d’impression, ou “spool”
Disques :systèmes de gestion de fichiers
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 33
Comment partager : File d’attente Imprimante, requêtes disque
Les données à imprimer sont conservées dans une file d’attente
espace mémoire, espace disque, priorités, etc...
Les requêtes passent par l’intermédiaire de “tampons”
une suite d’écritures de petite taille sur un fichier est transformée en une seule écriture d’élément de taille plus importante
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 34
Périphériques Non directement connectés au bus
Grande variété des équipements
La CPU ne peut “connaître” tous les types/modèles de périphériques : commandes très variées
Débits non compatibles avec celui du bus
Différentes représentations des données
Module(s) d’entrée/sortie
Assurer l’interface entre :
CPU & Mémoire
Équipement
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 35
Module d’entrée/sortie Interface processeur/équipement
Vision “standard” d’une catégorie d’équipement
disque, imprimante, etc
Réalise une partie de la “gestion” du périphérique
libère la CPU pour d’autres tâches
Interface fournissant :
Contrôle
État
Données
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 36
Mémoire : les besoins L’informatique a toujours besoin de plus de mémoire
Programmes plus ambitieux
Programmes plus gourmands en mémoire
A l’échelle d’une machine :
plus de mémoire = plus de ressources, meilleure utilisation de celles-ci
A l’échelle d’un programme :
plus de mémoire = plus de “puissance individuelle”
besoins multipliés par 1.7 chaque année
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 37
Mémoire : les besoins de l’OS De la mémoire, encore plus de mémoire
Besoins propres du système :
TSM [1976] : 8 ko. Solaris 2.4 [1996] : 14 Mo.
Besoins “auxiliaires” du système :
Outils divers [mail, serveurs ftp, http, gestionnaire de fenêtres…]
Répondre aux besoins des utilisateurs
Les applications deviennent de plus en plus grosses, tout comme les données manipulées
Le multi-tâche encourage à exécuter plusieurs applications simultanément
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 38
Mémoire : les besoins des programmes Mémoire Globale
Variables et tableaux : toujours plus
Mémoire locale
Allocation automatique [connue du compilateur]
Allocation dans la pile [alloca]
Mémoire dynamique
Allocation dynamique sous contrôle du programme
new/delete, malloc/free
Allocation “transparente” [sous-programmes système, E/S, fenêtres…]
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 39
La vision “utilisateur” Gestion dynamique de la mémoire
C : malloc, free
C++ : new, delete
Comment : l’allocateur de mémoire
Procédures qui :
reçoivent les requêtes de l’application
gèrent de la mémoire, statique ou demandée au système
divisent les gros blocs pour répondre à des demandes fines
rassemblent les petits blocs libres si possible
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 40
malloc(), free() Allocation dynamique de mémoire dans le tas
Fournir un bloc de mémoire de la taille demandée, situé à une adresse mémoire “convenable” void * malloc(size_t size);
Prise en compte des particularités d’adressage du processeur
Libérer un bloc de mémoire void free(void * ptr);
ptr doit être null ou l’adresse d’un bloc fourni par malloc
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 41
new, delete() Vision C++
Création d’un objet = allocation de mémoire + initialisation
Destruction d’un objet = gestion de la destruction + libération de la mémoire
Primitives de “haut niveau”
On peut utiliser new, delete, malloc et free dans un même programme
Les objets créés par new doivent être libérés par delete
La mémoire allouée par malloc doit être libérée par free
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 42
Gestion de mémoire par chaînage
après une quatrième allocation
zone libre
Informations de contrôle
après deux allocations
après une libération
après une troisième allocation
La mémoire devient fragmentée. Une nouvelle demande de mémoire peut échouercar il ne reste plus de bloc de mémoire contiguë de taille suffisante
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 43
Aspects Type d’allocation
First fit : le premier rencontré en partant du début de la liste
Next fit : un first fit où l’on explore à partir de la position courante
Best fit : on parcourt toute la liste pour trouver le “meilleur” libre
Worst fit : on parcourt tout et on choisit le plus gros… Curieux ?
Fragmentation de la mémoire
Beaucoup de petits morceaux ne remplacent pas un gros bloc
On ne peut, en général, pas déplacer les blocs de manière “transparente” aux programmes
Influer sur l’algorithme d’allocation n’est qu’un pis-aller
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 44
Améliorations possibles Caractéristiques du chaînage
Simple : allocation/désallocation plus rapide
Double : réunification des blocs plus simple
Séparer la liste des blocs libres et des blocs utilisés
Listes multiples
On maintient les blocs libres dans différentes listes, en fonction de leur “classe” de taille
allocation plus rapide
libération plus complexe
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 45
Bugs typiques dans les programmes Utiliser de la mémoire qui n'est pas/plus allouée
Fournir en résultat d’une fonction l’adresse d’une variable locale
Oublier de désallouer une zone allouée par malloc()
Désallouer deux fois une zone allouée par malloc()
Déborder d’une zone allouée par malloc()
Ne pas tester le résultat de malloc()
Utiliser alloca() sans en comprendre le fonctionnement
Mélanger les allocations de haut et de bas niveau
malloc/free et new/delete
etc…
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 46
Commande de procédés industriels. Temps réel
Un ordinateur qui contrôle un procédé industriel doit veiller sur un ensemble de paramètres physiques et engager des actions en fonction de leurs valeurs. Les délais de réponse peuvent être très courts et doivent être toujours garantis
Les informations doivent être acquises sur les différents dispositifs d'entrés périodiquement. Le traitement de ces informations est effectué en un temps maximum T.
Les fonctions de sécurité sont prioritaires avec un outil de gestion des priorités.
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 47
Systèmes transactionnels Gérer un ensemble d'informations structurées de
grande dimension (Go), appelé base de données . Ces informations sont consultées, modifiées simultanément à partir d'un grand nombre de points d'accès, terminaux ou micro-ordinateurs.
En cas d'interruption du service il faut pouvoir redémarrer les nombreuses activités parallèles de façon cohérente sans perte d'information, dans l'état exact où était le système avant cette interruption.
On mesure les performances en nombre de transactions par secondes (TPS)
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 48
Systèmes en temps partagé Donner aux utilisateurs l'impression qu'ils sont
chacun seul en face de la machine. Il faut donc ajouter les services adéquats pour tenir compte de l’utilisation par un grand nombre de personnes.
Exemple : 90% du temps est utilisé pour la réflexion, soit 10% d’utilisateurs actifs. Si le SE alloue des tranches de temps de 50 ms à chacun temps d'attente moyen = 0,5s pour 10 utilisateurs
EPID-CPI-ISAIPPhilippe Bancquart - mise à jour 24/02/2005 - page 49
Donner un exemple de SE pour chaque type
Ordinateur individuel
DOS, Windows 95, 98 ,Millénium, Linux
Temps réel
MVS, RTE, …
Systèmes transactionnels
Gros Système, VMS
Systèmes en temps partagé
Les UNIX, Windows NT Server, W2000, XP à voir?