Introduction aux systèmes d’exploitation N.Hameurlain http://www.univ-pau.fr/~hameur 1 Plan • Classification des logiciels – logiciels d ’applications; – logiciel de base. • Composants du logiciel de base • Modes d’exploitation et Fonctionnalités d ’un SE. 2 Logiciels exécutés sur un ordinateur : classification • Logiciels d'application – achetés ou développés, pour satisfaire des besoins spécifiques. • Logiciels de base – fournir des services adaptés à la résolution des problèmes usuels traités sur ce type de calculateur. 3 Logiciels de base: fonctionnalités • Préparation et mise au point des programmes • Exploitation (exécution) des programmes; • Gestion des ensembles de données: stockage, partage. 4 Composants du logiciel de base: les Outils • Logiciels de manipulation de collections de données – – – – éditeurs de textes compilateurs, éditeurs de liens recherche dans un fichier; extraction, fusion etc ... (utilitaires divers) • n'interagissent pas avec les logiciels d'application 5 Composants du logiciel de base: les Services • Logiciels facilitant le travail du programmeur ou de l'usager mais facultatif pour cette fonction, et • interagissant avec les logiciels d'applications. – – – – gestionnaires de données gestionnaires de fenêtres gestionnaires de communications etc... 6 Composants du logiciel de base: Système d'exploitation • Collection de fonctions participant directement à l'exécution de logiciels sur le matériel et permettant éventuellement le partage de celuici: – chargement et lancement des programmes – gestion du (des) processeur(s), des périphériques et entrées/sorties – gestion de la mémoire principale et secondaire • Interagissant avec les logiciels d'application 7 Interactions entre composants logiciels de base Applications (Interprète de commandes) Services Outils Système d ’Exploitation (SE) Matériel • Les frontières entre composants sont variables dans le temps et suivant les concepteurs de systèmes d'exploitation 8 Interactions Utilisateur/système • Interactions Programmeur /système d'exploitation • Interactions usager (non programmeur) >système 9 Interactions Programmeur /système d'exploitation(1) • Pour le système d'exploitation, un programme d'application est considéré comme une procédure (presque) classique. – Conséquence (MS-DOS, MacOS) : si un programme se "plante", le système aussi. 10 Interactions Programmeur /système d'exploitation (2) • Pour le programmeur, le système apparaît aussi comme une collection de procédures, trop délicates ou trop fastidieuses pour qu'il les écrive lui-même: – Ces procédures sont appelables si l'on connaît leurs noms et leurs arguments. • Passage du mode utilisateur en mode système: appels système ou trappe ou SVC (Supervisory Call) 11 Exemples de fonctions système • Manipulation des fichiers et des répertoires: – ouverture de fichiers – lecture dans un fichier – etc... • Accès aux périphériques d ’Entrées/Sorties (disque, réseau) 12 Appels systèmes • Avantages: utiliser des bibliothèques pour éviter d'avoir à écrire des procédures en assembleur ainsi que le passage des paramètres dans la pile. • Cas des langages de haut niveau: les appels systèmes pour réaliser des Entrées/Sorties sont invisibles du programmeur car mis en place par le compilateur ou l'interpréteur. 13 Interactions usager (non programmeur) ->système • Problème : pour avoir accès à une fonction système (exécution d'un programme par exemple) l'usager doit exécuter un programme qui fasse l'appel système correspondant ! • Solution: Interpreteur de commandes: – Programme usager (ou système) exécuté quand il n'y a rien d'autre à faire. 14 Présentation de différents modes d'exploitation • Selon les besoins d'une classe d'applications, un système d'exploitation remplit des fonctions différentes. • Exemples: – ordinateur individuel – centre de calcul – gestion de transactions – temps réel et gestion de procédés industriels 15 Fonctionnalités à développer – – – – – – interpréteur de commandes gestion des entrées/sorties série et parallèles gestion des communications, des réseaux gestion de fichiers, gestion de fenêtres utilitaires de manipulation de fichier gestionnaire de fenêtres. 16 Qualités attendues • Simplicité d’utilisation • Temps de réponses acceptables • Problèmes simplifiées: – un seul utilisateur à la fois – allocation des ressources simplifiée – pas ou peu d ’activités en parallèle. 17 Solutions retenues • Développement des SE spécifiques monoutilisateur et mono-tâche (MSDOS); – fiabilité médiocre du fait du « mono_utilsateur » (absence de protection). • Utilisation des SE multi-utilisateurs et multitâches (UNIX, Windows NT, …) – bonne fiabilité – mise en réseaux immédiate, 18 Centre de calcul: Objectifs • Offrir des services communs inaccessible individuellement – logiciels complexes – accès à des périphériques divers; • Offrir des possibilités découlant d ’un ensemble d ’usagers: – partage d ’information; – communications. 19 Mode de traitement des travaux • Multiprogrammation (traitement par lots, différés, batch): Non interactif – justification: rentabiliser au max le Matériel; • Temps partagé (time sharing): Interactif – justification: satisfaire le plus rapidement possible les demandes des services « courts » des usagers. 20 Fonctionnalités à développer • Idem ordinateur individuel plus, • allocation et partage des ressources physique communs: – processeur(s); mémoire principale; disque,… • gestion de l’information partagée (fichiers) • gestion des communications entre usagers (courrier ) 21 Qualités attendus • • • • Protection des travaux des utilisateurs; sûreté de fonctionnement (disponibilité) Performances face à de nombreux usagers flexibilité par rapport aux besoins des utilisateurs; • extensibilité dans le temps. 22 Gestion des transactions • Gestion d’un ensemble d ’informations très volumineux (Base de données); • Accès aux informations uniquement au moyen d ’opérations pré-définies: transactions. • Grand nombre de points d ’accès (terminaux) répartis géographiquement 23 Qualités d’un système de transactions • • • • Grande sécurité de données; performances; disponibilités; outils pour le maintien de l ’intégrité de la BD; • synchronisation des transactions • mécanismes de reprise et de sauvegarde. 24 Temps réels et gestion des procédés industriels • Exemple: Systèmes embarqués (avions, trains); gestion du trafic; conduite de raffineries, etc... • Types de mission : surveillance/sécurité; production/régulation 25 Fonctionnalités à développer • Mesures et commandes: – températures, pressions, etc – Nécessité des E/S spécialisées efficaces. • Gestion des événements et priorités – mécanismes permettant de régir à un événement du procédé dans un délai déterminé • Traitements: mise à disposition de mécanismes de hiérarchisation des traitements: – contrainte: sûreté de fonctionnement. 26 Les principaux Aspects des Systèmes d’Exploitation N.Hameurlain http://www.univ-pau.fr/~hameur 27 Plan • • • • Processus et synchronisation Allocation de ressources Structuration des systèmes Gestion des objets 28 Processus et synchronisation • Problèmes: identifier et définir les activités autonomes; • Processus: activité résultant de l'exécution d'un ou plusieurs programmes séquentiellement en vue de la réalisation d'une tâche bien définie; • synchronisation: coordination d ’activités autonomes mais dépendantes 29 Processus • Le processus est l'entité d'affectation du processeur : en dehors des traitements d'interruptions et des périodes de transition, le processeur est alloué à un processus. • Le mécanisme d'allocation du processeur (scheduler) considère les processus comme des activités autonomes et a priori indépendantes. 30 Synchronisation • Problème: Comment faire pour qu'une activité A, arrivée à un point X de son exécution, attende pour continuer qu'une activité B ait atteint ou dépassé un point Y de son exécution ? • Solutions: approche par temporisation , et par « synchronisation » 31 Approche par temporisation • Principe: mesure le délai maximum D qu'il faut à B pour atteindre Y. Il suffit alors de commencer à exécuter A à partir de (début de B) + D; • problème: solution difficile et périlleuse. 32 Approche par temporisation: problèmes • Aléa des temps d'entrées/sorties et indéterminisme induit; • Variabilité du [Delta] avec la charge; • Pannes partielles; • Modification des programmes si évolutions des délais; • Mauvaise utilisation des ressources car utilisation d'un délai maximum. 33 Approche par synchronisation • Conception de mécanismes de synchronisation utilisables par les processus qui doivent se synchroniser : – un processus signale aux autres processus un "événement" (changement significatif) par rapport à sa situation ou dans l'environnement d'exécution. • Exemple : sémaphores (Dijkstra 1967), nombreuses autres propositions. 34 Mécanismes de synchronisation • Doivent permettre – l'auto-suspension d'un processus – l'activation d'un processus suspendu • Interaction forte avec le coeur du système d'exploitation car touche à l'allocation ou à l'abandon du processeur par un processus . 35 Tendances actuelles • Intégration des mécanismes de synchronisation dans les langages de programmation de haut niveau; • Conception d'outils de synchronisation pour les systèmes répartis; • Méthodes de preuves de la validité des solutions aux problèmes de synchronisation. • Processus légers (lightweight process ou thread) 36 Processus légers (Threads) • Systèmes classiques (dérivés d'UNIX) : les processus ne peuvent communiquer que par des mécanismes impliquant des appels systèmes, ce qui est relativement long. • Définition de plusieurs activités (threads) coopérantes au sein d'un même espace d'adresses de processus. – Communication, synchronisation inter-activités sans passer par le système. 37 Allocation de ressources(1) • Aspects qualitatifs et quantitatifs : • Problèmes en univers centralisé – – – – gestion des processeurs, gestions de l'espace disque, gestion de la mémoire centrale, traitement de l'interblocage. 38 Allocation de ressources(2) • Problèmes en univers réparti: – gestion des voies communes; – contrôle des flux, contrôle de congestion dans les réseaux; • Développement des techniques de simulation et modélisation mathématiques par systèmes de files d'attente 39 Structuration des systèmes • Monolitiques; • A couches; • Client/Serveurs ou Micro-noyau. 40 Structuration des systèmes: système monolitique (1) • Collection de procédures qui collaborent à la réalisation de fonctions complexes. • Chaque procédure est visible a toutes les autres, et peut appeler a tout moment n'importe quelle autre; • Exemple: UNIX 41 Système monolitique (2) • Les services (Appels système) offerts par le SE sont adressées en : – mettant les paramètres dans des registres ou la pile; et en exécutant une instruction spéciale nommée appel au noyau ou appel au superviseur; – Le SE examine alors les paramètres pour déterminer l'appel système a exécuter (pointeur sur l'appel système) 42 Système monolitique (3) – Le SE appelle la procédure correspondante (localisation et identification du service, qui est ensuite appelé); – Le contrôle est rendu au programme de l'utilisateur; 43 Systèmes à couches(1) • Vu comme un ensemble de couches logiciels superposées. • Chaque couche utilise les couches inférieures et fournis un service supplémentaire aux couches supérieures • Exemple: THE, MULTICS,.. 44 Systèmes à couches(2) utilisateur utilisateur Inter de com Prog. d’app Gérant de fichiers Gestion des périphériques et d ’Interruptions Inter de com Prog. d’app Gérant de fichiers Allocation de ressources Gestion des E/S Gestion de la Mémoire Matériel Mono-utilisateur monotâche Gestion des IT et des processus Matériel Idéal 45 Système Client/Serveur ou Micro-noyau(1) • Certaines fonctions complexes du système sont sorties du système proprement dit et confiées à des serveurs indépendants (serveur de fichiers, de mémoire, etc…) • Les processus utilisateur (clients) et les serveurs s ’exécutent en mode utilisateur; • La communication entre clients et serveurs se fait par envoi de messages à travers le noyau du système (mode noyau); 46 Système micro-noyau (2) • Système configurable: changer les serveurs pour obtenir une meilleur adéquation; • Système transportable: il suffit de réécrire la couche micro-noyau qui coordonne tous les serveurs; • Incorporation des systèmes existants(DOS, UNIX) • Se prête bien à une utilisation sur les systèmes distribués(Amoeba, Mach, …). 47 Gestion des Objets • Un système d'exploitation gère des objets (structures d'informations) comme le fait un langage de programmation et définit les moyens d'accès à ces objets. • Exemples : fichiers, .. 48 Gestion des Objets • Problèmes de gestion des objets – – – – implantation ; désignation protection ;partage; destruction migration ; communication; réutilisation • Définition de serveurs d'objets normalisés : CORBA 49