Système d’exploitation avancée Professeur A. BOUZIDI Sujets abordés • Introduction • système d’exploitation (UNIX) • Gestion des Processus • Ordonnancement • Synchronisation • Gestion de la mémoire • Gestion d’entrée/sortie Sujets abordés • Introduction • système d’exploitation (UNIX) • Gestion des Processus • Ordonnancement • Synchronisation • Gestion de la mémoire • Gestion d’entrée/sortie Introduction • Exemples de SE TIZEN Ubuntu Android Introduction • Quels sont les composants principaux d’un ordinateur? Processeur Pour l’exécution des processus Mémoires Pour la mémorisation des processus en cours d’exécution Périphériques Pour le stockage des données et des programmes Introduction Fonctionnement Programme stocké sur le disque dur données du programme en cours d’exécution (Mémoire temporaire) établissement des différents calculs Introduction Rôle d’un système d’exploitation: Processus1 Le SE est l’ensemble de logiciels qui tournent en permanence sur un ordinateur et le contrôlent à partir de son démarrage Processeur Processus2 Processus3 Système d’exploitation Mémoires Processus4 Le SE permet: • • l’utilisation correcte, commode et efficace du matériel la bonne gestion de toutes les ressources de l’ordinateur Périphériques Introduction Rôle d’un système d’exploitation • gérer le processeur : c'est-à-dire gérer l'allocation du processeur entre les différentes applications grâce à un algorithme d'ordonnancement. • gérer la mémoire : c'est-à-dire gérer l'espace mémoire alloué à chaque application et, le cas échéant, à chaque usager. En cas d'insuffisance de mémoire physique (RAM), le système d'exploitation peut créer une zone mémoire sur le disque dur, appelée mémoire virtuelle. • gérer les entrées/sorties : c'est-à-dire gérer l'accès des programmes aux ressources matérielles par l'intermédiaire des pilotes. • gérer l'exécution des applications : c'est-à-dire s'assurer de la bonne exécution des applications en leur affectant les ressources nécessaires à leur bon fonctionnement, mais aussi permettre de tuer une application ne répondant plus correctement, par exemple. • gérer les fichiers : c'est-à-dire gérer la lecture et l'écriture dans le système de fichiers et les droits d'accès aux fichiers par les utilisateurs et les applications. Système d’exploitation • Un Système d‘Exploitation (noté SE ou OS[Operating System]) peut être défini comme un logiciel qui pilote les dispositifs matériels et reçoit des instructions de l’utilisateur ou d’autres logiciels (ou applications). • Le SE offre une machine virtuelle Système d’exploitation • Une machine virtuelle (virtual machine) est une illusion d'un appareil informatique créée par un logiciel d'émulation. • Le logiciel d'émulation simule la présence de ressources matérielles et logicielles telles que la mémoire, le processeur, le disque dur, voire le système d'exploitation et les pilotes, permettant d'exécuter des programmes dans les mêmes conditions que celles de la machine simulée Système d’exploitation But d’un système d’exploitation • Transformer une machine physique en une machine confortable pour l'utilisateur (MACHINE ETENDUE ou VIRTUELLE). • Gérer les ressources de la machine Système d’exploitation • Transformer une machine physique en une machine confortable pour l'utilisateur (machine virtuelle) • Les premiers ordinateurs ne possédaient pas de systèmes d'exploitation ; les utilisateurs de l'époque devaient entrer manuellement et dans le système binaire leurs données et leurs programmes. • Le rôle de la machine virtuelle est de masquer des éléments fastidieux liés au matériel, comme les interruptions, les horloges, la gestion de la mémoire, la gestion des périphériques Système d’exploitation • Transformer une machine physique en une machine confortable pour l'utilisateur (machine virtuelle) • Le système d'exploitation rend à l'utilisateur une gamme de services : • • • • • assistance dans la création de programmes, exécution de programmes, accès aux dispositifs d'entrées/sorties, accès contrôlé au système informatique, accès contrôlé aux fichiers, détection d'erreurs, comptabilité des temps d'utilisation de ressources, ... Système d’exploitation • Gérer les ressources de la machine Le système d'exploitation permet l'ordonnancement et le contrôle de l'allocation des processeurs, des mémoires et des périphériques d'E/S entre les différents programmes qui y font appel. Système d’exploitation • Gérer les ressources de la machine • Exemple: Si trois programme lance la tâche d’impression sur la même imprimante. Le système d’exploitation effectuera les tâche suivantes: ❑ stockage des fichiers de sortie, ❑ attribution de priorités, ❑ prise en main des sorties, ❑ destruction des fichiers tampons après impression. Système d’exploitation • Gérer les ressources de la machine • Objectifs principaux: ❑ ❑ ❑ ❑ Efficacité: utilisation maximale des ressources Équité: pas de programmes en attente indéfinie Cohérence des données entre deux accès consécutifs Protection des données contre des accès interdits Ce rôle de gestionnaire de ressources est crucial pour les systèmes d'exploitation manipulant plusieurs tâches en même temps (multitâches). Système d’exploitation Système d’exploitation caractéristique des système d’exploitation: • Mono-Tache/Multitâche • non Préemptif/ préemptif • Mono-utilisateur/Multi-utilisateur • Mémoire : Avec ou sans protection mémoire Avec ou sans swap (fichier d’échange) • Système de gestion de fichiers (SGF ) Système d’exploitation • Mono-Tache/Multitâche Une ou plusieurs applications en même temps • Mono-tâche : une application peut être lancée à un instant t. • Multi-tâche :. • le système gère l’exécution simultanée de plusieurs programmes appelé des processus (Note: un vrai multitâche nécessite d’avoir plusieurs microprocesseurs ou équivalents Hyper Threading par exemple). Système d’exploitation • non Préemptif / préemptif • Non-préemptif : l’utilisateur par son action change l’application active. • Préemptif : le système donne des quota de temps à toutes les applications prêtes à être exécutées. Système d’exploitation Mono-utilisateur/Multi-utilisateur •Mono-utilisateur: Avec ou Sans nom d’utilisateur ▪ ▪ Pas de nom de login (Windows 95, 98, XP). Nom de login (avec ou sans mot de passe) pour : • Avoir un environnement personnalisé • Identification vis à vis des serveurs réseau Système d’exploitation Mono-utilisateur/Multi-utilisateur •Multi-utilisateur: le système permet l’existence de plusieurs utilisateurs différents sur une même machine, connectés ou non (un utilisateur peut faire tourner un programme sans être connecté, comme par exemple un serveur Internet). Système d’exploitation Mémoire •Protection : Mémoire privée à une application Protéger les accès illégaux des applications entre elles et vis à vis des données système. •Mémoire de swap (fichier d’échange) Mémoire physique parfois insuffisante, un fichier, un disque peut être utilisé pour sauvegarder des données en mémoire de manière temporaire. Fichier d’échange sous Windows, zone de swap sous Unix Système d’exploitation Système de Gestion de Fichiers (File System): ▪ Ils ont pour rôle d’organiser l’implantation des données sur un disque de manière optimale. ▪ Ils permettent au système d’exploitation d’utiliser l’espace disque pour stocker et utiliser des fichiers. ▪ Ils sont basés sur la gestion des clusters (unité d’allocation). Système d’exploitation Les Clusters • Le cluster représente la plus petite entité (en temps que stockage) que peut gérer le SE. • Un cluster est constitué d’un ou plusieurs secteurs (1 à 64) de 512 octets, (1 secteur =512o), donc un cluster peut avoir une taille comprise entre 512o et 32 ko, voir 64ko. • Un fichier est stocké sur un nombre entier de clusters. • Un fichier aussi petit soit-il, occupe un cluster. Système d’exploitation Les Clusters • La taille des clusters dépend du SE et de la taille de la partition à gérer. • La taille des clusters détermine le nombre d’entité que le SE doit gérer. • Plus les clusters sont grands, plus il y a perte de place sur le disque, surtout si le SE gère des petits fichiers. Système d’exploitation Système d’exploitation • Différentes classes de systèmes d'exploitation • Selon le service rendu • Mono/multi tâches • Mono/multiutilisateurs • Selon l’architecture • Systèmes centralisés • Systèmes répartis (distributed systems) Système d’exploitation • Différentes classes de systèmes d'exploitation • Selon la capacité à évaluer : • Systèmes fermés (ou propriétaires) • Systèmes ouverts • Selon l'architecture matérielle qui les supporte: • Architecture monoprocesseur (temps partagé ou multiprogrammation) • Architectures multiprocesseurs (parallélisme) Système d’exploitation Système centralisé: • L'ensemble du système est entièrement présent sur la machine considérée. • Les machines éventuellement reliées sont vues comme des entités étrangères disposant elles aussi d'un système centralisé. • Le système ne gère que les ressources de la machine sur laquelle il est présent. • C'est le cas d'UNIX, même si les applications réseaux (X11, FTP, Mail ...) se sont développées. Système d’exploitation Systèmes répartis (distributed systems) : ▪ Les différentes abstractions du système sont réparties sur un ensemble (domaine) de machines (site). ▪ Le système d'exploitation réparti apparaît aux yeux de ses utilisateurs comme une machine virtuelle monoprocesseur même lorsque cela n'est pas le cas. ▪ Avec un système réparti, l'utilisateur n'a pas à se soucier de la localisation des ressources. Quand il lance un programme, il n'a pas à connaître le nom de la machine qui l'exécutera. ▪ Les systèmes répartis exploitent au mieux les capacités de parallélisme d'un • domaine. ▪ Ils offrent des solutions aux problèmes de la résistance aux pannes. Système d’exploitation Systèmes fermés (ou propriétaires): ▪ Extensibilité réduite : Quand on veut rajouter des fonctionnalités à un système fermé, il faut remettre en cause sa conception et refaire une archive (système complet). ▪ C'est le cas d'UNIX, MSDOS ▪ Il n'y a aucun ou peu d'échange possible avec d'autres systèmes de type différent, voir même avec des types identiques. Système d’exploitation Systèmes ouverts: ▪ Extensibilité accrue : Il est possible de rajouter des fonctionnalités et des abstractions sans avoir à repenser le système et même sans avoir à l'arrêter sur une machine. ▪ Cela implique souvent une conception modulaire basée sur le modèle « client serveur». ▪ Cela implique aussi une communication nécessitant des modules spécialisés. entre systèmes, Système d’exploitation Systèmes ouverts: ▪ Extensibilité accrue : Il est possible de rajouter des fonctionnalités et des abstractions sans avoir à repenser le système et même sans avoir à l'arrêter sur une machine. ▪ Cela implique souvent une conception modulaire basée sur le modèle « client serveur». ▪ Cela implique aussi une communication nécessitant des modules spécialisés. entre systèmes, Système d’exploitation Architecture monoprocesseur (temps partagé ou multiprogrammation): ▪ Ressource processeur unique : Il a fallu développer un mécanisme de gestion des processus pour offrir un (pseudo) parallélisme à l'utilisateur : c'est la multiprogrammation ▪ il s'agit en fait d'une commutation rapide entre les différents processus pour donner l'illusion d'un parallélisme. Système d’exploitation Architectures multiprocesseurs (parallélisme) : Une grande variété d'architectures multiprocesseurs : ▪ SIMD (Single Instruction Multiple Data) : Tous les processeurs exécutent les mêmes instructions mais sur des données différentes. ▪ MIMD (Multiple Instructions Multiple Data) : Chaque processeur est complètement indépendant des autres et exécute des instructions sur des données différentes. ▪ Pipeline : Les différentes unités d'exécution sont mises en chaîne et font chacune partie du traitement à effectuer. Système d’exploitation Architecture faiblement ou fortement couplée : ▪ Architecture fortement couplée : architectures à mémoire commune. Ce sont principalement des ▪ Architecture faiblement couplée : Ce sont des architectures où chaque processeur possède sa propre mémoire locale ; c'est le cas d'un réseau de stations. ▪ Architecture mixte : Ce sont des architectures à différents niveaux de mémoire (commune et privée).