Cours de Systèmes d’Exploitation Introduction aux SE

Introduction générale
 

  • 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
- Serveurs système
   
  • Partie qui peut être commutée / déchargée temporairement
- Pilotes (ou contrôleurs)
  • Modules spécialisés qui dialoguent avec les périphériques réels
- Noyau minimal (micro-noyau / client-serveur)
  • 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 :
                          -    Sauvegarde du contexte d'exécution (registres)
                          -    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

Leave a Reply