1 / 42

GPA435 Systèmes d’exploitation et programmation de système

GPA435 Systèmes d’exploitation et programmation de système. Chapitre 1 Évolution des systèmes: Traitement en série, par lots, multi-tâche et multi-utilisateur, S.E. moderne. Révision août 2013 par Tony Wong, ing., Ph.D . Évolution des systèmes. Introduction.

gerald
Download Presentation

GPA435 Systèmes d’exploitation et programmation de système

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. GPA435 Systèmes d’exploitation et programmation de système Chapitre 1 Évolution des systèmes: Traitement en série, par lots, multi-tâche et multi-utilisateur, S.E. moderne Révision août 2013 par Tony Wong, ing., Ph.D.

  2. Évolution des systèmes Introduction Systèmes d’exploitation (S.E.): • UNIX, Linux, Windows NT, MacOS. Qu’est-ce qu’un S.E.? • Une interface humain — machine; • Un ensemble d’appels de système (services). Point de vue programmeur Point de vue utilisateur

  3. Évolution des systèmes Traitement en série • Fin des années 40 — milieu des années 50 du 20e siècle. • Programmation en langage machine. • Traitement en série obligatoire. • Utilisation de l’ordinateur  un programmeur et un programme à la fois. • Création de bibliothèques de fonctions communes  concept de pilote E/S. Améliorer l’efficacité du traitement en série

  4. Évolution des systèmes Traitement par lots • Traitement en série  inefficace car monopolisé par un seul programmeur. • Coût énorme des ordinateurs. • Traitement par lots (batch processing): • milieu des années 50 du 20e siècle; • maximise l’utilisation des ordinateurs; • premier système: conçu par General Motor.

  5. Évolution des systèmes Véritable système d’exploitation!! Traitement par lots (suite) • Concept de « moniteur ». • Moniteur  un programme qui veille sur les tâches (jobs) des utilisateurs. • Chaque utilisateur soumet leur tâche à l’opérateur de l’ordinateur: • cartes perforées, rubans magnétiques; • regroupement des tâches; • exécution séquentielle des regroupements.

  6. Évolution des systèmes Traitement par lots (suite) • Particularité  la fin d’une tâche est suivie par un branchement vers le moniteur. • Ce dernier charge en mémoire la tâche suivante et l’exécute dans le processeur. • L’organisation d’un moniteur a influencé grandement la conception des S.E. modernes.

  7. Évolution des systèmes Traitement par lots (suite) • Le moniteur réside dans la mémoire de l’ordinateur: Le processeur est soit en exécution d’un programme utilisateur soit en exécution du programme moniteur

  8. Évolution des systèmes Traitement par lots (suite) • L’ordinateur est soit en exécution d’un programme utilisateur soit en exécution du programme moniteur. • Produira plus tard la notion de mode d’exécution dans les S.E. modernes. • Introduction d’un ensemble de commandes pour la gestion du traitement par lots (bien plus tard  JCL Job Control Language).

  9. Évolution des systèmes Traitement par lots (suite) • Amélioration du taux d’utilisation de l’ordinateur. • Par contre, une tâche peut monopoliser longtemps le processeur. • Attendre la fin des opérations E/S; • les rubans magnétiques avaient un temps d’accès très long. • Pour augmenter le rendement de l’ordinateur  récupérer ce temps perdu.

  10. Évolution des systèmes Par lots multiprogrammé • Problématique du traitement par lots: • si une tâche utilise 30% de son temps à effectuer des opérations E/S; • le processeur ne travaillera pas dans la majeure partie de ce 30%. • Multiprogrammation  exécuter une autre tâche dans les portions de temps où le processeur est inactif. • Exige la coopération du matériel.

  11. Évolution des systèmes Par lots multiprogrammé (suite) • Coopération du matériel  interruptions matérielles. • module de gestion des interruptions; • transfert rapide des données sans intervention du processeur. • Création d’un module MM (Memory Management). • maintenir en mémoire les tâches pour l’exécution.

  12. Évolution des systèmes Par lots multiprogrammé (suite) • Création d’un module d’ordonnancement des tâches: • peut avoir plus d’une tâche en mémoire; • sélectionne l’une des tâches pour l’exécution. • Tous ces modules font partie de l’architecture moderne des S.E.

  13. Évolution des systèmes Traitement en temps partagé • Traitement par lots  pas d’interactivité. • Une nouvelle technique doit être développée: • le CTSS (Compatible Time-Sharing System) de MIT  début des années 60 du 20e siècle. • Idée de base  le blocage et le redémarrage périodique des tâches à l’aide d’une interruption cadencée par une source stable.

  14. Évolution des systèmes Traitement en temps partagé • Chaque utilisateur du système est relié à l’ordinateur par le biais d’un terminal. • Utilisateur = terminal = tâche • Le processeur est contrôlé par chaque terminal durant une brève période de temps (0,2 sec pour CTSS). Un concept encore utilisé dans les S.E. modernes Point de vue du S.E.

  15. Évolution des systèmes Traitement en temps partagé • Ainsi, les tâches ont tour à tour l’attention du processeur (round-robin). • Lorsqu’une tâche est en attente d’une opération E/S: • immédiatement bloquée; • contrôle du processeur est passé à une autre tâche.

  16. Évolution des systèmes Résumé

  17. Évolution des systèmes Multitâche et multi-utilisateur • Environnement multiprogrammé + l’interactivité des systèmes en temps partagé. • Multitâche  multiprogrammation; • Multi-utilisateur  temps partagé. • Un des premiers systèmes véritablement M-M: • MULTICS (MULTiplexed Information and Computer Service) de MIT, Bell, General Electric au milieu des années 60 du 20e.

  18. Évolution des systèmes Multitâche et multi-utilisateur • MULTICS avait introduit plusieurs innovations: • découplage entre le S.E. et le matériel • mémoire virtuelle: • Pagination de la mémoire; • liaison dynamique. • système de fichiers hiérarchique. La mémoire physique de l’ordinateur est organisée en pages de taille fixe Un répertoire peut contenir d’autres répertoires L’adresse des instructions est déterminée au moment de leur chargement en mémoire

  19. Évolution des systèmes Multitâche et multi-utilisateur • MULTICS avait introduit le concept de processus: • structure fondamentale d’un S.E. • Processus possède trois éléments: • programme exécutable; • données associées au programme; • contexte d’exécution du programme. • Processus  programme en exécution.

  20. Évolution des systèmes Structure des S.E. modernes • D’abord organisation en couche hiérarchique:

  21. Évolution des systèmes Structure des S.E. modernes • Composants matériels: • instructions privilégiées; • adressage segmenté; • système de signaux. • Mémoire virtuelle: • offrir à chacun des processus toute la mémoire de l’ordinateur; • utilisation de la mémoire secondaire (l’espace du disque local); Protection contre la corruption des données Interruption logicielle

  22. Évolution des systèmes Structure des S.E. modernes • Mémoire virtuelle (suite): • modèle de programmation  adresse mémoire contiguë; • astuce  ne charger qu’une portion du code exécutable des programmes en mémoire; • code chargé en mémoire  fonction du flux d’exécution; • désengorger le système  déplacement des modules exécutables de/vers la mémoire secondaire.

  23. Évolution des systèmes Structure des S.E. modernes • Système de fichiers: • organisation cohérente de la mémoire secondaire; • système de fichiers hiérarchique  arbre inversé; • sous-répertoire sont des enfants d’un répertoire racine; • système de fichiers hiérarchique  un répertoire peut contenir d’autres répertoires.

  24. Évolution des systèmes Structure des S.E. modernes • Système de fichiers (suite): • pour atteindre un fichier: • parcours linéaire; • parcours non linéaire. • parcours linéaire: • chemin absolu; • chemin relatif. N’existe que dans certains S.E. modernes (ex: UNIX, Linux) UNIX: /home/etudiant/jean/devoir.txt Windows NT: h:\etudiant\jean\devoir.txt UNIX: jean/devoir.txt Windows NT: jean\devoir.txt <Répertoire courant> /home/etudiant (UNIX) h:\etudiant (Windows NT)

  25. Évolution des systèmes Structure des S.E. modernes • Système de fichiers (suite): • parcours non linéaire à l ’aide de liens virtuels (soft-hard links); chemin absolu chemin relatif parcours non linéaire

  26. Évolution des systèmes Structure des S.E. modernes • Système de fichiers (suite): • accès simultanés par plusieurs processus; • accès simultanés par plusieurs utilisateurs; • deux processus utilisent le même fichier. Des droits accès sont nécessaires; Primitifs de verrouillage et d’ouverture exclusive sont nécessaires. Pi Pn

  27. Évolution des systèmes Structure des S.E. modernes • Communication inter-processus. Trois points importants: • transfert des données entre processus; • coordination des processus; • synchronisation des processus. Appels de système permettant la coordination des processus Éviter «l’impasse » et la «famine» les processus Méthodes qui évitent les erreurs dans l’accès des données et leurs traitements Moyens par lesquels les données sont communiquées entre les processus

  28. Évolution des systèmes Structure des S.E. modernes • Communication inter-processus (suite): • l’impasse • la famine Interdépendance (de données) des processus empêche la progression de tous les processus impliqués Analogie: arrêt toutes directions à l’intersection des chemins croisés Interdépendance (de données) des processus empêche la progression d’un sous-ensemble de processus impliqués Analogie: devant un tourniquet à l’entrée d’un métro à l ’heure de pointe

  29. Évolution des systèmes Structure des S.E. modernes • Transfert des données entre processus: • mémoire partagée; • tuyaux (pipes); • messages. Une plage de mémoire (physique ou virtuelle) partagée entre plusieurs processus Sans liens de communication permanents. Les messages sont déposés dans la queue de message des processus. Peuvent donc réaliser des protocoles autres que le FIFO. Structure de données FIFO. Leurs accès sont gérés par le S.E.

  30. Évolution des systèmes Structure des S.E. modernes • Synchronisation des processus: • fonctions attendre() et signal(); • variables sémaphores; • instructions atomiques. Des instructions exécutées en séquence sans interruption par aucune autre instruction du processeur. Variable entière n’admettant que trois opérations: i) initialisation à une valeur non négative; ii) incrémentation de sa valeur; iii) décrémentation de sa valeur. Opérations réalisées par des instructions atomiques. Fonctions de synchronisation qui modifient une variable sémaphore

  31. Évolution des systèmes Structure des S.E. modernes • Modèle des processus • Processus  entité dynamique; • interaction par communication ; • utilise des ressources; possède une durée de vie et sont en interaction avec d’autres processus utilisant le système de communication inter-processus (mémoire partagée, tuyaux, messages, etc.) du S.E. Ces ressources sont: fichiers, mémoire, sémaphores périphériques d’E/S, etc. Ces ressources sont contrôlées par le S.E.

  32. Évolution des systèmes Processus prêt pour l’exécution Processus créé mais pas encore exécutable Processus en exécution dans le processeur Processus en suspension: attendant l’arrivée d’un événement ou la fin d’une opération Structure des S.E. modernes • Modèle des processus (suite) Arrêt du processus: fin de son exécution ou causé par une condition d’erreur

  33. Évolution des systèmes Structure des S.E. modernes • Interpréteur de commandes • un processus utilisateur; • permet l’exécution des programmes; • manipulation des fichiers; • accéder aux périphériques de l’ordinateur; • automatisation des procédures par fichiers de commandes; • langages de programmation « shell ».

  34. Évolution des systèmes Tendances des S.E. modernes • Nouvelles tendances: • architecture micro-noyau (microkernel); • exécution multifilière (multithreading); • traitement parallèle symétrique (symmetricmultiprocessing); • système d’exploitation pour processeurs multi-cœurs.

  35. Évolution des systèmes Tendances des S.E. modernes • Architecture micro-noyau: • changement important dans l’organisation interne du S.E.; • seulement quelques fonctions importantes sont assignées au noyau; • les autres services  processus utilisateurs appelés « serveurs »; • séparation explicite entre le noyau d’un S.E. et le développement des serveurs;

  36. Évolution des systèmes Tendances des S.E. modernes • Exemple du concept de micro-noyau:

  37. Évolution des systèmes Tendances des S.E. modernes • Exécution multifilière: • un processus est divisé en plusieurs chemins d’exécution simultanée; • fil d’exécution  unité de travail interruptible et séquentielle; • fil d’exécution  ne possède pas de contexte d’exécution mais utilise celui du processus père; Modèle de programmation concourante Mémoire utilisée, l’état de la pile programme, les ports d’E/S associés, l’état des registres du processeur, etc.

  38. Évolution des systèmes Tendances des S.E. modernes • Exécution multifilière: • un processus est une collection de fils d’exécution; • fil d’exécution principal  père de tous les fils d’exécution créés;

  39. Évolution des systèmes Tendances des S.E. modernes • Traitement parallèle symétrique: • réalisation utilisant l’exécution multifilière; • système à n processeurs (n  256); • mémoire commune accessible par tous les processeurs; • tous les processeurs sont gérés de la même et jouent le même rôle; • ordonnancement des fils d’exécution dans tous les processeurs libres.

  40. Évolution des systèmes Tendances des S.E. modernes • Traitement parallèle symétrique: • nouvelle exigence  «extensibilité» du S.E.; • application du concept de micro-noyau; • S.E. décentralisé; • ordonnancement des fils d’exécution réalisé localement par chacun des processeurs; • collaboration entre les processeurs; • une réalisation plus complexe du S.E.

  41. Évolution des systèmes Tendances des S.E. modernes • Système d’exploitation pour processeurs multi-cœurs: • Présentement le S.E. traite les cœurs comme des CPU indépendants (traitement parallèle symétrique); • en plus, doit gérer les conflits d’accès aux ressources partagées; • doit gérer le délai variable dans le transfert des données.

  42. Évolution des systèmes Fin du chapitre 1 • Références: • Tanenbaum, A.S., Systèmes d’exploitation. Pearson Education France, 2008. • Stallings, W., Operating Systems : Internals and Design Principals. UpperSaddle River, NJ : Prentice Hall, 1998. • Références citées dans le premier chapitre des notes de cours.

More Related