Systèmes d`exploitation

publicité
Systèmes d’exploitation
Introduction
Introduction
Sans logiciels : l’ordinateur est inutile
2 catégories de logiciels :
– Programmes systèmes
• Permettent le fonctionnement de l’ordinateur
– Programmes d’applications
• Résolvent les problèmes de l’utilisateur
SE = le  important des programmes systèmes
Ordinateur = système complexe (1 ou +ieurs processeurs, mémoire principale,
d’E/S, …)
horloges, terminaux, disques, interfaces de connexion réseau, périphériques
 Sans SE peu de programmes
Proposer aux programmeurs une machine virtuelle (le SE)
Organisation d’un ordinateur
Système
bancaire
Réservation
d’avion
Jeu d’aventures
Programmes d’application
Compilateurs
Éditeurs
Interpréteur de
commandes
Programmes système
Système d’exploitation
Langage machine (Assembleur)
Microprogramme (Interpréteur en ROM)
Matériel
Dispositifs physique (électronicien)
Fonction primordiale d’un SE :
masquer cette complexité et
offrir un ensemble d’instructions  simples à utiliser
Ex. : lecture d’un fichier sur disque sans se soucier de positionner les têtes de lecture
Qu’est-ce qu’un SE ?
2 définitions possibles
 SE effectue 2 tâches sans rapport
SE = Machine étendue
– SE = programme qui soustrait le matériel aux regards
du programmeur et offre une vue simple et agréable de
fichiers nommés qui peuvent être lus et écrits
SE = Gestionnaire de ressources
– SE = programme qui ordonne et contrôle l’allocation des
ressources (processeurs, mémoire, périphériques d’E/S, …)
disponibles sur un ordinateur
Historique des SE
1ère génération (45-55) : tubes à vide et cartes enfichables
– Programmation en langage machine et fonctionnement par réservation du temps de calcul
– Absence de véritable SE
2ème génération (55-65) : transistors et traitement par lots
– Regroupements des travaux, traitement via un opérateur et lecteur de bandes
– 1 langage de programmation (Fortran)
3ème génération (55-80) : circuits intégrés et multiprogrammation
– Jusqu’alors 1 ordinateur=1 SE, maintenant même SE pour  ordinateurs
– Partitionnement de la mémoire (plusieurs tâches partagent la mémoire)
 multiprogrammation
– Apparition d’Unix (simplification de MULTICS des laboratoires Bell)
4ème génération (80-…) : ordinateurs personnels
– MS-DOS (étendu en Windows)  machine intel
– Unix  station de travail et machine non-intel
– Linux (système Unix) pouvant fonctionner sur une machine intel
Génération future : systèmes d’exploitation distribués
Principes des SE (vue externe)
Interface (fournie par le SE) entre le SE et les
programmes utilisateurs se font par des instructions
étendues : les appels système (AS)
A chaque AS correspond une bibliothèque de fonctions
(ex : <unistd.h>)
Les AS créent, détruisent et utilisent divers objets
logiciels gérés par le SE
Les processus et les fichiers constituent les objets les
plus importants
Les processus
Processus (concept clé de tout SE) = programme en cours d’exécution
Processus constitué :
–
–
–
–
–
–
–
D’un programme exécutable
De ses données
De sa pile d’exécution
De son compteur ordinal
De son pointeur de pile
Et d’autres registres
… (autres infos nécessaires à l’exécution du programme)
Organisation des processus sous forme d’arbre (notion de père et de fils)
A
B
D
E
C
F
Les fichiers
Tâche fondamentale du SE :
Offrir un modèle d’accès aux fichiers facile d’emploi et indépendant du
matériel en masquant les spécificités des disques (et autres
périphériques d’E/S)
(ex : accès à un fichier sur un HD, une FD ou un CD)
Plupart des SE font appel au concept de répertoires et une
organisation sous forme d’arbres
Système de protection d’accès aux fichiers (pour les SE multi-utilisateurs)
Existence de fichiers spéciaux (ex: les tubes)
Structure d’un SE (vue interne)
 modèles peuvent être utilisées pour réaliser un SE
4 structures expérimentées (non exhaustifs) :
– systèmes monolithiques
– systèmes à couches
– machines virtuelles
– modèle client/serveur
–…
Systèmes monolithiques
Surnommés le « grand désordre » / Structure = Absence de structure
SE = collection de procédures chacune pouvant appeler à tout moment
n’importe qu’elle autre
Les AS commutent la machine du mode utilisateur au mode noyau (ou
superviseur)
Appel
au noyau
Mémoire
principale
Programme utilisateur
Mode utilisateur
4
1
3
2
Procédure
de service
Table de sélection
Mode superviseur
1.
2.
3.
4.
Passage en mode noyau
Recherche du numéro de service
Localisation et appel de la procédure
Contrôle rendu au prog. utilisateur
Systèmes à couches
Structuration du SE
Chaque couche s’appuyant
sur la couche inférieure
Premier système à couche « THE »
5 opérateur
4 programmes utilisateurs
3 gestion des E/S
2 communication op./proc.
1 gestion mémoire
0 allocation processeur et multiprog
Système « MULTICS » généralise le concept de couches en
anneaux concentriques, l’anneau du centre disposant de plus
de droits que les anneaux extérieurs
Exemple d’utilité :
Un prof écrit un prog d’évaluation des élèves qu’il exécute dans
l’anneau n, il autorise les étudiants à l’exécuter dans le niveau n+1
sans que ces derniers puissent modifier leur note
Les machines virtuelles
Le cœur du système, appelé moniteur de machine
virtuelle, s’exécute à même le matériel et se
charge de la multiprogrammation en fournissant à
la couche au-dessus plusieurs machines virtuelles
Ex : VM/370 (initié par IBM)
Le modèle client-serveur
Idée : déplacer le code dans des couches supérieures
(tendance des SE modernes : réduire le SE à un noyau minimum)
Reporter la plupart des fonctions du SE dans des processus utilisateurs
– Ex : lecture d’un bloc d’un fichier par un prog. utilisateur (appelé client) se fait par l’envoi d’une requête
à un processus serveur qui effectue le travail et envoie la réponse
Mode
Utilisateur
Mode
Noyau
Processus
client
Processus
client
Serveur de
processus
Serveur de
terminal
Noyau
…
Serveur de
fichiers
Serveur de
mémoire
message
Avantages : + faciles à modifier, possibilité de fonctionnement en mode dégradé
(en cas de plantage d’un matériel les dégâts se limitent au serveur correspondant)
Ce modèle est particulièrement adapté aux systèmes distribués
Téléchargement