Telechargé par Souf Boulanouar

Cours systeme d’exploitation avancee

publicité
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).
Téléchargement