Interpreteur de commandes

publicité
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
Téléchargement