1. 3.1 URD L2 2005
Systèmes d’Exploitation
Structures des Systèmes d’Exploitation
Composants Systèmes
Services des OSs
Appels Système
Programmes Système
Structure du système
Machines Virtuelles
Conception et Implémentation de Système
Génération de système
2. 3.2 URD L2 2005
Systèmes d’Exploitation
Composants Systèmes Communs
Gestion de Processus
Gestion de la mémoire centrale
Gestion des fichiers
Gestion du système d’E/S
Gestion de Stockage Secondaire
Gestion de réseaux
Système de Protection
Système d’Interprétation de Commandes
3. 3.3 URD L2 2005
Systèmes d’Exploitation
Gestion de Processus
Un processus est un programme en exécution
Un processus a besoin de certaines ressources; CPU,
mémoire, fichiers, les périphériques d’E/S, … pour
accomplir sa tâche
L’OS est responsable des activités suivantes en relation
avec la gestion des processus
Création et suppression de processus
Suspension et relancement du processus
Mécanismes pour:
Synchronisation entre processus
Communication entre processus
Traîtement des interblocages
4. 3.4 URD L2 2005
Systèmes d’Exploitation
Gestion de la Mémoire Centrale
La mémoire est un large vecteur de mots ou octets, chaque
entrée ayant sa propre adresse
C’est un espace de stockage de données rapidement
accessible par la CPU et les périphériques d’E/S
La mémoire centrale est un espace de stockage volatil;
elle perd son contenu en cas de problème système
L’OS est responsable des activités suivantes en relation avec la
gestion de la mémoire
Garder la trace de la mémoire utilisée et de la mémoire
encore libre
Décider quels processus à charger en mémoire dès que de
l’espace mémoire devient disponible
Allouer et libérer la mémoire sous la demande des
processus
5. 3.5 URD L2 2005
Systèmes d’Exploitation
Gestion des Fichiers
Un fichier est une collection d’informations liées défini par son
créateur
Communément, les fichiers représentent les programmes (source
ou objets) et les données
L’OS est responsable des activités suivantes en relation avec la
gestion des fichiers:
Création et suppression de fichiers
Création et suppression de répertoires
Support de primitives pour la manipulation des fichiers et des
répertoires
Mapper les fichiers en mémoire secondaire
Backup de fichiers sur un média de stockage non volatil
6. 3.6 URD L2 2005
Systèmes d’Exploitation
Gestion des E/S
Le système d’E/S consiste en:
Un système de tampon-cache
Une interface générale de pilote de périphérique
Pilotes pour les périphériques matériels spécifiques
7. 3.7 URD L2 2005
Systèmes d’Exploitation
Gestion de la Mémoire Secondaire
Comme la mémoire principale est volatile et trop petite
pour accomoder tous les programmes d’une façon
permanente, l’ordinateur doit avoir une mémoire
secondaire
La plupart des ordinateurs de nos jours utilisent les
disques magnétiques comme mémoire secondaire
L’OS est responsable des activités suivantes en relation
avec la gestion des disques:
Gestion de l’espace libre
Allocation
Ordonnacement des requêtes sur les disques
8. 3.8 URD L2 2005
Systèmes d’Exploitation
Réseaux (Systèmes Répartis)
Un système réparti est une collection de processeurs qui n’ont
pas une mémoire commune, ni une horloge en commun
Chaque processeur a sa propre mémoire, sa propre horloge
Les processeurs sont connectés par un réseau de
communication
Un protocole est utilisé pour la communication
Un système réparti fournit un accès utilisateur à différentes
ressources systèmes
L’accès à des ressources partagées permet:
L’accélération de la computation
Une meilleure disponibilité des données
Une meilleure robustesse
9. 3.9 URD L2 2005
Systèmes d’Exploitation
Système de Protection
La protection est le mécanisme de contrôle d’accès des
processus, des utilisateurs aux ressources système et
utilisateurs
Le mécanisme de protection doit:
Identifier les utilisations autorisées et non autorisées
Spécifier les contrôles à imposer
Fournir les moyens pour enforcer
10. 3.10 URD L2 2005
Systèmes d’Exploitation
Système de Commandes
Plusieurs commandes sont données à l’OS par des instructions
de contrôle portant sur:
Création et gestion des processus
E/S
Gestion de la mémoire secondaire
Gestion de la mémoire principale
Accès au système de fichiers
Protection
Réseau
11. 3.11 URD L2 2005
Systèmes d’Exploitation
Système de Commandes (Cont.)
Le programme qui lit et interprète les instructions de contrôle est
appelé:
Interpréteur de lignes de commandes
shell
Sa fonction est de lire et d’exécuter la nouvelle instruction
12. 3.12 URD L2 2005
Systèmes d’Exploitation
Services de l’OS
Exécution des programmes – système capable de charger un
programme en mémoire et de l’exécuter
Opérations d’E/S – comme les programmes utilisateurs ne
peuvent pas exécuter des opérations d’E/S directement, l’OS
doit fournir les moyens pour le faire
Manipulation des systèmes de fichiers-manipulation système –
capacité de lire, d’écrire, de créer, et de supprimer des fichiers
Communication – échange d’informations entre les processus
exécutant soit sur le même ordinateur (mémoire partagée) ou
sur des systèmes différents reliés par un réseau (échange de
messages).
Détection d’erreurs – assure des computations correctes en
détectant les erreurs dans la CPU, la mémoire, les E/S, ou les
programmes utilisateurs
13. 3.13 URD L2 2005
Systèmes d’Exploitation
Fonctions Additionnelles des OSs
Des fonctions additionnelles existent non pas pour aider les
utilisateurs, mais plutôt pour assurer l’eficacité des opérations
Allocation de ressources – Allouer des ressources à plusieurs
utilisateurs ou à plusieurs processus simultanément
Comptabilité – garder les informations sur les ressources utilisées
par chaque utilisateur pour des fins de facturation ou de statistiques
Protection – s’assurer que tous les accès aux ressources système
sont contrôlés
14. 3.14 URD L2 2005
Systèmes d’Exploitation
Appels Système
Les Appels Système sont l’interface entre un processus et l’OS
Générallement disponibles sous forme d’instructions en
assembleur
Les langages définis pour remplacer l’assembleur dans la
programmation système permettent de faire des appels
système directement (e.g., C, C++)
Trois méthodes générales sont utilisées pour passer des
paramètres entre un processus en exécution et l’OS
Passer les paramètres dans les registres
Ranger les paramètres dans une table en mémoire, et l’@
de la table est passée dans un registre
Push (empiler) les paramètres dans la pile du programme,
et pop (dépiler) la pile par l’OS
15. 3.15 URD L2 2005
Systèmes d’Exploitation
Passage de paramètres dans une Table
16. 3.16 URD L2 2005
Systèmes d’Exploitation
Types des Appels Système
Contrôle de processus
Gestion des fichiers
Gestion des périphériques
Maintenance des informations
Communications
17. 3.17 URD L2 2005
Systèmes d’Exploitation
Exécution MS-DOS
At System Start-up Running a Program
19. 3.19 URD L2 2005
Systèmes d’Exploitation
Modèles de Communication
Message Passing Shared Memory
La communication peut se faire par partage de mémoire
ou par échange de messages
20. 3.20 URD L2 2005
Systèmes d’Exploitation
Programmes Système
Les programmes système fournissent un environnement
pour le développement et l’exécution de programmes. Il
peuvent être divisés en :
Manipulation de fichiers
Informations sur le statut
Modification de fichiers
Support des langages de programmation
Chargement et exécution de programmes
Communications
Programmes Applicatifs
Les utilisateurs ont une vue de l’OS basée sur les
programmes systèmes plutôt que les appels systèmes.
21. 3.21 URD L2 2005
Systèmes d’Exploitation
Structure Système du MS-DOS
MS-DOS – écrit pour fournir le plus de fonctionnalités avec une
occupation mémoire réduite
Pas divisé en modules
Interfaces et niveaux de fonctionnalités mal séparés
23. 3.23 URD L2 2005
Systèmes d’Exploitation
Structure du Système UNIX
UNIX – OS séparé en deux entités
Programmes systèmes
Le noyau
Consiste en tout ce qui se trouve entre l’interface appels
système et le matériel
Fournit le système de fichiers, l’ordonnacement du CPU,
la gestion de la mémoire, et d’autres fonctionnalités
système; un nombre impressionnant de fonctionnalités
pour une couche
24. 3.24 URD L2 2005
Systèmes d’Exploitation
Structure du Système UNIX
25. 3.25 URD L2 2005
Systèmes d’Exploitation
Approche à Couches
L’OS est divisé en un nombre de couches (niveaux), chacun
construit en fonction des couches inférieures. La couche la plus
basse (couche 0) est le matériel; la couche la plus haute (couche
N) est l’interface utilisateur.
Avec la modularité, les couches sont construites de sorte que
chaque couche utilise seulement les fonctions (opérations) et
les services des couches inférieures
26. 3.26 URD L2 2005
Systèmes d’Exploitation
Une Couche OS
28. 3.28 URD L2 2005
Systèmes d’Exploitation
Structure des Systèmes Micronoyaux
Transfère le plus de fonctionnalités possibles dans l’espace
utilisateur
La communication se fait par échange de messages entre les
modules utilisateurs
Bénéfices:
Extension du système plus facile
Portage de l’OS vers d’autres architectures plus facile
Plus de fiabilité (moins de code en mode noyau)
Plus de sécurité
Inconvénients:
Overhead des communications entre l’espace utilisateur et l’espace
noyau => moins performant
29. 3.29 URD L2 2005
Systèmes d’Exploitation
Structure Mac OS X
30. 3.30 URD L2 2005
Systèmes d’Exploitation
Structure Client-Serveur Windows NT
31. 3.31 URD L2 2005
Systèmes d’Exploitation
Modules
La plupart des OSs actuels implémentent des
modules noyau
Utilisation des approches objets
Chaque composant noyau est isolé
Les composants communiquent via leurs interfaces
Chacun peut-être chargé au besoin dans le noyau
En conclusion, pareil aux couches mais encore plus
flexible et performant
32. 3.32 URD L2 2005
Systèmes d’Exploitation
Approche Modulaire de Solaris
33. 3.33 URD L2 2005
Systèmes d’Exploitation
Machines Virtuelles
Une approche machine virtuelle considère le matériel et l’OS
comme étant “un matériel”
Une machine virtuelle fournit une interface identique à celle du
matériel sous-jacent
L’OS crée l’illusion de processus multiples, chacun s’exécutant
sur son processeur et sur sa mémoire
34. 3.34 URD L2 2005
Systèmes d’Exploitation
Machines Virtuelles (Cont.)
Les ressources de l’ordinateur sont partagées pour créer les
machines virtuelles
L’ordonnancement CPU peut créer l’illusion que les utilisateurs ont
chacun leur propre processeur
Spooling et le système de fichiers fournit des périphériques virtuels
(imprimantes, lecteurs, …)
Un terminal utilisateur sert comme la console d’opérations de la
machine virtuelle
36. 3.36 URD L2 2005
Systèmes d’Exploitation
Avantages/Inconvénients des Machines Virtuelles
Le concept d’une machine virtuelle (VM) fournit une
protection complète des ressources système du fait que
toute VM est isolée des autres VMs.
Un système de VM est excellent pour la recherche et le
développement de nouveaux systèmes; le
développement est fait sur une machine virtuelle et de ce
fait n’interrompt pas le fonctionnement normal du
système.
Le concept de VM est difficile à implémenter à cause des
efforts requis pour la duplication exacte du matériel sous-
jacent
37. 3.37 URD L2 2005
Systèmes d’Exploitation
Machine Virtuelle Java
Les programmes Java compilés sont indépendants de la
plateforme d’accueil; bytecode exécutés par la Java Virtual
Machine (JVM)
JVM consiste en
Chargeur de classes
Vérificateur de classes
Interpréteur
Compilateur Just-In-Time (JIT) améliore les performances
41. 3.41 URD L2 2005
Systèmes d’Exploitation
Environnement Développement Java
42. 3.42 URD L2 2005
Systèmes d’Exploitation
Objectifs de la Conception Système
Objectifs Utilisateurs – l’OS doit être facile d’utilisation, facile à
apprendre, fiable, sécurisé, et performant
Objectifs Système – l’OS doit être facile à concevoir, à
implémenter, et à maintenir, flexible et extensible, fiable, sans
erreurs, et performant
43. 3.43 URD L2 2005
Systèmes d’Exploitation
Mécanismes et Politiques
Une politique détermine ce qu’on veut mettre en place
Un mécanisme détermine comment on le met en place
La séparation des politiques et des mécanismes est un principe
très important; il permet une flexibilité maximale en cas de
changement de politique
44. 3.44 URD L2 2005
Systèmes d’Exploitation
Implémentation Système
Traditionnellement écrits en assembleur, les OSs sont écrits
actuellement en langages de haut niveau
Code écrit en un langage de haut niveau:
Ecrit plus rapidement
Plus compact
Plus facile à comprendre et à debugger => plus fiable
Un OS est beaucoup plus facile à porter s’il est écrit dans un
langage haut niveau
45. 3.45 URD L2 2005
Systèmes d’Exploitation
Génération de Système (SYSGEN)
Les OSs sont conçus pour s’exécuter sur tout type de machines;
le système doit être configuré pour chaque type d’ordinateurs
Le programme SYSGEN obtient des informations concernant la
configuration spécifique du matériel
Booting – lancer l’ordinateur en chargeant le noyau
Bootstrap – Code en ROM capable de localiser le noyau, le
charger en mémoire, et lancer son exécution