1 introduction aux systèmes dexploitation n.hameurlain hameur
TRANSCRIPT
1
Introduction aux systèmes d’exploitation
N.Hameurlain
http://www.univ-pau.fr/~hameur
2
Plan
• Classification des logiciels – logiciels d ’applications;– logiciel de base.
• Composants du logiciel de base
• Modes d’exploitation et Fonctionnalités d ’un SE.
3
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.
4
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.
5
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
6
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...
7
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 celui-ci:– 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
8
Interactions entre composants logiciels de base
• Les frontières entre composants sont variables dans le temps et suivant les concepteurs de systèmes d'exploitation
Matériel
Système d ’Exploitation (SE)
OutilsServices
Applications(Interprète de commandes)
9
Interactions Utilisateur/système
• Interactions Programmeur /système d'exploitation
• Interactions usager (non programmeur) ->système
10
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.
11
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)
12
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)
13
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.
14
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.
15
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
16
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.
17
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.
18
Solutions retenues
• Développement des SE spécifiques mono-utilisateur et mono-tâche (MSDOS);– fiabilité médiocre du fait du « mono_utilsateur »
(absence de protection).
• Utilisation des SE multi-utilisateurs et multi-tâches (UNIX, Windows NT, …)– bonne fiabilité– mise en réseaux immédiate,
19
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.
20
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.
21
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 )
22
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.
23
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
24
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.
25
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
26
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.
27
Les principaux Aspects des Systèmes d’Exploitation
N.Hameurlain
http://www.univ-pau.fr/~hameur
28
Plan
• Processus et synchronisation
• Allocation de ressources
• Structuration des systèmes
• Gestion des objets
29
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
30
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.
31
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 »
32
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.
33
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.
34
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.
35
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 .
36
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)
37
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.
38
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.
39
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
40
Structuration des systèmes
• Monolitiques;
• A couches;
• Client/Serveurs ou Micro-noyau.
41
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
42
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)
43
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;
44
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,..
45
Systèmes à couches(2)
Matériel
Gestion de la Mémoire
Gestion des IT et des processus
Gestion des E/S
Allocation de ressources
Gérant de fichiers
Inter de com Prog. d’app
utilisateur
Matériel
Gestion des périphériques et d ’Interruptions
Gérant de fichiers
Inter de com Prog. d’app
utilisateur
Mono-utilisateur monotâche Idéal
46
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);
47
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, …).
48
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, ..
49
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