Cours de Systèmes d’Exploitation Introduction aux SE
- Rôle d’un système d’exploitation
- Organisation d’un système d’exploitation
- Historique des systèmes d’exploitation
Rôle d’un système d’exploitation (SE)
Intermédiaire entre l’ordinateur et les applications/utilisateurs
- Ordinateur vu comme un ensemble de ressources (physiques + logiques)
- Exemples de ressources physiques : cpu, mémoire, périphériques
- Exemples de ressources logiques : fichiers, sessions, processus
- Fournir une interface d’accès simplifiée aux ressources
- Gérer le partage efficace et équitable des ressources
- Assurer le contrôle d’accès aux ressources
=> Le SE est un gestionnaire de ressources qui met en œuvre une machine virtuelle
Architecture générale
Structure d’un SE
- Noyau
- Partie qui réside constamment en mémoire centrale
- Routines qui requièrent un mode d'exécution privilégié
- Données globales et partagées par les serveurs système
- Partie qui peut être commutée / déchargée temporairement
- Modules spécialisés qui dialoguent avec les périphériques réels
- Mach / Chorus
- Maximise les fonctions gérées par des serveurs systèmes
- Meilleure extensibilité et adaptabilité
- Meilleure isolation des fautes
- Noyau maximal (monolithique)
- Unix, Linux, Windows XP
- Meilleures performances
- Le SE est un ensemble de procédures, ce qui diminue les IPC (Inter Processus Call)
Interactions applications => SE
- Fonctions système (API)
- Pour le programmeur d’applications, le SE apparaît comme un ensemble de fonctions appelables, permettant de manipuler les ressources physiques et logiques
- Une fonction système peut interagir avec un serveur système pour la réalisation d’un service particulier
- Au plus bas niveau, une fonction système peut engendrer un appel système (appel au noyau)
- Langages de haut niveau : appels systèmes cachés par compilateurs / interpréteurs / librairies
Appels systèmes
- Interruption logicielle (trap / svc)
- Passage du mode d’exécution utilisateur en mode noyau (également appelé mode superviseur)
- Exécution du traitant d’interruption
- Coûteux
- Tout passage en mode noyau provoque :
- Restauration du contexte
Ressources gérées par le SE
- Programme / application
- Processus ======> Activités
- Thread (processus léger)
- Pilotes
- Mémoire centrale
- Fichiers =======> Données
- Mémoires secondaires
Gestion des activités
- Lancement d’un programme => création d’un processus
- Un processus = un programme en cours d’exécution
- Durée de vie d’un processus = celle du programme exécuté
- Le SE
- Crée et détruit les processus
- gère l’allocation des ressources aux processus
- fournit des moyens de communication entre processus locaux ou distants
Gestion des données
- Mémoire centrale = un grand tableau d’octets (contenu volatile)
- Les fichiers contiennent des données persistantes (programmes, données)
- Mémoires secondaires = supports de stockage permanents
- Le SE
- gère l’allocation de la mémoire centrale aux processus
- gère la création, la destruction, l’accès aux fichiers
- gère l’allocation de la mémoire secondaire aux fichiers
Interactions Utilisateur => SE
- Interpréteur de commandes
- Permet à un utilisateur d’exécuter de manière interactive des requêtes de haut niveau, qui mettent en jeu des appels systèmes
- Manipulation de processus
- Manipulation de fichiers
- Manipulation de mémoires secondaires
- …
- Est lui-même un programme applicatif pour le SE
Types de SE
- Variations liées :
- Aux évolutions technologiques
- Miniaturisation des composants
- Puissances croissantes
- Au domaine d’utilisation
- Informatique embarquée
- Informatique domestique
- Informatique d'entreprise
- …
1ère génération (~1950)
- Ordinateur
- Ensemble de tubes (~20 000)
- Chargement manuel par le programmeur à l’aide d’interrupteurs
- L’utilisateur exécute son programme immédiatement après le chargement
- Pas de SE
- Inconvénients
- Très encombrant
- Très lent
- Très peu fiable
2ème génération
Ordinateurs “mainframes”
- Traitement par lots (cartes perforées)
- L’enchainement des lots est décrit par une carte perforée spéciale (carte de contrôle)
- Le SE se limite à un moniteur résident qui enchaine les lots
- Inconvénients
- Lent
- Non interactif
Mono-programmation
E/S tamponnées
- Utilisation d’unités d‘échange (UE) capables :
- de fonctionner simultanément avec l’UC (asynchronisme)
- de transférer des tampons = blocs d’octets
- Exécution pgm i // lecture pgm i+1
- Les cartes sont lues par l’UE et stockées dans des tampons (buffers) d’entrée
- L’UC lit les données dans le tampon d’entrée et produit le résultat dans un tampon de sortie
- Contraintes :
- Il faut gérer la synchronisation d’accès aux tampons
- Ecrire (tampon) => tampon vide
- Le périphérique peut être particulièrement lent
- La place mémoire utilisée peut être grande
E/S Spoolées
- Tampons supplémentaires en mémoire secondaire (files d’attente de données à lire ou à écrire sur un périphérique lent)
- SPOOL = simultaneous peripheral operations on-line
- Spooling d'impression : documents à imprimer chargés dans un tampon en mémoire secondaire, "aspirés" par l'imprimante selon sa propre vitesse
3ème génération (1960/1970)
- Systèmes multi-programmés
- Plusieurs tâches en mémoire simultanément
- Multiplexage du processeur entre les tâches
- Perte du processeur lors des E/S
- Avantages
- Meilleure utilisation de l’UC
- Inconvénients
- Complexité
- Taille de mémoire grande
- Partage et protection des ressources
Multi-programmation
Multi-programmation et protection
- Éviter qu’une tâche puisse lire / écrire dans la zone mémoire affectée à une autre tâche
- Éviter qu’une tâche puisse manipuler la zone réservée au système autrement que par les appels système
- Éviter qu’une tâche puisse lire / écrire des données d’E/S d’une autre tâche
=> Complexifie la gestion des ressources (mémoire, E/S, …)
3ème génération (suite)
- Systèmes à temps partagé (1970)
- Partage du temps processeur entre les tâches
- Quantum de temps
- Tâches en mémoire ou “swappée” sur disque
- Plus grand nombre de tâches
- Une mémoire plus grande allouée à chaque tâche
- Avantages
- Temps de réponse corrects pour tâches courtes, même en présence de tâches longues et non interactives
- Inconvénients
- Complexité
- L’utilisation du processeur peut être moins bonne
Systèmes mono/multiprogrammés et temps partagé
4ème génération (après 1970)
- Ordinateurs personnels
- Architectures spécialisées
- Systèmes répartis
Ordinateurs personnels
- Initialement
- Mono-tâches (MS/DOS, Windows3/11)
- Dédiés à un utilisateur
- Pas de protection / sécurité
- Très interactifs
- Très conviviaux
- Evolution
- Multi-tâches (MacIntosh, Windows NT/2000/XP, Unix, Linux)
- Multi-utilisateurs
- Connections réseaux (exploitation dans les systèmes répartis)
Systèmes parallèles multiprocesseurs
- SMP (Symetric Multi Processeurs)
- Systèmes généralistes (serveurs BD, Web, SI, NFS, …)
- Processeurs standards
- Partage total de la mémoire
- Machines de calcul parallèles
- Architectures spécialisées
- Processeurs spécifiques pour le calcul vectoriel
- Réseaux spécialisés
- Partage total ou partiel de la mémoire (bancs)
Systèmes clustérisés
- Plusieurs noeuds (= machines)
- partageant un disque (share disk)
- ou bien ne partageant rien (share nothing)
- Un nœud est également appelé un serveur
- Connectés par un réseau spécialisé (SCI, Ethernet, …)
- Invention des réseaux locaux à haut débit (Local Area Network)
- Échanges rapides de données de grandes taille
- 3 caractéristiques :
- Montée en charge
- Passage à l’échelle (extensibilité / scalability)
- Haute disponibilité (serveurs back-up)
Systèmes à Haute Disponibilité
- Haute disponibilité
- Temps d’indisponibilité < quelques minutes par an
- Pas de transparence à la panne (vue par les clients)
- Relancement automatique
- Serveurs back-up (prennent le relais en cas de panne)
Systèmes Clustérisés
Systèmes Distribués / Répartis
- Distribution de l’exécution sur un ensemble de serveurs distants
- En général, pas de mémoire / disque partagé
- Pas de matériel spécifique
- Pas d’état global
- Applications multi-usagers / multi-localisations
- Télé-conférence, commerce électronique, SI, …
- Évolution dynamique des serveurs
- Données distribuées et partagées
Couverture du terme système réparti
- Englobe maintenant :
- Architectures distribuées fortement couplées :
- Systèmes parallèles multi-processeurs
- Architectures clusters
- Architectures distribuées faiblement couplées
- Grilles de calcul
- Grilles d'entreprises
- Architectures pair à pair
- Applications Web
Motivations pour les systèmes répartis
- Partage de ressources sur le réseau :
- Processeur, mémoire, serveurs
- Code mobile
- Données mobiles
- Potentiel :
- Disponibilité
- Montée en charge
- Passage à l’échelle
Systèmes Temps-réel
- Contraintes temporelles
- Temps d'exécution bornés
- Utilisés dans des situations spécifiques
- systèmes d’imagerie médicale,
- systèmes de contrôle industriel,
- robotique,
- …
- Hard real-time systems
- Peu ou pas de mémoire secondaire
- Pas de temps-partagé
- Temps de commutation très court
- SE complètement spécifique
- Soft real-time Systems
- Utilisés dans les applications multimédia, réalité virtuelle
- Contraintes de temps plus souples
- Gestion de priorités de tâches
- Gestion spécifique de la mémoire
Systèmes « handled »
- Personal Digital Assistants (PDAs)
- Téléphones cellulaires
- Systèmes d’exploitation spécifiques
- Contraintes :
- Mémoire limitée
- Processeurs lents
- Petits écrans
- Faible consommation d’énergie
Article plus récent Article plus ancien