1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot Sixième séance Système d’exploitation Cours Architecture des Systèmes Informatiques
2 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Plan La notion de système d’exploitation Les fonctions d’un système d’exploitation BIOS DOS et ses fonctions Système multitâches Gestion de la mémoire, vision applicative
3 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Notion de système d’exploitation Définition générique : un programme s’exécutant sur une machine nue, et destiné à faciliter la mise en œuvre d’autres programmes sur cette machine Exemples Moniteur d’un calculateur spécialisé, d’une calculette Système d’exploitation mono tâche, multitâches : DOS “Disk Operating System” UNIX, etc.
4 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Pourquoi ? Fournir à l’utilisateur non pas un ordinateur “nu”, mais une combinaison plus puissante de logiciel et matériel Fournir une vision “standard” / “compatible” d’outils développés indépendamment Historiquement : optimiser l’utilisation des ressources de la machine : périphériques, mémoire, unité centrale Aujourd’hui : simplifier le travail de l’utilisateur
5 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax 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 ? 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.
6 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Équipements… Qu’est-ce qu’un “équipement” ? Un accessoire de la périphérie d’un ordinateur, dont on oublie souvent qu’il contient lui-même un processeur disque imprimante modem… Nature : 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…
7 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax 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”
8 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Que doit faire l’OS ? Gérer les “périphériques” Lecteurs de rubans, cartes, bandes magnétiques, disques... Interface avec les moniteurs de ces équipements 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
9 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Support de haut niveau Difficulté de réaliser les entrées/sorties sur la machine nue Solutions 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 )
10 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax 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” (ou “programme”) au “mode système” Caractéristiques du “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
11 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Caractéristiques de l’appel système Gestion du changement de mode Sauvegarder l’état du programme courant Registres Indicateurs d’état : PSW “Program Status Word” sur PC : registre EFLAGS Passer en “mode système” Décoder la raison d’être du changement Décoder les paramètres
12 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax 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
13 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax 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
14 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax 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
15 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax 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éro 1 Debug 2 Interruption Externe non masquable 3 Breakpoint [INT 3] 4 Overflow 6 Code opération illégal 7 Processeur mathématique absent 13 Protection mémoire Réservé
16 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Vision applicative du 80x86 Registres et mémoire visibles par le programmeur Mémoire 4 Go EIP
17 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax 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...
18 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Sous quelle forme se présente le BIOS En général, une ROM Occupe un “segment” de mémoire 64 k à l’adresse F0000 si la carte mère a un bus ISA 128 k à l’adresse E0000 pour un bus EISA Utilise une partie de la RAM 256 octets pour conserver l’état des E/S en cours Gère une mémoire CMOS rémanente Décrit la “configuration” du système 64 octets ; alimentation par pile.
19 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Utilité ? Complémentation du matériel de base de la machine Tous les BIOS sont différents : cartes mères, périphériques, bus, constructeur… Mise à jour possible Remplacement des ROM “Flash Bios” : bios réinscriptible Offre une vision “standard”, pour le DOS, de la machine
20 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax 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
21 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax 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 Ex : B401 movb $1,%ah CD21 int $0x21 MS-DOS préserve les valeurs des registres (sauf s’il fournit des résultats dans certains d’entre eux)
22 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Quelques exemples de fonctions 1 : lire un caractère au clavier. Résultat dans al 2 : écrire sur la console le caractère contenu dans dl 3 : lire un caractère depuis le port série. Résultat dans al 4 : écrire sur le port série le caractère contenu dans dl 5 : idem, sur l’imprimante 10 : écrire sur l’écran une chaîne de caractères dont l’adresse est contenue dans ds:dx, la chaîne se terminant par $ 11 : consulter le clavier pour savoir si un caractère est disponible. al contient 0 ou 255.
23 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Gestion de périphériques 14 : positionnement du disque DOS par défaut. dl contient le numéro du disque à sélectionner 0=A, 1=B, 2=C… al reçoit en retour le nombre de disques “logiques” 25 : demander le numéro du disque par défaut résultat dans al 26, 27, 28 : opérations de contrôle diverses demande d’information sur un disque [nature, capacité, format…] Opérations de lecture et d’écriture…
24 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax 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 c.f. cours sur gestion de la mémoire [à venir…]
25 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Contrôle des Processus Arrêt d’un programme Fonction 4Ch (ou 0x4C ) : arrêt de l’exécution DOS ne “revient” pas au programme DOS ferme les fichiers ouverts, libère la mémoire Fonction 31h (ou 0x31 ) : arrêt de l’exécution, mais conservation du programme en mémoire. TSR “Terminate and Stay Resident” Exemple : programmes remplaçant des parties du BIOS virus…
26 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Contrôle des Processus Chargement et exécution d’un programme Fonction 40h (ou 0x40 ) : “exec” ds:dx pointe sur le nom du fichier à exécuter “B:\DIR\SUB\PROG.EXE” es:bx pointe sur un bloc de paramètres informations passées au programme allant s’exécuter al indique la fonction désirée 0 : charger et exécuter 1 : chargement seul 3 : chargement d’un “overlay”
27 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax 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
28 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax 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
29 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax 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
30 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax 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
31 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax 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
32 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax 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
33 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax 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
34 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax 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 idem. lecture
35 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax 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
36 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax 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
37 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax 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
38 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax 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
39 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax 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…]
40 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax 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
41 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax 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
42 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax 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
43 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax 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 échouer car il ne reste plus de bloc de mémoire contiguë de taille suffisante
44 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax 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
45 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax 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
46 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Buddy system Mémoire partagée en blocs de taille 2 k A chaque demande, on fournit un bloc de 2 p octets, de taille minimale Allocation et libération [compactage] simple. Trous inutilisables. Allocation par cellules de taille fixe [langage LISP] Autre types d’algorithmes demande de 14 ko demande de 3 ko demande de 1 ko
47 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Un exemple : Solaris 2.5 Algorithmes d’allocation de mémoire pour les applications Matériel : pagination, avec des pages de 4 ko Demande de plus de 2ko : 1 ou plusieurs pages allouées Demandes de 256 octets à 2ko : allocation par morceaux de page. taille du morceau : puissance de 2. Gestion par zones ex: 512 octets pour 327 demandés. Demandes de moins de 256 octets micro allocation spécifique.
48 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax 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…