Support de Cours Système d’Exploitation I
Chiheb Eddine Ben N’Cir
Plan
Introduction à L’Informatique
Architectures matérielles des ordinateurs
La nécessité d’un système d’exploitation
Les rôles du système d’exploitation
Les Caractéristiques du système d’exploitation
Les composants d’un système d’exploitation
Les différents types d’architectures des systèmes d’exploitation
Ben N’Cir chiheb-Eddine-ESEN-Manouba 2
Traitement automatique de l’information
Ben N’Cir chiheb-Eddine-ESEN-Manouba 3
ENIAC (1946) Electronic Numerical Integrator Analyser and computer
Poids 30 tonnes
Surface 72 m2
330 multiplication/s
Ben N’Cir chiheb-Eddine-ESEN-Manouba 4
Ordinateur (computer)
Qu’est ce qu’un ordinateur ?
Il veut dire: « ordonnateur » : celui qui met en ordre
Mot Ordinant: utilisé dans l'église catholique
Propose encore Ordinatrice électronique
Ben N’Cir chiheb-Eddine-ESEN-Manouba 5
Ordinateur
caractéristiques fondamentales nécessaires pour être
considérées comme un ordinateur sont :
qu'il soit électronique,
qu'il soit programmable,
qu'il puisse exécuter les quatre opérations élémentaires (addition, soustraction, multiplication, division)
qu'il puisse exécuter des programmes enregistrés en mémoire.
Ben N’Cir chiheb-Eddine-ESEN-Manouba 6
Exemples d’ordinateur
Ben N’Cir chiheb-Eddine-ESEN-Manouba 7
Architecture matérielle de l’ordinateur
Ben N’Cir chiheb-Eddine-ESEN-Manouba 8
Imitation du monde naturel
Ben N’Cir chiheb-Eddine-ESEN-Manouba 9
Imitation du monde naturel
Ben N’Cir chiheb-Eddine-ESEN-Manouba 10
Processeur
Le composant qui exécute les programmes
En anglais « CPU »
Ben N’Cir chiheb-Eddine-ESEN-Manouba 11
Random Access Memory
R.A.M:Mémoire Volatile
Disque Dur
Mémoire de stockage permanente (magnétique)
Grande Capacité
Ben N’Cir chiheb-Eddine-ESEN-Manouba 13
Chargement des données
Ben N’Cir chiheb-Eddine-ESEN-Manouba 14
Support: Carte mère
Ben N’Cir chiheb-Eddine-ESEN-Manouba 15
Comment introduire et exploiter les résultats
Ben N’Cir chiheb-Eddine-ESEN-Manouba 16
Périphériques
- périphérie est la surface externe
Ben N’Cir chiheb-Eddine-ESEN-Manouba 17
Exemples de Périphériques
Ben N’Cir chiheb-Eddine-ESEN-Manouba 18
Le langage de l’ordinateur:
Langage binaire
Ben N’Cir chiheb-Eddine-ESEN-Manouba 19
Langage de l’ordinateur et langage de
l’utilisateur
Ben N’Cir chiheb-Eddine-ESEN-Manouba 20
Comment peut-on assurer une bonne
Exploitation des
Publicité
performances des ordinateurs ?
Ben N’Cir chiheb-Eddine-ESEN-Manouba 21
Langage de l’ordinateur et langage de
l’utilisateur
Ben N’Cir chiheb-Eddine-ESEN-Manouba 22
Intermédiaire entre ordinateur et utilisateur
Ben N’Cir chiheb-Eddine-ESEN-Manouba 23
Programmes
• une suite d’opérations prédéterminées destinées à être exécutées de manière automatique par un appareil informatique en vue d’effectuer des travaux, des calculs arithmétiques ou logiques.
Ben N’Cir chiheb-Eddine-ESEN-Manouba 24
Intermédiaire entre ordinateur et utilisateur
Ben N’Cir chiheb-Eddine-ESEN-Manouba 25
La nécessité d’un SE
Deux besoins majeurs :
Point de vue utilisateur
- Comment un utilisateur (ou plusieurs) peut exploiter les
ressources matérielles.
- Trouver des mécanismes pour optimiser l’utilisation du
matériels (facilité, rapidité, partage,…)
- Point de vue système -Comment exploiter d’une manière optimale les ressources
matérielles pour améliorer leur fonctionnement
- Trouver des mécanismes pour gérer efficacement les
ressources matérielles (mémoires centrales, disque dur, temps processeur, …)
Ben N’Cir chiheb-Eddine-ESEN-Manouba 26
Système d’exploitation : un élément du système informatique
| Utilisateur 1 | Utilisateur N | Col3 |
|---|---|---|
| Compilateur Editeur Base de données Applications et Logiciels Système d’exploitation |
Compilateur Editeur Base de données Applications et Logiciels Système d’exploitation |
Compilateur Editeur Base de données Applications et Logiciels Système d’exploitation |
| Matériel | Matériel | Matériel |
Ben N’Cir chiheb-Eddine-ESEN-Manouba
27
Exemples de Systèmes d’exploitation
Ben N’Cir chiheb-Eddine-ESEN-Manouba 28
Système d’Exploitation:
Définitions, rôles, Tâches…
Ben N’Cir chiheb-Eddine-ESEN-Manouba 29
Définition d'un SE ? ? ?
- Le terme « système d'exploitation » couvre un grand nombre de fonctionnalités
Une grande diversité d'architecture d'équipement ayant besoin
d'un SE (des supercalculateurs au smartphones)
- Une grande évolution du matériel informatique puissance des équipements en constante augmentations émergence de nouvelles fonctionnalités/besoins
Ben N’Cir chiheb-Eddine-ESEN-Manouba 30
Définition d'un SE ? ? ?
- Il n'y a pas une définition consensuelle
Selon Prof. Avi Silberschatz :« we have no completely adequate
definition of an operating system »
- Est-ce qu’on peut lister les composants d'un SE ? « we have no universally accepted definition of what is part of
the operating system »
- Une vision simpliste : « the operating system is the one program running at all times on the
computer »
Ben N’Cir chiheb-Eddine-ESEN-Manouba 31
Qu’est ce qu’un Système d’Exploitation
Wikipedia:
Le système d'exploitation ( SE, en anglais Operating System ou OS ) est un ensemble de programmes responsables de la liaison entre les ressources matérielles d'un ordinateur et les applications de l'utilisateur (traitement de texte, jeu vidéo, …)
Il fournit aux programmes applicatifs des points d'entrée génériques pour les périphériques
Ben N’Cir chiheb-Eddine-ESEN-Manouba 32
Les rôles du SE
- Le SE a deux rôles principaux:
- le rôle du système d’exploitation en tant que machine
étendue (ou « machine virtuelle »),
- Le rôle du système d’exploitation en tant que
gestonnaire de ressources .
Ben N’Cir chiheb-Eddine-ESEN-Manouba 33
Le rôle du SE en tant que Machine virtuelle
Le système d’exploitation correspond à « l’interface » entre les applications et le matériel.
De ce point de vue le système d’exploitation est assimilé à une machine étendue ou virtuelle plus facile à programmer ou à utiliser que le matériel :
Un programmeur doit se concentrer sur les fonctionnalités de son logiciel et non pas sur le fonctionnement du matériel.
Un utilisateur peut aussi manipuler un système d’exploitation, sans pour autant avoir à créer un programme ou connaitre le matériel. (masquer la complexité du matériel).
Ben N’Cir chiheb-Eddine-ESEN-Manouba 34
Exemple du rôle du SE en tant que Machine
virtuelle
- Sauvegarde d’un fichier sur disque
Le disque est composé de plusieurs plateaux Le plateau est composé de secteurs et de pistes
Comment l’utilisateur peut chercher une adresse vide, un espace disque nécessaires, etc..
Comment faire tourner la tête de lecture du disque
Le rôle du SE en tant que gestionnaire de
ressources
Publicité
Les différents composants d’un ordinateur doivent coopérer et partager des ressources.
Dans cette optique, le travail du système d’exploitation consiste à :
ordonnancer,
contrôler l’allocation des ressources :
processeurs,
mémoires,
périphériques d’E/S,
... entre les différents programmes qui y font appel.
Ben N’Cir chiheb-Eddine-ESEN-Manouba 36
Le rôle du SE en tant que gestionnaire de
ressources
Pour chacune des ressources d’un ordinateur, le système d’exploitation doit :
connaître à tout moment l’utilisateur de la ressource,
en accorder l’usage de manière équitable,
éviter les conflits d’accès entre les différents programmes ou
utilisateurs.
Le Système d’Exploitation doit assurer
Le partage des ressources.
La protection de l'accès aux ressources.
Ben N’Cir chiheb-Eddine-ESEN-Manouba 37
Exemple du rôle du SE comme étant
gestionnaires de ressources
- Trois programmes d’impression sur la même imprimante.
- Désordre total: Les premières lignes imprimées pourraient
provenir du programme 1, les suivantes du programme 2, puis du programme 3 et ainsi de suite.
- Comment éviter ce problème ?
- Système d'exploitation peut éviter ce chaos potentiel en
transférant les résultats à imprimer dans un fichier tampon sur le disque. Lorsqu'une impression se termine, le système d'exploitation peut alors imprimer un des fichiers se trouvant dans le tampon.
Ben N’Cir chiheb-Eddine-ESEN-Manouba 38
Exemple du rôle du SE comme étant
gestionnaires de ressources
Ben N’Cir chiheb-Eddine-ESEN-Manouba
39
Les taches(de base) d’un OS
La gestion des processus
- qui correspondent à l’exécution des programmes.
La gestion de la mémoire
- qui permet de gérer les transferts entre les mémoires principales et secondaires.
Le système de fichiers
- qui offre à l’utilisateur une vision homogène et structurée des données et des ressources : disques, périphériques.
Les entrées-sorties
- qui correspondent aux mécanismes qu’utilisent les processus pour communiquer avec l’extérieur.
Ben N’Cir chiheb-Eddine-ESEN-Manouba 40
Autres Tâches du OS
Les réseaux d’ordinateurs
- avec les protocoles de communication, d’interconnexion et d’application.
Les systèmes répartis
avec les protocoles d’appels de procédures à distance (RPC)
ou les objets distribués.
Les systèmes de fenêtrage graphiques, … etc.
Ben N’Cir chiheb-Eddine-ESEN-Manouba 41
Caractéristiques des Systèmes d’Exploitation
Ben N’Cir chiheb-Eddine-ESEN-Manouba 42
Systèmes multi/mon Tâches
Un système d'exploitation est dit « multi-tâches » (en anglais multithreaded ) lorsque plusieurs « tâches » ( processus ) peuvent être exécutées simultanément.
par exemple effectuer une compilation et consulter le fichier source du programme correspondant.
Un système est dit préemptif lorsqu'il possède un ordonnanceur ( planificateur ), qui répartit, selon des critères de priorité, le temps machine entre les différents processus qui en font la demande.
Ben N’Cir chiheb-Eddine-ESEN-Manouba 43
Systèmes multi/mono utilisateur
Multiutilisateurs c’est la capacité à pouvoir gérer un panel d'utilisateurs utilisant simultanément les mêmes ressources matérielles.
Un système multiutilisateurs est capable d'exécuter de façon concurrente et indépendante des applications appartenant à plusieurs utilisateurs.
Concurrente signifie que les applications peuvent être actives au même moment et se disputer l'accès à différentes ressources comme le processeur, la mémoire, les disques durs...
Indépendante signifie que chaque application peut réaliser son travail sans se préoccuper de ce que font les applications des autres utilisateurs.
Remarque: Un système multiutilisateurs est nécessairement
multitâches mais la réciproque est fausse
Ben N’Cir chiheb-Eddine-ESEN-Manouba 44
Systèmes multi/mono processeurs
- Systèmes monoprocesseur (temps partagé ou multiprogrammation)
Publicité
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; Multiprogrammation : il s'agit d'une commutation rapide entre les différents processus
pour donner l'illusion d'un parallélisme.
- Systèmes multiprocesseurs (parallélisme) : -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 et 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.
Ben N’Cir chiheb-Eddine-ESEN-Manouba 45
comparaison des systèmes d’exploitation
| Système | Codage | Mono-/multi- utilisateur |
Mono-/multi- tâche |
|---|---|---|---|
| DOS | 16 | mono | mono |
| Windows 3.1 | 16/32 | mono | non préemptif |
| Windows 95 | 32 | mono | coopératif |
| Win. NT/2000 | 32 | multi | préemptif |
| Windows XP, vista,seven |
32/64 | multi | préemptif |
| Unix/Linux | 32/64 | multi | préemptif |
| Mac OS X | 32 | multi | préemptif |
Ben N’Cir chiheb-Eddine-ESEN-Manouba 46
Composition du Système d’Exploitation
Ben N’Cir chiheb-Eddine-ESEN-Manouba 47
Composition du système d’exploitation
Ben N’Cir chiheb-Eddine-ESEN-Manouba 48
Noyau ( kernel )
Le noyau assure ces fonctionnalités :
gestion des périphériques (au moyen de pilotes)
gestion des files d'exécution (aussi nommée processus) :
attribution de la mémoire à chaque processus
ordonnancement des processus (répartition du temps d'exécution sur le ou les processeurs)
synchronisation et communication entre processus (services de synchronisation, d'échange de messages, mise en commun de segments de mémoire, etc.)
gestion des fichiers (au moyen de systèmes de fichiers)
gestion des protocoles réseau (TCP/IP etc.)
Ben N’Cir chiheb-Eddine-ESEN-Manouba 49
Noyau
Au lancement:
Boot : le programme qui initialise l’ordinateur
Permet aux premiers services d’accéder aux applications
système : gestion de la mémoire, accès aux disques durs et accès aux périphériques
Mémoire centrale (vive): répartition
Réservée pour le système
Réservée pour les applications
Assure une indépendance entre les applications et les matériels
Ben N’Cir chiheb-Eddine-ESEN-Manouba 50
Les bibliothèques dynamiques
= Libraries
Regroupent les opérations souvent utilisées, selon les fonctionnalités (E/S, fichier, …)
Ces opérations sont disponibles pour être appelées et exécutées par d’autres programmes
Ben N’Cir chiheb-Eddine-ESEN-Manouba 51
Le système de fichiers
Un système de fichiers est une structure de données permettant de stocker les informations et de les organiser dans des fichiers sur des mémoires secondaires (disque dur, disquette, CD-ROM, clé USB, etc.)
Ce stockage de l'information est persistant
Une telle gestion des fichiers permet de traiter, de conserver des quantités importantes de données ainsi que de les partager entre plusieurs programmes informatiques
Il offre à l'utilisateur une vue abstraite sur ses données et permet de les localiser à partir d'un chemin d'accès
Ben N’Cir chiheb-Eddine-ESEN-Manouba 52
Interface utilisateur-machine
Via ligne de commande (interpréteur de commandes)
- shell, MSDos
Interface graphique ( Graphical User Interface)
- Xterm, Linux, Windows, Macintosh
Ben N’Cir chiheb-Eddine-ESEN-Manouba 53
Shell
Shell ( coquille par opposition au noyau) = L' interpréteur de commandes permettant la communication avec le SE par l'intermédiaire d'un langage de commandes
Permet à l'utilisateur de piloter les périphériques en ignorant toutes les caractéristiques du matériel qu'il utilise, (exemple: la gestion des adresses physiques).
E.g. sur Unix/Linux: csh, tcsh, …
ls : lister les répertoires et les fichiers du répertoire courant
mv x y : changer le nom du fichier/répertoire « x » en « y »
Ben N’Cir chiheb-Eddine-ESEN-Manouba 54
Deux Modes d’exécution
But: protéger l'exécution du système d'exploitation de celles des programmes utilisateurs,
Le mode utilisateur dans lequel les programmes utilisateurs sont exécutés. Dans ce mode certaines instructions sont interdites, de cette
manière on contraint les programmes à faire appel au système d'exploitation pour certaines opérations.
- Le mode protégé ou superviseur (également appelé mode noyau) est réservé à l'exécution des primitives du système d'exploitation. Dans ce mode le processeur peut exécuter toutes les instructions. Les appels système s’exécutent dans ce mode.
Publicité
Ben N’Cir chiheb-Eddine-ESEN-Manouba 55
Les appels systèmes
Les appels système sont des fonctions :
appelées depuis un programme du mode utilisateur.
dont l’exécution (le traitement) est effectuée dans le mode
noyau .
- dont le retour est effectué dans le programme appelant
dans le mode utilisateur.
Ben N’Cir chiheb-Eddine-ESEN-Manouba 56
utilitaires
Ben N’Cir chiheb-Eddine-ESEN-Manouba 57
Les différents types d’architectures des systèmes d’exploitation
Ben N’Cir chiheb-Eddine-ESEN-Manouba 58
Les différents types d’architecture de systèmes
d’exploitation
On parle de structures du noyau du système d’exploitation
Monolithiques
Modulaire / Multicouches
Micronoyaux
Exonoyaux
Machine virtuelle
Le noyau est généralement exécuté dans un espace mémoire séparé de l’espace des applications: espace noyau . Par opposition à l’espace utlisateur . Le passage entre ces deux espaces se fait via des appels systèmes. L’intérêt de cette séparation est que le système ne crash/se plante pas si une application plante.
Partie 1 : Introduction 59
Système d’Exploitation Monolithiques
Un seul bloc contenant l’ensemble des services système (mode noyau).
Facilité de conception
Rapidité d’exécution
Code dur à maintenir
Dos, très vieux UNIX et Linux, etc.
Système d’exploitation
| sseerrvviiccee | Col2 | Col3 | sseerrvviiccee | Col5 | sseerrvviiccee |
|---|---|---|---|---|---|
| service service |
service service |
service service |
service service |
service service |
|
| service service |
service service |
||||
| service service |
service service |
service service |
service service |
||
| service service |
service service |
Partie 1 : Introduction 60
Système d’Exploitation Multicouches
- SE organisé en hiérarchie de
couches . Chacune construite sur la base des services offerts par la couche inférieure.
- Facilité de conception et de
développement
- Code plus organisé et
maintenable.
- Chargement des fonctionnalités à
la demande
- Linux, BSD, SOLARIS
| Application | Col2 |
|---|---|
Système d’exploitation
Partie 1 : Introduction 61
Système d’Exploitation Micronoyau
Déplace plusieurs fonctions du SE vers des « processus serveur » s’exécutant en mode utilisateur réduction au maximum de la taille du code privilégié (en mode noyau).
But : gérer les communications entre applications et serveurs pour:
Renforcer la politique de sécurité
Permettre l’exécution de fonctions système (accès aux registres d’E/S,
etc.).
Fiabilité augmentée: si un processus serveur « crash », le système continue à fonctionner et il est possible de relancer ce service sans redémarrer.
Modèle facilement étendu à des systèmes distribués
MAC OS X, GNU HURD, WindowsNT
Processus Processus
clientclient
Processus Processus
Mode utilisateur
clientclient
62
Autres types de noyaux…
SE à Noyaux hybrides
SE à Méta-noyaux
SE à Exo-noyaux
SE machine virtuelle(VMWARE)
SE à noyaux temps réel
Partie 1 : Introduction 63