Introduction aux systèmes d'exploitation Joëlle Delacroix AMSI1999/2000 1 Les systèmes multiprogrammés et les entrées/sorties Mémoire centrale CPU UE UE • Traitement des entrées-sorties – le mode programmé – les interruptions – le DMA Joëlle Delacroix AMSI1999/2000 2 Le mode programmé Tant que toutes les données ne sont pas transférées Tant que UE non prête attendre fin tant que transférer donnée_suivante dans RD fin tant que CPU RC RD UE Joëlle Delacroix Mémoire centrale • Traitement des entrées-sorties – un seul programme utilisateur en MC – le CPU gère l'entrée/sortie par scrutation de L'UE AMSI1999/2000 3 Les Interruptions CPU RC Sous_Programme d'It_UE : transférer donnée_suivante dans RD RTI Programme principal : Vérifier UE prête; Transférer première_donnée dans RD Démasquer It_UE; Faire autre_chose que l'éntrée-sortie; RD UE Joëlle Delacroix Mémoire centrale • Traitement des entrées-sorties – L'UE délivre une interruption pour signaler qu'elle est prête : le processeur ne fait plus de scrutation AMSI1999/2000 4 Les Interruptions Table des vecteurs d'interruptions Co It 3 0017 0017 Sous traitant It3 1002 Programme Programme 1002 Latence Interruption n°3 Co <-- 0017 Sous-Traitant d'IT n°3 0017 Traitement It 1002 Co <-- 1002 RTI Joëlle Delacroix AMSI1999/2000 5 Le DMA (Direct Access Mémory) CPU nb sens DMA UE Joëlle Delacroix @p @m Sous_Programme d'It_DMA : Vérification transfert OK RTI Programme principal : Initialiser DMA : nb = nombre d'octets à transférer @m = adresse premier octet en MC @p = adresse périphérique sens = écriture; Lancer DMA; attendre la fin de l'entrée/sortie • Traitement des entrées-sorties – le processeur initialise le DMA – le DMA effectue l'entrée/sortie ; le processeur est inactif – le DMA signale la fin d'entrée/sortie par une IT AMSI1999/2000 6 Système monoprogrammé Entrées/Sorties avec DMA et interruption Lire/Ecrire Actif Prog En E/S Actif DMA Inactif Actif Cpu Inactif Joëlle Delacroix AMSI1999/2000 7 Système monoprogrammé --> multiprogrammé Entrées/Sorties avec DMA et interruption Actif Prog A En E/S Lire/Ecrire Actif Prog B En E/S Actif DMA Inactif Actif Cpu Inactif Joëlle Delacroix AMSI1999/2000 8 Le Système d'exploitation : partager la machine physique SYSTEME D'EXPLOITATION VECTEUR D'INTERRUPTIONS PROGRAMME 1 : CALCUL E/S DISQUE CPU PROGRAMME 2 : E/S IMPRIMANTE PROGRAMME 3 : CALCUL UE DMA UE Joëlle Delacroix • Plusieurs programmes en MC – le DMA gère les entrées/sorties – parallèlement, le CPU effectue les "calculs" AMSI1999/2000 9 le SE pour partager la machine physique CPU Mémoire centrale SE Programme U1 Programme U2 Programme U3 UE Joëlle Delacroix UE • Partager la machine physique – le processeur : qui s'exécute? – la mémoire centrale : • protection SE/ Programmes Utilisateurs • protection entre programmes Utilisateurs – les périphériques AMSI1999/2000 10 le SE pour faciliter la machine physique ECRIRE(données) Initialiser DMA nb sens @p @m Gestion par It Exécuter (Programme) Charger le programme (pagination / segmentation...) UE DMA UE MC Joëlle Delacroix AMSI1999/2000 11 le SE pour faciliter la machine physique MACHINE VIRTUELLE ECRIRE(données) SE Interface pour masquer les caractéristiques matérielles Appels Système Matériel MACHINE PHYSIQUE Commandes Mémoire centrale CPU UE Joëlle Delacroix Exécuter (Programme) UE AMSI1999/2000 12 DEFINITION D'UN SYSTEME D'EXPLOITATION • C'est un ensemble de programmes qui réalisent l'interface entre le matériel de l'ordinateur et les utilisateurs. Il a deux objectifs principaux : – construction au dessus du matériel d'une machine virtuelle plus facile d'emploi et plus conviviale – prise en charge de la gestion de plus en plus complexe des ressources et partage de celle-ci ) Comme son nom le suggère, le SE a en charge l'exploitation de la machine pour en faciliter l'accès, le partage et pour l'optimiser Joëlle Delacroix AMSI1999/2000 13 Applications FONCTIONS D'UN SYSTEME D'EXPLOITATION Editeur de texte Tableur Programmes Utilisateurs Navigateur Bases de données Compilateur Editeur de liens Chargeur Assembleur Debogeur Appels systèmes Commandes Gestion de Gestion de la protection Gestion des objets externes (fichiers) SE la concurrence Gestion du Gestion de la Gestion des processeur mémoire E/S Mécanisme des interruptions MACHINE PHYSIQUE Joëlle Delacroix AMSI1999/2000 14 FONCTIONS D'UN SYSTEME D'EXPLOITATION • Gestion du processeur – le système doit gérer l'allocation du processeur aux différents programmes pouvant s'exécuter. Cette allocation se fait par le biais d'un algorithme d'ordonnancement qui planifie l'exécution des programmes ªselon le type de système d'exploitation, l'algorithme d'ordonnancement répond à des objectifs différents Joëlle Delacroix AMSI1999/2000 15 FONCTIONS D'UN SYSTEME D'EXPLOITATION • Gestion de la mémoire – le système doit gérer l'allocation de la mémoire centrale entre les différents programmes pouvant s'exécuter (pagination/segmentation). Comme la mémoire physique est souvent trop petite pour contenir la totalité des programmes, la gestion de la mémoire se fait selon le principe de la mémoire virtuelle. ªà un instant donné, seules sont chargées en MC, les parties de code et données utiles à l'exécution Joëlle Delacroix AMSI1999/2000 16 FONCTIONS D'UN SYSTEME D'EXPLOITATION • Gestion des entrées/sorties – le système doit gérer l'accès aux périphériques, c'est-à-dire faire la liaison entre les appels de haut niveau des programmes utilisateurs (exemple getchar()) et les opérations de bas niveau de l'UE responsable du périphérique (UE clavier) ªc'est le pilote d'entrées/sorties (driver) qui assure cette correspondance Joëlle Delacroix AMSI1999/2000 17 FONCTIONS D'UN SYSTEME D'EXPLOITATION • Gestion de la concurrence – Comme plusieurs programmes coexistent en mémoire centrale, ceux-ci peuvent vouloir communiquer pour échanger des données. Par ailleurs, il faut synchroniser l'accès aux données partagées afin de maintenir leur cohérence ªle système offre des outils de communication et de synchronisation entre programmes Joëlle Delacroix AMSI1999/2000 18 FONCTIONS D'UN SYSTEME D'EXPLOITATION • Gestion des objets externes – La mémoire centrale est une mémoire volatile. Aussi, toutes les données devant être conservées au delà de l'arrêt de la machine, doivent être stockées sur une mémoire de masse ( disque dur, disquette, cédérom...) ªla gestion de l'allocation des mémoires de masse ainsi que l'accès aux données stockées s'appuient sur la notion de fichiers et de système de gestion de fichiers (SGF). Joëlle Delacroix AMSI1999/2000 19 FONCTIONS D'UN SYSTEME D'EXPLOITATION • Gestion de la protection – le système doit fournir des mécanismes garantissant que ses ressources (CPU, mémoire, fichiers) ne peuvent être utilisées que par les programmes auxquels les droits nécessaires ont été accordés. ªil faut notamment protéger le système et la machine des programmes utilisateurs (mode d'exécution utilisateur et superviseur) Joëlle Delacroix AMSI1999/2000 20 LES DIFFERENTES CLASSES DE SYSTEMES • Systèmes multiutilisateurs interactifs et en temps partagé – l'utilisateur est "derrière son clavier et son écran" ; il soumet des exécutions et attend les résultats : il faut donc réduire au maximum le temps d'attente et faire croire à l'utilisateur qu'il est seul à utiliser la machine ªsystèmes adaptés à la mise au point de programmes (exemple : UNIX, Linux...) Joëlle Delacroix AMSI1999/2000 21 LES DIFFERENTES CLASSES DE SYSTEMES • Systèmes à traitements par lots – les programmes sont exécutés en différé, les uns à la suite des autres. ªsystèmes dédiés aux travaux de production (exemple : MVS...) ªon peut noter que beaucoup de systèmes offrent simulatnément un service de temps partagé et un service de traitement par lots (VMS) Joëlle Delacroix AMSI1999/2000 22 LES DIFFERENTES CLASSES DE SYSTEMES • Systèmes temps réel (réactifs) – les programmes en exécution sont soumis à des contraintes de temps, c'est-à-dire que leurs exécutions doivent être impérativement achevées à un date butoir appelée échéance. Comme ces systèmes sont souvent interfacés à un environnement dynamique (procédé) délivrant des événements synchones ou asynchrones auxquels ils doivent réagir, on parle aussi de systèmes réactifs ªsystèmes adaptés à la commande de procédé (exemple : LynxOS...) Joëlle Delacroix AMSI1999/2000 23 NOTIONS DE BASE • Les fonctionnalités du système d'exploitation sont accessibles par le biais des commandes ou des appels système Pg U > cd .. > print open (fichier) Joëlle Delacroix open chdir print Système de gestion de fichiers Gestion des entrées /sorties AMSI1999/2000 Interpréteur de commandes Appels système SE 24 NOTIONS DE BASE : modes d'exécutions main() { int i, j, fd; i = 3; fd = open("fichier", "wr"); read(fd, j, 1); j = j / i; } Joëlle Delacroix protection • Lors de l'exécution d'un appel système, le programme utilisateur passe d'un mode d'exécution dit utilisateur à un mode d'exécution dit superviseur. Mode Superviseur (privilège supérieur) Mode utilisateur Exécution de open() Exécution de read () AMSI1999/2000 25 NOTIONS DE BASE : modes d'exécutions Mode utilisateur protection • Le passage du mode utilisateur au mode superviseur s'accompagne d'opérations de commutation de contexte : sauvegarde de contexte utilisateur Mode Superviseur (privilège supérieur) main() Exécution de open() { int i, j, fd; i = 3; fd = open("fichier", "wr"); sauvegarde CO, PSW utilisateur chargement CO <- adresse de la fonction open chargement PSW <- mode superviseur Joëlle Delacroix AMSI1999/2000 26 NOTIONS DE BASE : modes d'exécutions Mode utilisateur main() { int i, j, fd; i = 3; fd = open("fichier", "wr"); protection • Le passage du mode superviseur au mode utilisateur s'accompagne d'opérations de commutation de contexte : restitution de contexte utilisateur Mode Superviseur (privilège supérieur) Exécution de open() restitution du contexte utilisateur chargement CO <- CO sauvegardé chargement PSW <- PSW suavegardé Joëlle Delacroix AMSI1999/2000 27 NOTIONS DE BASE : commutations de contexte protection Mode utilisateur Mode Superviseur Exécution de open() APPELS SYSTEME main() { int i, j, fd; i = 0; fd = open("fichier", "wr"); read(fd, j, 1); j = j / i; } IT HORLOGE Joëlle Delacroix TRAPPE erreur irrecouvrable arrêt du programme IT Exécution du traitant d'it Horloge MATERIEL AMSI1999/2000 28 Notions de base • Les fonctionnalités du système d'exploitation sont accessibles par le biais des commandes ou des appels système • Le mode superviseur est le mode d'exécution du système. C'est un mode d'exécution privilégié qui autorise notamment l'appel à des instructions interdites en mode utilisateur (manipulation des its). Ce mode assure la protection du système d'exploitation. • Le passage du mode utilisateur vers le mode superviseur est soit provoqué par un appel système, soit par une trappe, soit par l'arrivée d'une interruption • Le passage entre les modes utilisateur / superviseur s'accompagne de commutations de contexte (sauvegarde du contexte utilisateur changement de mode d'exécution - restitution du contexte utilisateur) Joëlle Delacroix AMSI1999/2000 29 Chargement du système d'exploitation RAM 0 vecteur d'It SE n CPU Joëlle Delacroix ROM Bootstrap (amorce) Exécution du bootstrap - test des composants (POST : Power-OnSelf Test) - installation du vecteur d'Its - chargement des fichiers système stockés sur disque à une adresse prédéfinie (bootstrap loader) AMSI1999/2000 Fichiers système 30 Plan du cours • Introduction aux systèmes d'exploitation (1 cours) • La chaîne de production de programme (3 cours) – compilation – édition de liens – chargement • La gestion des objets externes (4 cours) – notion de fichiers – allocation disque • La gestion de processus (1 cours) • La gestion de la concurrence (1 cours) • La gestion de la mémoire centrale (1 cours) • Révision(1 cours) Joëlle Delacroix AMSI1999/2000 31