Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
Structure des Systèmes Informatiques
Chapitre 3
2
Concepts importants du Chapitre 3
Responsabilités et services d’un SE Le noyau Appels du système (system calls) Communication entre processus Messagerie et mémoire partagée Structure à couches Machines virtuelles Ch.3
3
Gestion de processus et UCT
Un processus=tâche est un programme en exécution Le SE est responsable pour: création, terminaison des processus chargement en mémoire, exécution (load, run …) allocation de ressources aux processus mémoire, périphériques exécution des ops d’E/S suspension, reprise des processus synchronisation, communication entre processus Le SE intervient pour chacun de ces besoins Ch.3
4
Gestion de mémoire principale (RAM)
Le SE est responsable pour: savoir quels processus utilisent quelles parties de la mémoire allouer la mémoire quand elle est demandée si elle est disponible libérer la mémoire quand un processus n’en a plus besoin Parfois c’est le système d’exécution des langages de programmation qui gère la mémoire en détail (Ex.: Java) Ch.3
5
Autres services importants
Protection de ressources Comptabilité, p.ex. pour charger les usagers payants Ch.3
6
Noyau (kernel) et appels de système
Ch.3
7
Le noyau (kernel) du SE La partie centrale du SE est appelée Kernel = noyau Défini souvent comme « l’ensemble des programmes qui exécutent en mode kernel=mode superviseur» Il contient les fonctionnalités critiques du SE: elles doivent être prêtes à l’utilisation traitement d’interruptions gestion de UCT gestion mémoire principale communication entre processus etc., nous verrons À part ça, quoi exactement mettre dans le kernel est une question pour les concepteurs des SE Presque toutes les fonctionnalités discutées dans ce cours sont dans le kernel Ch.3
8
Appels du système L’interface entre un processus et le noyau
directement disponibles dans un shell UNIX-Linux ou dans un command prompt MS-Windows aussi dans les langages de programmation `bas niveau` (assembleur) ils sont cachés dans les langages de haut niveau (C, Java...) Ch.3
9
Programmes système (compilateur, assembleur, éditeur …)
kernel Pas partie du kernel, en augmentent la fonctionnalité. Voir discussion et exemples dans le manuel Ch.3
10
Partage de responsabilités entre programmes de systèmes et noyau
C’est une décision de conception de SE de décider quelles fonctionnalités doivent être implémentées dans le kernel, et quelles dans les programmes de système. Ch.3
11
Concept de Microkernel: le plus petit possible (Linux, mais pas Windows)
Virtual file system Interprocess communication Ch.3
12
Kernel monolithique et micro-kernel
Contient seulement Ordonnancement UCT (scheduling) Mémoire virtuelle Communication entre processus Les suivants sont des modules externes Kernel monolithique (une seule pièces) Contient aussi des fonctionnalités moins essentielles Pourrait ne pas entrer entièrement en mémoire, aussi plus de chances d’erreur Ch.3
13
Fonctionnalités qui doivent forcément être dans le noyau
Elles sont les fonctionnalités dont tout processus a besoin, inclus les processus du noyau! traitement d’interruptions, inclus E/S gestion de UCT, son ordonnancement gestion mémoire principale communication entre processus Ch.3
14
Structure à couches Ch.3
15
Structure à couches dans les SE modernes
Un SE est divisé dans un certain nombre de couches, bâties les unes sur les autres la couche la plus basse communique avec le matériel la plus élevée est l’interface usagers Les couches supérieures utilisent les fonctionnalités fournies par les niveaux inférieurs Ch.3
16
Ch.3
17
Structure à couches, variations
opérations créées par une couche et rendues disponibles à la prochaine couche seulement (cachées aux autres couches) opérations créées dans une couche pour plusieurs couches supérieures Ch.3
18
Structure à couches, variations
Opérations qui contournent une couche À éviter en principe, mais on le fait …. Ch.3
19
L’autre possibilité serait la structure réseau
Plus difficile à gérer, à cause des nombreuses interfaces et relations possibles À couches Réseau Ch.3
20
Avantages, désavantages de suivre fidèlement une structure en couches
Chaque couche ne doit connaître que les fonctionnalités fournies par la couche sous-jacente Chaque couche ajoute ses propres fonctionnalités Les erreurs peuvent plus facilement être isolés dans une couche spécifique Maison construite un étage à la fois… poser l’étage n seulement quand l’n-1 est solide Désavantages: Pas efficace car un appel des programmes usager à des ressources du matériel implique autant d’appels qu’il y a des couches intermédiaires Excellent principe, pas toujours fidèlement suivi Pour des raisons d’efficacité Ch.3
21
Structure de système - Approche simple
Microsoft MS-DOS (1982) - cherchait à obtenir une fonctionnalité maximale avec des ressources limitées pas bien modularisé 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... Systèmes très instables DOS fut la première version de Windows et une grande partie de l’histoire de Windows a été un effort de dépasser les limitations de MS-DOS Jusqu’à Windows NT Windows XP Enfin, des systèmes plus fiables Ch.3
22
Couches du MS-DOS (premiers systèmes Microsoft)
23
Structure UNIX LINUX (1970 1991 … )
Multi-tâches, multi-usagers depuis le début Distinction claire entre: programmes du système noyau tout ce qu’il y a entre l’interface des appels de système et le matériel. Plus modulaire et protégé que MS-DOS Plus tard, évolution vers le concept de micro-kernel (Linux) Ch.3
24
Structure UNIX: trois couches principales
noyau Contrairement à MS-DOS, l’usager n’a pas accès direct au matériel. Ch.3
25
Autre figure pour Linux
A. Rubini and J. Corbet. Linux Device Drivers. Sebastopol, CA: O'Reilly & Associates, 2d ed., 2001. Online version at Ch.3
26
Systèmes d’exécution de langages:
Systèmes d’exécution de langages: couches entre le langage usagers et le SE Chaque langage de programmation repose sur Des compilateurs Des ‘systèmes d’exécution’ (run-time systems) qui rendent possible l’exécution de programmes après compilation P.ex. le système d’exécution Java se préoccupe de gérer la mémoire pour les programmes Java Gérer les appels de sous-programmes ou méthodes, etc. Les systèmes d’exécution ne sont pas partie du SE Mais en utilisent les fonctionnalités, qui donc sont cachées aux usagers Ch.3
27
Java run-time system Code Java compilé Java run-time system
Couches du SE Ch.3
28
Machines Virtuelles Ch.3
29
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 virtuelles Chaque machine virtuelle se comporte comme une machine physique séparée Sur chacune, nous pouvons rouler un SE différent Ch.3
30
Machines Virtuelles 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 couches de logiciel Elle peut avoir des caractéristiques identiques à la machine physique du système: mêmes instructions, etc. Plusieurs machines virtuelles peuvent être créées sur une machine physique donnée! Ch.3
31
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 Ch.3
32
Fonctionnement typique
Le système VM laisse exécuter normalement les instructions non privilégiées Mais les adresses des instructions doivent être modifiées pour les renvoyer à la zone de mémoire de la VM appropriée 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 Ch.3
33
Modification d’adresses
Dans l’UCT il y a un registre qui renvoie de fois en fois les adresses de chaque instruction de programme à la machine virtuelle pour laquelle l’UCT est en train d’exécuter VM1 OP REG ADR + REGISTRE VM2 De cette manière, un seul programme peut être exécuté par plus. machines virtuelles Ch.3
34
Avantages Plusieurs machines virtuelles peuvent être obtenues à partir d’une seule machine physique: Des nouvelles machines virtuelles peuvent être créés sur requête d’usagers Chaque machine virtuelle peut utiliser un SE différent Utile à fins d’expérimentation: Un nouveau SE ou une nouvelle application peuvent être développés sur une machine virtuelle sans affecter les autres Protection complète, car les machines virtuelles sont isolées les unes des autres (théoriquement) Ch.3
35
Architecture VMWare: ici le virtualisateur n’es pas directement sur le matériel, il est sur Linux
36
Implémentations MAC, LINUX et autres permettent de rouler Windows sur leur plateforme Ils doivent fournir à Windows un environnement que Windows reconnaît comme son environnement matériel usuel Normalement, environnement INTEL Pareillement, Windows peut supporter d’autres SE Ch.3
37
Simulateur: un concept différent
Applications Windows Applications Apple MAC Windows Simul. Intel MAC OS PC SUN Microsystems Dans le cas précédent, toutes les machines étaient basées sur le même matériel, les mêmes instructions Ici, les instructions Intel doivent être simulées une par une dans l’environnement Apple-MAC Ch.3
38
Différence entre virtualisateur et simulateur
Un virtualisateur permet de rouler plusieurs SE différents (ou identiques) sur une seule machine physique Mais toutes les SE se basent sur le même matériel, les mêmes instructions Un simulateur permet de rouler programmes conçus pour matériels différents sur une seule machine physique Différents ensembles d’instructions Ch.3
39
L’infonuagique (cloud computing)
Dans l’infonuagique l’usager utilise les services offerts par un ‘nuage’ d’ordinateurs à travers connexions internet Au lieu d’utiliser simplement son propre ordi ou le serveur local L’offre de puissance de calcul et stockage du nuage doit être élastique pour suivre les besoins des usagers Plus ou moins de serveurs UCT selon la demande La création et destruction dynamique d’ordis virtuels en est un des mécanismes Ch.3
40
Infonuagique Trois ordis physiques mais possiblement plus que 3 ‘virtuels’ Chaque ordi physique peut être subdivisé en ordis virtuels Pour une offre élastique de puissance de calcul et stockage Pour chaque usager séparément et selon la demande Ch.3
41
Concepts importants du Chapitre 3
Responsabilités et services d’un SE Le noyau Appels du système (system calls) Communication entre processus Messagerie et mémoire partagée Structure à couches Machines virtuelles Ch.3
42
Par rapport au manuel… Étudier sections 3.1 jusqu’à 3.7.
La section 3.8 n’a pas été discutée en classe mais elle contient des concepts importants concernant Java donc c’est une excellente idée de la lire Les sections 3.9, 3.10, 3.11 ne sont pas sujet d’examen cependant il est utile de les lire. Ch.3
43
MATÉRIAUX SUPPLÉMENTAIRES
Ch.3
44
Appels de systèmes pour interpréter le commandes (Unix, Linux ou MS-Windows)
Configuration de mémoire hypothétique En Unix, le command interpreter (shell) peut exécuter des programmes pour démarrer et charger différents processus en mémoire, exécutant des appels de système appropriés (fork, exec). Détails dans sessions exercices. Ch.3
45
Deux modèles de communication entre processus par appels de système
transfert de messages directement entre processus (message passing) - utilisant le service de messagerie offert par le noyau b) à travers mémoire partagée entre processus (shared memory) Ch.3
46
Messagerie et mémoire partagée
Les processus doivent établir une connexion entre processus appels de système open connection, accept connection, close connection, read/send message les processus s’envoient des messages utilisant des identificateurs de processus préalablement établis Mémoire partagée les processus doivent établir des zones de communication entre eux les processus doivent mutuellement synchroniser leur accès a cette zone Pour ceci, il font appel au SE (Chap. 7) Ch.3
47
Structure à couches dans le système THE (1968)
La structure à couches fut inventée dans le système THE (E.W. Dijkstra) qui avait les couches suivantes: Interface usager programmes usagers gestion E/S pilotage console opérateur gestion mémoire et tampons gestion UCT matériel Ch.3
48
Différentes visions du nom: UNIX
Originairement, UNIX était un SE spécifique Il est devenu plus tard un nom pour une famille de SE qui fournissent un certain type de fonctionnalité Souvent, le nom UNIX est compris comme une simple interface de commandes: Sont UNIX les systèmes qui fournissent les instructions shell et API de l’UNIX La structure interne du système pourrait être très différente (c’est le cas dans QNX) Ch.3
49
POSIX POSIX est le nom d'une famille de standards définie depuis 1988 par IEEE. Résultat d'un projet de standardisation des API des logiciels destinés à fonctionner sur des variantes du systèmes d’exploitation UNIX. POSIX = Portable Operating System Interface, X exprime l'héritage UNIX de l'Interface de programmation Essentiellement POSIX a cherché à normaliser l’interface typique des systèmes UNIX Instructions shell, API Ch.3
50
QNX: Un succès dans notre région
QNX est un SE pour les applications temps-réel et les système embarqués Il est essentiellement Unix Offre l’interface POSIX Développé dans la région (à Kanata) à partir de 1980 A été utilisé dans un grand nombre d’applications temps-réel et embarquées, par un grand nombre de compagnies La compagnie a été achetée par Research in Motion (RIM) qui utilise QNX dans ses produits Playbook, BlackBerry, etc Ch.3
51
Note historique-théorique
Le concept d’ordinateur universel qui peut simuler n’importe quel ordinateur, inclus soi-même, fut conçu par Alan Turing dans les années 1930 «La machine de Turing » Bien avant les premiers ordinateurs électroniques Ce concept est à la base du concept de machine virtuelle Il est aussi à la base de plusieurs concepts informatiques, pratiques et théoriques Cependant à l’époque il fut un concept purement théorique et mathématique Et la pratique fut développée sans connaître la théorie précédente! Ch.3
52
Questions pour révision 1
Expliquer la différence: processus, processeur, programme Que c’est que le noyau du SE? Expliquer la différence essentielle entre le noyau et autres composants du SE. Expliquer pourquoi chacun des suivants doit être dans le noyau: traitement d’interruptions gestion de l’UCT gestion mémoire principale communication entre processus Ch.3
53
Questions pour révision 2
Quelle est la relation entre appels du système et interruptions? Quels sont les avantages et les désavantages de structurer un SE en couches plutôt que d’une autre manière, p.ex. en réseaux de composantes Quelle est la différence entre systèmes d’exploitation et systèmes d’exécution de langages? La gestion de la mémoire en Java, appartient-elle au SE ou au système d’exécution Java? Ch.3
54
Questions pour révision 3
Quels sont les avantages principaux des machines virtuelles? Quelle est la différence entre une machine virtuelle et un simulateur d’un autre matériel? Décrire l’idée de base de l’infonuagique Ch.3
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.