Introduction/survol du SE

Slides:



Advertisements
Présentations similaires
Mais vous comprenez qu’il s’agit d’une « tromperie ».
Advertisements

Module Systèmes d’exploitation
Module Systèmes d’exploitation
Module Systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Le matériel des ordinateurs Revue Pt II (Tanenbaum 1.4)
GEF 435 Principes des systèmes dexploitation Structure du logiciel dE/S Partie II (Tanenbaum & 5.3.4)
Module 5 : Implémentation de l'impression
Le Concept du programme enregistré
Distance inter-locuteur
TECHNOLOGIE DES ORDINATEURS
1 Plus loin dans lutilisation de Windows Vista ©Yves Roger Cornil - 2 août
ARCHITECTURE INTERNE d’un MICROPROCESSEUR
Serveur jeu Le serveur fait partie d'un logiciel de jeu en ligne multi joueur en architecture client serveur. Il répond à des demandes.
Module Systèmes dexploitation Chapitre 6 Communication Interprocessus Partie III École Normale Supérieure Tétouan Département Informatique
GEF 435 Principes des systèmes d’exploitations
GEF 435 Principes des systèmes dexploitation Structure des systèmes dexploitation (Tanenbaum 1.7)
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Concepts des Systèmes dexploitation (Tanenbaum 1.5)
GEF 435 Principes des systèmes d’exploitation
PLAN du COURS Introduction Structure des Systèmes Informatiques
Architecture de réseaux
A abstraction b assembleur c nombre binaire d bit e cache f UC g puce h compilateur i famille dordinateurs j contrôle k chemin de données l défaut m dé
Objectifs Nous allons concevoir une mise en œuvre contenant un noyau de jeu d’instructions. Nous verrons comment l’architecture de jeu d’instructions.
Le Concept du programme enregistré
Mémoire & Processus Cours SE - SRC
LES TRIANGLES 1. Définitions 2. Constructions 3. Propriétés.
Architecture de machines Principes généraux
La législation formation, les aides des pouvoirs publics
Systèmes d’exploitation
Système d’exploitation : Assembleur
La méthodologie………………………………………………………….. p3 Les résultats
ARCHITECTURE GLOBALE CAPTAGE Traitement DES des données GRANDEURS
Page 1 Introduction à ATEasy 3.0 Page 2 Quest ce quATEasy 3.0? n Ensemble de développement très simple demploi n Conçu pour développer des bancs de test.
Module 1 : Préparation de l'administration d'un serveur
Gestion des Périphériques
Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE
Synchronisation et communication entre processus
Présentation générale
1 Threads et Lightweight Processes Chapitre 5 En français on utilise parfois flots ou fils pour threads. Votre manuel préfère le mot anglais thread : terminologie.
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
Gestion des bases de données
Structures des Systèmes d’Exploitation
Logiciel gratuit à télécharger à cette adresse :
Les chiffres & les nombres
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Programmation concurrente
CSI3531 Module 1 - Introduction/survol du SE
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
Année universitaire Réalisé par: Dr. Aymen Ayari Cours Réseaux étendus LATRI 3 1.
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
Aire d’une figure par encadrement
Mécanismes d'exécution et de communication
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
Annexe Résultats provinciaux comparés à la moyenne canadienne
Module 8 : Surveillance des performances de SQL Server
La formation des maîtres et la manifestation de la compétence professionnelle à intégrer les technologies de l'information et des communications (TIC)
La programmation système
Programmation Système et Réseau
Structure des Systèmes Informatiques
Doan Chien Thang Aôut,2008.  La vue d'ensemble des systèmes d'exploitation  Les processus et les fils  Gestion de la mémoire  Le système des fichiers.
Patricia Renault UPMC 2005/2006
Cours Système LI324 Les Interruptions Cours Système LI324
Architecture Client/Serveur
1 Structures d’ordinateurs (matériel) Chapitre 2
Raison d'être de la structure de fichiers : Les premiers travaux : Début des années 1960 : En 1963 : Près de 10 ans plus tard... (à peu près 1973) : Durant.
Architecture d’un ordinateur
Chapitre 12 Surveillance des ressources et des performances Module S41.
Transcription de la présentation:

Introduction/survol du SE CSI3710 - Module 1 Lecture: Chapitre 1 et 2 (Silberchatz) Objectif: Faire un survol rapide des éléments d’ordinateurs – le processeur (UCT), la mémoire, et l’entrée/sortie. Introduire les système d’exploitations afin de comprendre son rôle et ses fonctions principales

Sujets du module Les composantes principales de l’ordinateur Organisation et Architecture d’ordinateur Révision du CEG3531 Système d’exploitation Un premier aperçu Services fournis par le système d’exploitation Réalisations principales des systèmes d’exploitation Caractéristiques et structure des SE modernes

Vue abstraite des composantes d’un système informatique L’ordinateur générale se divise en 4 composantes principales Matériel UCT, mémoire, appareils d’entrée/sortie (E/S) Système d’exploitation Contrôle le matériel et coordonne sont utilisation parmi les applications et utilisateurs Programmes d’applications Traitement de texte, compilateurs, fureteurs WEB, etc. Utilisateurs

Vue abstraite des composantes d’un système informatique

C’est quoi un SE? Vue de l’utilisateur Pourquoi un SE? Système personnel Système partagé Système branché Système imbriqué Pourquoi un SE? Partage des ressources de l’ordinateur Et sur un PC? Mais qu’est ce que fait le SE? Relation intime avec le matériel (en fait l’abstraction pour les applications) Allocation du matériel (équitable le plus possible) Contrôle d’exécution, i.e., allocation du temps d’exécution. La définition d’un SE? Pas de définition universel C’est le programme qui est toujours présent en mémoire – le noyau

Sujets du module Les composantes principales de l’ordinateur Organisation et Architecture d’ordinateur Révision du CEG3531 Système d’exploitation Un premier aperçu Services fournis par le système d’exploitation Réalisations principales des systèmes d’exploitation Caractéristiques et structure des SE modernes

Matériel principal Processeur (UCT) Mémoire principale (mémoire réelle, RAM) Contient le code et les données Modules E/S (Contrôleurs E/S, processeurs E/S...) matériel (avec registres: ports E/S) pour transport des données entre UCT et périphériques comme: mémoire secondaire (ex: disques rigides) clavier, écran... Équipement de communication Interconnexion (ie: Bus) pour communication entre processeur(s), mémoire et modules E/S

Structure du Module E/S Données du bus sont tamponnées dans le(s) registre(s) “data register” (ports E/S) Le registre “Status/Control” contient: l’information sur le statut de l’opération E/S l’information de contrôle venant de l’UCT Le circuit “I/O logic” interagit avec l’UCT via le bus. Contient la logique spécifique à l’interface de chaque dispositif

Registres de l’UCT Registres de Contrôle & Statut Généralement non disponibles aux programmes de l’usager l’UCT en utilise pour contrôler ses opérations Le SE en utilise pour contrôler l’exécution des programmes Registres Visibles (aux usagers) disponibles au SE et programmes de l’usager Contient données, adresses et quelques bits de statut

Exemples de registres de contrôle & statut Le compteur d’instruction (PC) Contient l’adresse de la prochaine instruction à exécuter Le registre d’instruction (IR) Contient l’instruction en cours d’exécution Le mot d’état du programme (PSW) Un registre ou groupe de registres contenant: bits de statut bit d’interruption activé/désactivé bit du mode d’exécution superviseur(SE)/usager

Registres Visibles Registres de données Registres d’adresse manipulés par l’usager pour opérations sur les données (ex: ADD, MUL…) Registres d’adresse contient adresses de données et instructions peut contenir seulement une partie de l’adresse complète

Registres Visibles Exemples de registres d’adresse Index/offset contient la valeur d’une adresse relative à une valeur de base Pointeur de segment contient l’adresse de base. L’adresse complète = adresse de base + index Pointeur de pile pointe au sommet de la pile

Registres Visibles Bits d’états valeur assignée suite au résultat d’une opération Accessibles aux usagers mais non modifiables par ceux-ci Exemples sign flag zero flag overflow flag

Le cycle d’instruction de base L’UCT extrait l’instruction (avec opérandes) de la mémoire. Ensuite l’UCT exécute cette instruction Le compteur d’instruction (PC) contient l’adresse de la prochaine instruction à extraire Le PC est incrémenté automatiquement après chaque extraction

L’UCT doit attendre après les E/Ss! “WRITE” branche sur un pgm E/S (ex: “driver” d’une imprimante) pgm E/S prépare Ie module E/S en (4) l’UCT doit attendre que la commande E/S soit terminée Temps d’attente est long pgm E/S termine en (5) et communique le statut de l’opération

Interruptions! Les ordinateurs permettent aux modules d’E/S d’interrompre l’UCT. Pour cela, le module E/S excite (assert) une ligne du bus de contrôle (ex: INTR pour les PCs) L’UCT transférera le contrôle a un programme de gestion de l’interruption (Interrupt Handler Routine) (faisant partie du SE)

Le cycle d’instruction avec interruptions Après chaque instruction, l’UCT examine s’il y a une interruption S’il n’y en a pas, il extrait la prochaine instruction du programme S’il y en a, il suspend le pgm en cours et branche l’exécution sur le pgm de gestion de l’interruption

Le pgm de gestion de l’interruption (IH) Est un pgm qui détermine la nature d’une interruption et exécute les actions requises L’exécution est transférée à ce pgm... …et doit revenir au programme initial au point d’interruption pour que celui-ci continue normalement ses opérations Le point d’interruption peut se situé n’importe où dans le pgm L’on doit donc sauvegardé l’état du programme (ie: PC + PSW + registres + ...)

Traitement des interruptions

Les interruptions améliorent l’utilisation de l’UCT Le pgm E/S prépare le module E/S et exécute la commande E/S (ex: impression d’un char) pgm E/S branche au pgm usager code usager est exécuté durant l’opération E/S: pas d’attente pgm usager est interrompu (x) lorsque l’opération E/S est terminée. Branchement au IH pour examiner le module E/S (statut de l’opération) branche ensuite au pgm usager

Interruption pour l’E/S

Types d’interruptions lorsqu’une opération E/S est terminée Exception Débordement de division interdiction d’exécuter une instruction référence au delà de l’espace mémoire Minuterie préemption d’un pgm pour en exécuter un autre Bris de matériel (ex: erreur de parité en mémoire)

Ordre séquentiel des interruptions Interruption désactivé durant l’exécution d’un IH Les interruptions sont en attente jusqu’à ce que l’UCT active les interruptions L’UCT examine s’il y a des interruptions en attente après avoir terminé d’exécuter l’IH

Interruptions avec priorités L’IH d’une interruption de priorité faible peut se faire interrompre par une interruption de priorité élevée Exemple: les données arrivant sur une ligne de communication doivent-être absorbées rapidement pour ne pas causer de retransmissions

Techniques de communication pour E/S 3 techniques sont possibles: E/S programmées N’utilise pas d’interruptions. L’UCT doit attendre après chaque opération d’E/S E/S déclenchées par interruptions L’UCT peut exécuter du code pendant l’opération E/S: il est interrompu lorsque l’opération est terminée. Accès direct à la mémoire (DMA) Un block de données est transféré directement à/de la mémoire sans passer par l’UCT

E/S programmées Module E/S exécute une action à la demande du processeur Le module E/S n’interrompt pas le CPU lorsque E/S est terminée L’UCT doit constamment examiner le statut du module E/S

E/S déclenchées par INT L’UCT est interrompu par le module E/S lorsque les données sont disponibles L’UCT peut exécuter d’autre code pendant l’E/S Pas d’attente inutile Mais chaque mot échangé transit par l’UCT et requiert une interruption (ouf!)

Accès direct à la mémoire (DMA) L’UCT fait sa requête au module DMA (module séparé ou intégré au module E/S) Le module DMA transfert un block de données à/de la mémoire (sans passer par l’UCT) Il y a interruption lorsque le transfert est terminé L’UCT est sollicité uniquement au début et à la fin du transfert L’UCT est libre d’exécuter du code pendant le transfert

Organisation hiérarchique de la mémoire moins coûteuse plus grande capacity plus lente Registres mémoire cache Mémoire principale Disque magnétique Fréquence d'accès réduite Mémoire amovible

Une nouvelle idée – la mémoire cache Une petite qtée de mémoire rapide interagissant avec une mémoire plus lente mais de plus grande capacité Invisible au SE mais interagit avec le matériel de la gestion de la mémoire. Le processeur examine d’abord si le mot désigné est dans la mémoire cache S’il n’y est pas, un petit block de mémoire contenant le mot est transféré de la mémoire principale à la mémoire cache.

Temps d’accès Le temps d’accès est le temps requis pour amener le mot référencé au processeur T1 = temps d’accès pour mémoire cache T2 = temps d’accès pour mémoire principale T = temps d’accès total pour amener le mot référencé au processeur Si le mot référencé est dans le cache: T = T1 Si le mot référencé n’est pas dans le cache: Car ça coûte d’abord T1 pour examiner le cache (et réaliser que le mot référencé n’est pas là) Ça coûte ensuite T2 pour amener le mot référencé de la mémoire principale au processeur (en même temps, le mot est aussi placé dans le cache) Le temps d’accès total est donc T = T1 + T2

Le taux de présence (Hit Ratio) Taux de présence = fraction des accès où la donnée est dans la mémoire cache T2 >> T1 Le temps d’accès moyen est près de T1 lorsque le taux de présence est près de 1

Groupement des consultations (locality of reference) Les accès à la mémoire sont groupés localement sur de longues périodes. Exemple: dans une boucle, les accès sont fréquents à un petit ensemble d’instructions. Donc lorsqu’un mot est consulté, il est très probable que les mots voisins seront consultés fréquemment dans un avenir rapproché. Donc le taux présence sera proche de 1 même avec une petite mémoire cache.

Mémoire Cache du disque (même principe) Une portion de la mémoire principale utilisée pour tamponner temporairement les données du disque Groupement des consultations: lorsqu’un enregistrement est consulté, il est très probable que les enregistrements voisins seront consultés fréquemment. Si l’enregistrement n’est pas dans le cache, le secteur du disque contenant l’enregistrement est copié dans le cache.

Fonctionnement de l’ordinateur moderne

Sujets du module Les composantes principales de l’ordinateur Organisation et Architecture d’ordinateur Révision du CEG3531 Système d’exploitation Un premier aperçu Services fournis par le système d’exploitation Réalisations principales des systèmes d’exploitation Caractéristiques et structure des SE modernes

Fonctionnement d’un ordinateur Comment l’ordinateur démarre? Programme de chargement (en mémoire ROM – le micrologiciel). Charge le noyau en mémoire et l’exécute. Exécution du noyau (est ainsi les applications). Noyau exécute lors d’interruptions Interruption du matériel. Interruption logique des applications – l’appel système (en détail plus tard) Erreurs: division par zéro, violation d’accès de mémoire par une application, etc.

Le mode usager et le mode noyau Opération en mode double permet au ES de se protéger ainsi que d’autres composantes Mode usager et mode noyau (ou supervision) Bit mode se retrouve dans le matériel Distingue le mode (usager ou noyau) Certaines instructions sont privilégiées Appel au SE change le mode à noyau et le retour de l’appel le rechange au mode usager.

Transition du mode usager au mode noyau Minuterie empêche les processus de s’accaparer du système Un interruption après un délai de temps SE décrémente un compteur Lorsque le compteur est zéro, change de processus ou termine le processus. Configurer avant de donner le contrôle au processus pour reprendre le contrôle ou terminé le programme.

Multiprogrammation Tout programme faisant une lecture sur un périphérique doit attendre que l’opération E/S soit terminée Les interruptions sont plus utiles lorsqu’un processeur est partagé parmi plusieurs processus concurrents. L’UCT peut alors exécuter un autre programme lorsqu’un programme attends qu’une opération E/S soit terminée.

La structure d’E/S du noyau

Sujets du module Les composantes principales de l’ordinateur Organisation et Architecture d’ordinateur Révision du CEG3531 Système d’exploitation Un premier aperçu Services fournis par le système d’exploitation Réalisations principales des systèmes d’exploitation Caractéristiques et structure des SE modernes

Système d’exploitation (SE) Est un programme contrôlant l’exécution des applications Le SE doit céder le contrôle aux programmes usagers et le reprendre correctement Dit à l’UCT quand exécuter tel programme C’est l’interface entre les programmes (et l’utilisateur) et le matériel Masque les détails du matériel aux applications Le SE doit donc tenir compte de ces détails

Les couches logiques d’un système Utilisateur Programmeur Applications Développeur de SEs Logiciels utilitaires Système d’exploitation Matériel

Services offerts aux utilisateurs Interface d’utilisateur Interface graphique (GUI), interface de ligne de commande (CLI) Donne accès au programmes systèmes: Windows Explorer, mkdir, ls, etc. Exécution de programme Charger un programme en mémoire et l’exécuter Manipulation des systèmes de fichiers Création et suppression des répertoires et fichiers Recherche Lecture et écriture des fichiers Listes de fichiers Gestion des permissions

Services offerts aux programmes d’utilisateurs Opérations d’entrée/sortie L’accès au matériel se fait par le noyau pour le programme exécutant Communications Communication entre programmes d’un même ordinateur ou avec ceux d’autres ordinateur Peut se faire avec la mémoire partagée ou des messages Composer avec les erreurs Détection Erreurs du matériel (internes ou externes): la mémoire, défaillance d’un dispositif E/S Erreurs du logiciel: débordements, interdiction d’accès à une case mémoire Impossibilité pour SE de satisfaire requête Réaction: juste rapporter l’erreur à l’application, essayer de nouveau l’opération, suspendre l’application

L’appel système L’interface qui offre les services du SE au programmes Control de processus: pour exécuter un programme. Gestion de fichier: création/ouvrir/lire/écrire un fichier, liste d’un répertoire. Gestion d’appareil: demande/relâche d’un appareil Gestion d’information: gestion de l’heure, attributs des processus et fichiers Communication: ouvrir/fermer un connexion, envoyer/recevoir des messages

Appel système (suite) Normalement écrit avec langage de programmation haut niveau (par exemple le C). Implémenter avec l’interruption logicielle L’interruption logicielle change le bit mode au mode noyau et fait appel au sous-programme approprié selon un tableau d’appels systèmes et le numéro d’interruption À la fin du sous-programme, le mode redevient le mode usager et des valeurs sont retournées au programme appelant.

API de l’appel système

Comment accéder aux appels systèmes Accéder souvent par les programmes avec une interface de programmation d’application (API) et non pas l’appel système directement APIs commun: Win32 pour Windows API POSIX pour systèmes POSIX UNIX, Linux et MAC OS X API Java pour la machine virtuelle Java (JVM) Le programme appelant ne connait rien au sujet le l’implémentation de l’appel système. Obéit tout simplement au normes de l’API: paramètres à fournir, valeurs de retour, et opération désirée Les détails de l’interface du SE sont cachés derrière l’API. Géré par la bibliothèque de l’API (ensemble de fonctions fournit avec le compilateur) Possible d’utiliser les appels système directement

Exemple de l’API standard en C La fonction printf() qui fait un appel système write()

Services pour assurer efficacité et bon fonctionnement Allocation et gestion des ressources Nécessaire pour desservir plusieurs utilisateurs et plusieurs programmes Certaines ressources ont leur code de gestion spécifique: UCT, mémoire principale, système de fichier D’autres sont gérés via un code général – E/S Comptabilité Statistiques sur l’usage des ressources par les utilisateurs Protection et sécurité Empêcher les intrus (usagers non autorisés) d’accéder au système Empêcher les usagers d’accéder aux ressources qui ne leur sont pas destinées

Les SEs évoluent toujours Doit s’adapter au nouveau matériel. Exemples: Introduction des terminaux graphiques Introduction du matériel de pagination Doit offrir de nouveaux services, ex.: support à l’accès Internet Le besoin de modifier régulièrement un SE impose une contrainte pour sa conception constr. modulaire avec interfaces bien définies méthodologie orientée objet

Sujets du module Les composantes principales de l’ordinateur Organisation et Architecture d’ordinateur Révision du CEG3531 Système d’exploitation Un premier aperçu Services fournis par le système d’exploitation Réalisations principales des systèmes d’exploitation Caractéristiques et structure des SE modernes

Principales réalisations des SEs Pour rencontrer les exigences de la multiprogrammation et des systèmes à temps partagé, les SE nous ont apportés les réalisations suivantes: Processus Gestion de la mémoire Protection de l’information et sécurité Ordonnancement et gestion des ressources Structure du système

Difficultés rencontrées par les SEs Synchronisation un programme en attente d’utilisation d’un dispositif E/S doit recevoir un signal Exclusion mutuelle permettre à un seul programme à la fois d’effectuer une transaction sur une portion des données Impasse (deadlock) lorsque plusieurs pgms attendent indéfiniment l’un après l’autre sans pouvoir continuer

Exemple d’impasse Pgm A veux copier du disque1 au disque2 et s’approprie le contrôle du disque1 Pgm B veux copier du disque2 au disque1 et s’approprie le contrôle du disque2 Pgm A doit attendre que pgm B libère le disque2 et pgm B doit attendre que pgm A libère le disque1. Pgms A et B attendent indéfiniment

Processus Introduit affin d’obtenir une méthode systématique pour contrôler l’exécution des programmes Un processus est un pgm exécutable, avec: ses données (variables, tampons…) context d’exécution: ie. l’information: nécessaire à l’UCT pour exécuter le processus: contenu des registres du processeur nécessaire au SE pour gérer le processus: priorité du processus l’évènement après lequel le processus est en attente autres données (introduits au prochain chapitre)

Exemple simple de mise en application Mémoire Principale Le registre “process index” indexe la liste des processus avec le processus en cours (B) Pour commuter du processus B au processus A on sauvegarde en mémoire le contexte de B et on charge les registres du contexte de A Une structure de données flexible (pour ajouter de nouvelles caractéristiques) Registres UCT Index de processus i Liste de processus i j PC Base et limite Contexte b Processus A Données h Autres registres Programme b . Contexte Données Processus B h Programme

Gestion de la mémoire L’idée centrale: la mémoire virtuelle Donne au programme un espace mémoire (adressable) logique qui est indépendant de la qte de mémoire physique disponible Seule une partie à la fois d’un programme en exécution est maintenu en mémoire Les autres parties du pgm sont sur disque le pgm à accès à un espace mémoire de dimension supérieure à celui de la mémoire réelle

Mémoire virtuelle Chaque référence du pgm est à la mémoire virtuelle qui est constituée de: un espace linéaire (un seul block homogène) une collection de segments (différente taille) Les adresses virtuelles sont traduites par le matériel (“mapper”) en adresses réelles. S’il y a référence à un mot dont l’adresse virtuelle n’est pas en mémoire: (1) une portion du contenu de la mémoire réelle est transférée au disque (2) pour être remplacée par le block désiré

Le système de fichiers Utilisé pour la sauvegarde à long terme (souvent sur disque) l’information est sauvegardée dans des objets (ayant un nom) appelés fichiers un unité d’accès pratique pour le SE Fichiers (et portions) peuvent-être copiés en mémoire virtuelle pour être manipulés par les programmes

Gestion des ressources et ordonnancement Réactions différentes doit discriminer entre processus de différentes classes Équité ne pas discriminer entre processus de même classe Efficacité maximiser la capacité de traitement, minimiser le temps de réponse, et accommoder le plus d’utilisateurs possible

Éléments clefs pour l’ordonnancement Le SE maintient des files d’attente de processus attendant la disponibilité d’une ressource: file d’attente à court terme de processus en mémoire prêts à être exécutés Le répartiteur de tâches (dispatcher) décide qui sera le prochain à s’exécuter file d’attente de nouvelles jobs le SE ne doit pas admettre trop de processus file d’attente pour chaque dispositif E/S constituée de processus désirant l’utiliser

Structure du système En raison de sa complexité, un SE est structuré en couches Chaque couche se limite à effectuer un nombre restreint de fonctions et dépend de la couche inférieure pour exécuter des fonctions plus primitives Interfaces bien définies: une couche peut-être modifiée sans affecter les autres Décomposition d’un problème en plusieurs plus petits problèmes

Sujets du module Architecture d’ordinateur Système d’exploitation Services fournis par le système d’exploitation Évolution des systèmes d’exploitations Réalisations principales des systèmes d’exploitation Caractéristiques et structure des SE modernes

Caractéristiques d’un SE moderne De nouveaux concepts furent introduits récemment En réponse au nouveau matériel: machines à processeurs multiples réseaux à grande vitesse UCT plus rapides et plus de mémoire En réponse au nouveau logiciel: applications multimédia Internet et accès au Web applications client/serveur

Structure de système - Approche simple MS-DOS - cherchait à obtenir une fonctionnalité maximale avec des ressources limitées mono-tâche, mono-usager pas très modulaires manque de séparation claire entre couches accès direct aux périphériques (écran, etc.) permis aux programmes d`application manque de contrôles, vulnérabilité malheureusement, il fut adapté à des fonctionnalités plus complexes...

Couches du MS-DOS

Structure UNIX Multi-tâches, multi-usagers depuis le début Le système UNIX initial était aussi préoccupé par les limitation du matériel Distinction entre: programmes du système noyau tout ce qu’il y a entre l ’interface des appels de système et le matériel fournit dans une seule couche un grand nombre de fonctionnalités système fichiers, ordonnancement UCT, gestion mémoire... Plus modulaire et protégé que MS-DOS

Structure UNIX: peu de couches

Micronoyaux (microkernels) Dans les premiers SE, aussi UNIX, tout était dans le noyau Après, un effort fut fait pour laisser dans le noyau UNIX seulement les fonctionnalités absolument nécessaires Une des fonctionnalités du micro noyau UNIX est la communication par échange de messages utilisé pour la communication entre programme client et service

Structure à couches dans OS/2 (IBM) (suit les idées d’Unix) L ’OS/2 était beaucoup mieux organisé que MS-DOS, et donc moins vulnérable. Cependant il était peu performant. Win-NT a cherché à utiliser des principes semblables, mais avec une intégration meilleure des couches.

Structure client-serveur dans noyau Win-NT Win-NT a un petit noyau qui fournit une structure client-serveur, en utilisant échanges de messages Supporte différents SE: Win, OS/2, Posix

Modules Beaucoup de SEs modernes utilises un approche avec modules Approche orienté objet Chaque composant est séparé Échange se fait via des interfaces connues Chaque module est chargé au besoin par le noyau (kernel) Semblable à une structures de couches, mais plus flexible

Approche de modules de Solaris (UNIX)

Machines virtuelles: le problème et la solution Comment permettre de rouler différents SE sur une seule machine physique? Pas évident, car chaque SE demande accès direct au matériel SOLUTION: Un programme qui crée une couche qui met à disposition plusieurs machines physiques virtuelles Sur chacune, nous pouvons rouler un SE différent

Machines Virtuelles (série IBM3XX) Virtuel en informatique dénote quelque chose qui n ’est pas réel, n ’est pas du matériel: il est construit par le logiciel sur la base des ressources fournies par le matériel Une machine virtuelle est une machine créée par des couche de logiciel Elle peut avoir des caractéristiques identiques à la machine physique donnée: mêmes instructions, etc. Plusieurs machines virtuelles peuvent être créées sur une machine physique donnée!

Une seule mach. réelle et un seul noyau (b) plus. mach Une seule mach. réelle et un seul noyau (b) plus. mach. virtuelles et plus. noyaux

Fonctionnement Le système VM laisse exécuter normalement les instructions non privilégiées Les appels au système sont exécutés par le système VM et les résultats sont passés à la machine virtuelle sur laquelle le processus exécute

Avantages Chaque machine virtuelle peut utiliser un SE différent! En théorie, on peut bâtir des machines virtuelles sur des machines virtuelles! Protection complète, car les machines virtuelles sont complètement isolées les unes des autres Un nouveau SE peut être développé sur une machine virtuelle sans déranger les autres

Implémentations Le concept de VM est très utilisé pour permettre de rouler un SE sur un autre P.ex. SUN, Apple, Linux permettent de rouler Windows sur leur plateforme, Ils doivent fournir à Windows un environnement que Windows reconnaît comme son environnement Intel usuel

VMWARE sur Linux

Machine virtuelle de Java