170 likes | 418 Views
GEF 435 Principes des systèmes d’exploitation. Structure des systèmes d’exploitation (Tanenbaum 1.7). Synopsis. Structure des systèmes d’exploitation Systèmes monolithiques Systèmes en couches Machines virtuelles Exonoyaux ( Exokernels ) Model client serveur Sommaire du chapitre un.
E N D
GEF 435Principes des systèmes d’exploitation Structure des systèmes d’exploitation (Tanenbaum 1.7)
Synopsis • Structure des systèmes d’exploitation • Systèmes monolithiques • Systèmes en couches • Machines virtuelles • Exonoyaux (Exokernels) • Model client serveur • Sommaire du chapitre un
Structure des SE • Jusqu’à date notre étude des SE a été du PDV des programmeurs • Concerné principalement avec les interfaces • Comment est-ce que les SE sont structurés? • Monolithiques • En couches • Machines virtuelles • Exonoyaux • Model client-serveur
Systèmes Monolithiques • Dans ce genre d’organisation, les SE ne sont rien de plus qu’une collection de fonctions à donner des services aux programmeurs • Un autre nom pour cela? • Un gros fouillis! • De base ce SE est une collection de fonctions, compilées et liées ensemble, chaque fonction voit les autres et peut les appeler • Pas de masquage d’information (information hiding) dans c’te bibitte
Systèmes Monolithiques • Est-ce qu’il y a une structure implicite à cause de la façon d’employer le SE? • Un programme appel les procédures de service • Un set de procédures de service implémente les appels de système • Un set de procédures utilitaires aide aux procédures de service
Systèmes en couches • Chaque couche dans le système donne des services à la couche plus haute et demande des services à la couche plus basse • Exemple: Le système d’exploitation THE
Systèmes en couches • Le système THE fut essentiellement un aide pour faciliter le design parce que la séparation des couches n’était pas strictement observée • Un seul fichier objet • Pas de matériel • Les systèmes futures ont ajoutés du matériel pour garder les processus dans leur propre espace mémoire • Et aussi forcer l’utilisation de traps pour appeler les fonctions d’un niveau plus bas
Machines Virtuelle • Quelles sont les deux fonctions d’un SE? • Gestionnaire de ressources • Fournir une machine étendue (interface) • L’idée principale de la machine virtuelle est de séparer ces deux fonctions et de mettre l’accent sur le partage de ressources • Des copiesentières et virtuelles du matériel sont présentées aux couches supérieurs. • Exemple: VM/370
Machines Virtuelles • Avantages: • Chaque machine virtuelle peut exécuter un SE tout comme sur le matériel! Plus d’un SE par machine! • En séparant la machine étendue de la multiprogrammation chaque fonction est plus facile à entretenir • Désavantage: plusieurs couches de traps
Exonoyaux • Les Exonoyaux rendent disponible un nombre de machines virtuelles au dessus du matériel • Contrairement aux machine virtuelles ‘pures’, les exonoyaux fournissent seulement un sous-ensemble du matériel à chaque MV: • Mémoire • Blocs de disque • Avantage: plus facile à gérer • Désavantage: potentiel de gaspille de ressources
Model Client-Serveur • Quelle est un des problèmes majeurs avec les SE? • Ils sont gigantesques! • Moins que l’on met dans le noyau, le plus facile ce sera d’entretenir et amélioré le SE • Un très petit noyau s’appèle un micronoyau (microkernel) • Si on enlève des fonctions du noyau du SE, ces fonctions doivent exister dans l’espace utilisateur • Comment les processus peuvent utiliser ces fonctions?
Model Client-Serveur • Le noyau est maintenant un service de messagerie entre des serveurs multiples • Chaque “service” est segmenté et administrable • Un plantage d’un serveur n’entraîne pas un plantage du noyau • Adaptable aux applications distribuées (plug pour 466)
Sommaire du chapitre 1 • Où est-on? • Nous avons vus un synopsis des concepts que nous allons explorer plus en profondeur durant le cours • Vues d’un système d’exploitation • Types de systèmes d’exploitation (mainframe, etc) • Revue du matériel (processeurs, mémoire, E/S, Bus, etc.) • Concepts des SE (processus, interblocage...) • Appels de système • Structure des SE
Quiz Time! • Surprise…un vrai quiz! (pas de notes par contre...) • 1) Pourquoi est-ce qu’une table de processus est requise dans un système à temps partagé? Est-ce requis si on a un seul processus qui existe, et ce processus prend toute la machine jusqu’à sa terminaison? • 2) Pour un programmeur, un appel de système ressemble à n’importe quel autre appel de procédure de bibliothèque (C library). Est-ce important pour le programmeur de savoir qu’elles appels de procédure de bibliothèque résultes en appels de systèmes?
Quiz Time! • 3) Quelles de ces instructions devraient être seulement permis en mode noyau: • a) Désactiver les interruptions • b) Lire l’horloge • c) Régler l’horloge pour l’heure du jours • d) Changer l’image de la mémoire (memory map) • 4) Sur les premiers ordinateurs, la lecture et l’écriture de chaque octet ce faisait avec le CPU (ie: pas de DMA). Quelles sont les implications de cela sur un système à tâches multiples?
Quiz Time! • 5) Quelle est la différence entre une trap et un interruption?