Introduction Au Systeme D'exploitation 2
Introduction Au Systeme D'exploitation 2
Introduction Au Systeme D'exploitation 2
3
Introduction
• Un système informatique est composé de deux entités : matérielle
et logicielle.
• La partie matérielle représente un ensemble de dispositifs
physiques tels que:
− Le processeur
− La mémoire
− La carte mère
− Les périphériques (écrans, disques durs, imprimantes, etc.)
• Objectifs:
‒ Faire fonctionner correctement tous les dispositifs
physiques.
‒ Rendre l’utilisation du matériel simple à l’utilisateur.
4
Introduction
Organisation
d’un système
informatique
5
Introduction
• La partie logicielle comporte des programmes qui sont classés en
deux catégories :
– les programmes d'application des utilisateurs,
– les programmes système qui permettent le fonctionnement de
l'ordinateur. Parmi ceux-ci, le système d'exploitation.
6
1/ Définition d’un Système d’Exploitation
Un Système d’Exploitation (noté SE ou OS, abréviation du terme
anglais Operating System) est le logiciel de base qui permet
l’utilisation d’un ordinateur.
Un SE peut être vu comme un ensemble de programmes qui
remplissent deux grandes fonctions:
• Machine virtuelle.
– Masquer les éléments fastidieux du matériel pour fournir une interface
simple à utiliser (Abstraction des périphériques).
– Permettre à plusieurs programmes de fonctionner en même temps,
chaque programme ayant sa propre machine virtuelle.
• Gestionnaire de ressources.
– Ordonnancer et contrôler l’allocation des ressources (Processeur,
mémoire, périphériques, etc.)
– Améliorer l'efficacité du système
7
Exemples de systèmes d’exploitation
Parmi les systèmes d’exploitation les plus connus, nous pouvons citer :
• MacOS (Apple)
9
2/ Evolution historique des systèmes
d’exploitation
2ème Génération(1955-1965): les transistors et le traitement par lot
• Les ordinateurs sont devenus plus fiable grâce à l’apparition des
transistors avec unités de bandes magnétiques.
• Commercialisation des ordinateurs à des utilisateurs (grandes
compagnies, universités, etc.).
• Les programmeurs utilisaient le traitement par lot:
- Le programmeur fournit son programme à un opérateur sur
bande magnétique ou sur cartes perforées.
- Les programmes sont regroupés et soumis les uns après les
autres par l’opérateur.
- L’opérateur récupère les résultats sur bande ou sur cartes
perforées et les distribue aux programmeurs.
• Les utilisations principales étaient le calcul scientifique et
l’ingénierie (équations différentielles).
10
2/ Evolution historique des systèmes d’exploitation
3ème Génération(1965-1980): les circuits intégrés et la
multiprogrammation
• Amélioration des coûts et des performances (circuits intégrés).
• L’arrivée sur le marché des unités de disques, qui offrent l’accès
aléatoire et des capacités de stockage importantes.
• Apparition du spool (spool, Simultaneous Peripheral Operation
On Line) pour le transfert des travaux des cartes vers le disque.
• Développement de la multiprogrammation (partitionnement de la
mémoire pour des tâches différentes et partage du processeur).
• Le processeur est alloué à un job, et dès que celui-ci effectue une
E/S, le processeur est alloué à un autre job, réduisant ainsi le
temps de réponse.
• Enfin, apparition des systèmes à temps partagé (répartition du
temps CPU en « quantum de temps » ). 11
2/ Evolution historique des systèmes
d’exploitation
4ème Génération (1980-1990): les ordinateurs personnels
• Développement des circuits LSI (Large Scale Integration) et
VLSI (Very Large Scale Integration) contenant des centaines de
transistors au cm2.
• Il existait deux principaux systèmes d’exploitation : MS-DOS
(Microsoft) et UNIX.
• Apparition des réseaux d’ordinateurs individuels qui
fonctionnent sous des systèmes d’exploitation en réseau ou des
systèmes d’exploitation distribués.
12
2/ Evolution historique des systèmes
d’exploitation
5ème Génération (1990-????): les ordinateurs personnels portables
et de poche
• Apparition des PDA (Personal Digital Assistant), des smartphones
et des tablettes électroniques grâce à l’intégration des composants
et l’arrivée des systèmes d’exploitation de type «micro-noyau».
• Les systèmes d’exploitation de type « micro-noyau» sont
modulaires (un module par fonction); ils peuvent être réalisés avec
plus ou moins de modules et donc adaptables à de très petites
machines.
• Les appareils personnels remplacent les terminaux.
• Développement des réseaux locaux haute performance et
d’Internet.
13
3/ Classification des systèmes d’exploitation
3.1/ Les systèmes Mono-tâche (MS-DOS) : Dans un système
mono-tâche, à tout instant, un seul programme est exécuté; un autre
programme ne démarrera, sauf conditions exceptionnelles, que
lorsque le premier sera terminé.
16
3/ Classification des systèmes d’exploitation
17
3/ Classification des systèmes d’exploitation
3.5/ Les systèmes temps réel
18
4/ Fonctions d’un SE
19
4/ Fonctions d’un SE
20
4/ Fonctions d’un SE
4.1/ 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
• Le SE utilise un allocateur ( dispatcher ) responsable de la
répartition du temps processeur entre les différents processus,
et un planificateur ( scheduler ) déterminant les processus à
activer, en fonction du contexte.
21
4/ Fonctions d’un SE
4.2/ 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.
• Comme la mémoire physique est parfois 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 mémoire centrale, les parties de
code et données utiles à l’exécution
22
4/ Fonctions d’un SE
4.3/ Gestion des entrées/sorties
• Les entrées/sorties correspondent aux mécanismes utilisés par
les processus afin de communiquer avec l’extérieur.
• 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 et les opérations de bas niveau de l’unité d’échange
responsable du périphérique.
• Ces entrées/sorties font appel aux couches les plus proches du
matériel, et dont le système tente de masquer les difficultés
aux utilisateurs.
23
4/ Fonctions d’un SE
4.4/ 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
24
4/ Fonctions d’un SE
4.5/ 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,
CD-ROM, etc).
• 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).
25
4/ Fonctions d’un SE
26
4/ Fonctions d’un SE
Exemples de protections
• Certaines régions ne doivent pas être vu par les utilisateurs
– tables d'authentifications
– zones d'autres utilisateurs
• Entrées/Sorties
– Toutes les instructions E/S sont privilégiées
– Elles passent toutes par le noyau
• La mémoire
– Gestion de la mémoire au niveau matériel
• Temps processeur
– Éviter les boucles infinies
-> redonner le contrôle au SE régulièrement.
27
5/ Modes d’exécution et appels système
• Le système d’exploitation fourni un ensemble de services aux
utilisateurs et à leurs applications. Ces services peuvent être appelés
soit par des appels systèmes, soit par des commandes.
• L’interpréteur de commande (shell sous Unix) est le mode
fondamental de contrôle d’un système d’exploitation : l’utilisateur
entre ses commandes au clavier, qui sont ensuite transmises au
programme (l’interpréteur) qui exécute en mode interactif les
instructions.
• En général, les processeurs ont deux modes de fonctionnement, le
mode superviseur (kernel mode : mode noyau) et le mode
utilisateur.
• Ces modes de fonctionnement assurent la protection du système
d’exploitation contre les intrusions et les erreurs.
28
5/ Modes d’exécution et appels système
• Le mode superviseur est le mode d’exécution du système
d’exploitation. C’est un mode privilégié et protégé.
• Le mode utilisateur est le mode d’exécution de tout programme
utilisateur, y compris l’interpréteur de commande. Ce mode est
restrictif : des instructions machine sont interdites, et spécialement
les instructions permettant la manipulation des interruptions.
• Lorsqu’un programme utilisateur a besoin d’un appel système (par
exemple une entrée/sortie sur disque pour la lecture ou l’écriture
d’un fichier), il doit quitter son mode courant d’exécution
(utilisateur) pour passer en mode superviseur, et exécuter la routine
système, le code du système d’exploitation.
• Il y a alors commutation de contexte : le système d’exploitation
sauvegarde l’état du processus, pour charger son propre code.
• Une fois l’appel système effectué, le contexte du processus appelé
est restauré, pour continuer son exécution normale. 29
6/ Le gestionnaire d’interruptions
• Une interruption est une réponse à un événement qui interrompt
l’exécution du programme en cours à un point observable
(interruptible) du processeur central.
• Physiquement, l’interruption se traduit par un signal envoyé au
processeur.
• Elle permet de forcer le processeur à suspendre l’exécution du
programme en cours, et à déclencher l’exécution d’un programme
prédéfini, spécifique à l’événement, appelé routine d’interruption.
• La Procédure d'interruption est la suivante:
- Sauvegarde du contexte d'exécution du programme en cours;
- Lire l'emplacement du programme destiné à gérer cet événement (table
d’association préétablie);
- Exécution de la routine d’interruption;
- Restauration du contexte;
- Reprise du programme. 30
6/ Le gestionnaire d’interruptions
Exemple d’interruption
• Le Programme utilisateur demande l’exécution d’une E/S (exemple:
écriture sur le disque (write))
• Le gestionnaire d'interruptions prépare le Programme d’E/S et le
lance;
• À la fin du module d'E/S le gestionnaire d'interruption reprend la
main pour examiner son état;
• Le programme utilisateur reprend son exécution.
31
6/ Le gestionnaire d’interruptions
32
6/ Le gestionnaire d’interruptions
33
6/ Le gestionnaire d’interruptions
34
7/ Structure d’un SE
Il existe plusieurs possibilités de conception pour un SE, les
différents schémas d’organisation possibles sont les suivants :
• En couches
• À noyau
– Monolithique
– Microkernel
– Hybride
• Modèle client/serveur
• Machines virtuelles
7/ Structure d’un SE
7.1/ En couches
• Structuration hiérarchique bien définie
• Une couche ne fait appel qu’aux services de la couche
directement inférieure
• L’intérieur de chaque niveau est masqué par rapport aux autres.
• Bonne théorie générale, extensible
• Très peu efficace, trop d’intermédiaires (Un appel système
transmis de couche en couche avant d’être traité peut ralentir
son traitement)
• Traversée des couches contraignantes
pour les performances
• Exemple : THE (Technische Hogeschool
Eindhoven) de Dijkstra (1968)
7/ Structure d’un SE
7.2/ À noyau
• Le noyau est généralement exécuté dans un espace mémoire séparé de
l’espace des applications: espace noyau.
• Structuration à deux niveaux :
– Mode noyau (Kernel Mode)
– Mode utilisateur (User Mode)
• Les applications en mode utilisateur doivent demander des services au
noyau à travers des appels système
7/ Structure d’un SE
7.2/ À noyau : Monolithique
• Le terme monolithique désigne un seul niveau,
• Les SE monolithiques intègrent une grande quantité de
fonctionnalités dans le noyau,
• Efficaces à l’exécution.
• Gâchis de mémoire (tout est chargé)
• Exemple : MS-DOS, les premières versions d’UNIX
7/ Structure d’un SE
7.2/ À noyau : Monolithique
Exemple d’exécution
39
7/ Structure d’un SE
7.2/ À noyau : Micronoyau
• Noyau réduit au stricte nécessaire (microkernel).
• Ensemble de petits modules bien définis dont un seul (le
micronoyau) fonctionne en mode noyau.
• Gère principalement l’ordonnancement, la gestion de la
mémoire et la communication entre processus.
• Les drivers et les applications s’exécutent en mode utilisateur.
• Portable et facilement maintenable.
• Exemples : Minix.
7/ Structure d’un SE
7.2/ À noyau : Comparaison entre noyau
monolithique et micronoyau
41
7/ Structure d’un SE
7.2/ À noyau : Hybride
• Compromis entre le kernel monolithique et le microkernel.
• Les drivers s’exécutent en mode noyau.
• Exemple : Windows.
7/ Structure d’un SE
7.3/ Le modèle client/serveur
• Le système d’exploitation est composé d’un noyau et d’un
ensemble de serveurs.
• Le noyau gère la communication entre les clients et les serveurs.
• Les clients sont les demandeurs de services. Par exemple, pour
demander un service, comme la lecture d’un bloc d’un fichier, un
processus utilisateur (aussi appelé processus client) envoie une
requête à un processus serveur qui effectue le travail et renvoie
une réponse.
• Les serveurs s’exécutent en mode utilisateur. Ils ne peuvent donc
pas accéder directement au matériel. Par conséquent, une erreur
dans le serveur de fichiers, par exemple, n’affectera pas, en
général, l’ensemble de la machine. Les dégâts se limitent au
serveur.
43
7/ Structure d’un SE
7.4/ Machines virtuelles
• Le cœur du système se charge de la multiprogrammation en
fournissant à la couche au-dessus plusieurs machines virtuelles.
Des systèmes d’exploitation différents peuvent tourner sur une
seule machine virtuelle.
• Exemples de machines virtuelles :
– IBM VM: un logiciel qui offre à chaque usager sa propre
machine virtuelle monotâche. Les machines virtuelles étaient
planifiées avec du temps partagé.
– VMWare : un logiciel permettant d’exécuter simultanément
plusieurs SE sur la même machine, des sessions OS/2,
Windows, Linux, etc.
– Oracle VM VirtualBox : un logiciel de virtualisation gratuit
multiplateformes d’Oracle. Il fonctionne sur différents systèmes
d’exploitation hôtes à savoir Windows, Linux, macOS et
44
Solaris.
7/ Structure d’un SE
7.4/ Machines virtuelles
Avantages:
• Plusieurs machines virtuelles sont obtenues à partir d’une seule
machine physique:
– Utilisation plus efficace du matériel.
• Utile à des fins d’expérimentation:
– Un nouveau SE ou une nouvelle application peuvent être
développés sur une machine virtuelle sans affecter les autres.
• Protection complète, car les machines virtuelles sont isolées les
unes des autres.
46