Title: Introduction/survol du SE
1Introduction/survol du SE
- CSI3710 - Module 1
- Lecture Chapitre 1 et 2 (Silberchatz)
- Objectif
- Faire un survol rapide des éléments dordinateurs
le processeur (UCT), la mémoire, et
lentrée/sortie. - Introduire les système dexploitations afin de
comprendre son rôle et ses fonctions principales
2Sujets du module
- Les composantes principales de lordinateur
- Organisation et Architecture dordinateur
- Révision du CEG3531
- Système dexploitation
- Un premier aperçu
- Services fournis par le système dexploitation
- Réalisations principales des systèmes
dexploitation - Caractéristiques et structure des SE modernes
3Vue abstraite des composantes dun système
informatique
- Lordinateur générale se divise en 4 composantes
principales - Matériel
- UCT, mémoire, appareils dentrée/sortie (E/S)
- Système dexploitation
- Contrôle le matériel et coordonne sont
utilisation parmi les applications et
utilisateurs - Programmes dapplications
- Traitement de texte, compilateurs, fureteurs WEB,
etc. - Utilisateurs
4Vue abstraite des composantes dun système
informatique
5Cest quoi un SE?
- Vue de lutilisateur
- Système personnel Système partagé
- Système branché Système imbriqué
- Pourquoi un SE?
- Partage des ressources de lordinateur
- Et sur un PC?
- Mais quest ce que fait le SE?
- Relation intime avec le matériel (en fait
labstraction pour les applications) - Allocation du matériel (équitable le plus
possible) - Contrôle dexécution, i.e., allocation du temps
dexécution. - La définition dun SE?
- Pas de définition universel
- Cest le programme qui est toujours présent en
mémoire le noyau
6Sujets du module
- Les composantes principales de lordinateur
- Organisation et Architecture dordinateur
- Révision du CEG3531
- Système dexploitation
- Un premier aperçu
- Services fournis par le système dexploitation
- Réalisations principales des systèmes
dexploitation - Caractéristiques et structure des SE modernes
7Maté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
8Structure 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
- linformation sur le statut de lopération E/S
- linformation de contrôle venant de lUCT
- Le circuit I/O logic interagit avec lUCT via
le bus. - Contient la logique spécifique à linterface de
chaque dispositif
9Registres de lUCT
- Registres de Contrôle Statut
- Généralement non disponibles aux programmes de
lusager - lUCT en utilise pour contrôler ses opérations
- Le SE en utilise pour contrôler lexécution des
programmes - Registres Visibles (aux usagers)
- disponibles au SE et programmes de lusager
- Contient données, adresses et quelques bits de
statut
10Exemples de registres de contrôle statut
- Le compteur dinstruction (PC)
- Contient ladresse de la prochaine instruction Ã
exécuter - Le registre dinstruction (IR)
- Contient linstruction en cours dexécution
- Le mot détat du programme (PSW)
- Un registre ou groupe de registres contenant
- bits de statut
- bit dinterruption activé/désactivé
- bit du mode dexécution superviseur(SE)/usager
11Registres Visibles
- Registres de données
- manipulés par lusager pour opérations sur les
données (ex ADD, MUL) - Registres dadresse
- contient adresses de données et instructions
- peut contenir seulement une partie de ladresse
complète
12Registres Visibles
- Exemples de registres dadresse
- Index/offset
- contient la valeur dune adresse relative à une
valeur de base - Pointeur de segment
- contient ladresse de base.
- Ladresse complète adresse de base index
- Pointeur de pile
- pointe au sommet de la pile
13Registres Visibles
- Bits détats
- valeur assignée suite au résultat dune opération
- Accessibles aux usagers mais non modifiables par
ceux-ci - Exemples
- sign flag
- zero flag
- overflow flag
14Le cycle dinstruction de base
- LUCT extrait linstruction (avec opérandes) de
la mémoire. - Ensuite lUCT exécute cette instruction
- Le compteur dinstruction (PC) contient ladresse
de la prochaine instruction à extraire - Le PC est incrémenté automatiquement après chaque
extraction
15LUCT doit attendre après les E/Ss!
- WRITE branche sur un pgm E/S (ex driver
dune imprimante) - pgm E/S prépare Ie module E/S en (4)
- lUCT doit attendre que la commande E/S soit
terminée - Temps dattente est long
- pgm E/S termine en (5) et communique le statut de
lopération
16Interruptions!
- Les ordinateurs permettent aux modules dE/S
dinterrompre lUCT. - Pour cela, le module E/S excite (assert) une
ligne du bus de contrôle (ex INTR pour les PCs) - LUCT transférera le contrôle a un programme de
gestion de linterruption (Interrupt Handler
Routine) (faisant partie du SE)
17Le cycle dinstruction avec interruptions
- Après chaque instruction, lUCT examine sil y a
une interruption - Sil ny en a pas, il extrait la prochaine
instruction du programme - Sil y en a, il suspend le pgm en cours et
branche lexécution sur le pgm de gestion de
linterruption
18Le pgm de gestion de linterruption (IH)
- Est un pgm qui détermine la nature dune
interruption et exécute les actions requises - Lexécution est transférée à ce pgm...
- et doit revenir au programme initial au point
dinterruption pour que celui-ci continue
normalement ses opérations - Le point dinterruption peut se situé nimporte
où dans le pgm - Lon doit donc sauvegardé létat du programme
(ie PC PSW registres ...)
19Traitement des interruptions
20Les interruptions améliorent lutilisation de
lUCT
- Le pgm E/S prépare le module E/S et exécute la
commande E/S (ex impression dun char) - pgm E/S branche au pgm usager
- code usager est exécuté durant lopération E/S
pas dattente - pgm usager est interrompu (x) lorsque lopération
E/S est terminée. Branchement au IH pour examiner
le module E/S (statut de lopération) - branche ensuite au pgm usager
21Interruption pour lE/S
22Types dinterruptions
- E/S
- lorsquune opération E/S est terminée
- Exception
- Débordement de division
- interdiction dexécuter une instruction
- référence au delà de lespace mémoire
- Minuterie
- préemption dun pgm pour en exécuter un autre
- Bris de matériel (ex erreur de parité en mémoire)
23Ordre séquentiel des interruptions
- Interruption désactivé durant lexécution dun IH
- Les interruptions sont en attente jusquà ce que
lUCT active les interruptions - LUCT examine sil y a des interruptions en
attente après avoir terminé dexécuter lIH
24Interruptions avec priorités
- LIH dune 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
25Techniques de communication pour E/S
- 3 techniques sont possibles
- E/S programmées
- Nutilise pas dinterruptions. LUCT doit
attendre après chaque opération dE/S - E/S déclenchées par interruptions
- LUCT peut exécuter du code pendant lopération
E/S il est interrompu lorsque lopé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 lUCT
26E/S programmées
- Module E/S exécute une action à la demande du
processeur - Le module E/S ninterrompt pas le CPU lorsque E/S
est terminée - LUCT doit constamment examiner le statut du
module E/S
27E/S déclenchées par INT
- LUCT est interrompu par le module E/S lorsque
les données sont disponibles - LUCT peut exécuter dautre code pendant lE/S
- Pas dattente inutile
- Mais chaque mot échangé transit par lUCT et
requiert une interruption (ouf!)
28Accès direct à la mémoire (DMA)
- LUCT 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 lUCT) - Il y a interruption lorsque le transfert est
terminé - LUCT est sollicité uniquement au début et à la
fin du transfert - LUCT est libre dexécuter du code pendant le
transfert
29Organisation 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
30Une 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 dabord si le mot désigné
est dans la mémoire cache - Sil ny est pas, un petit block de mémoire
contenant le mot est transféré de la mémoire
principale à la mémoire cache.
31Temps daccès
- Le temps daccès est le temps requis pour amener
le mot référencé au processeur - T1 temps daccès pour mémoire cache
- T2 temps daccès pour mémoire principale
- T temps daccè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é nest pas dans le cache
- Car ça coûte dabord T1 pour examiner le cache
(et réaliser que le mot référencé nest 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 daccès total est donc T T1 T2
32Le 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 gtgt T1
- Le temps daccès moyen est près de T1 lorsque le
taux de présence est près de 1
33Groupement 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 dinstructions. - Donc lorsquun 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.
34Mé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 lorsquun
enregistrement est consulté, il est très probable
que les enregistrements voisins seront consultés
fréquemment. - Si lenregistrement nest pas dans le cache, le
secteur du disque contenant lenregistrement est
copié dans le cache.
35Fonctionnement de lordinateur moderne
36Sujets du module
- Les composantes principales de lordinateur
- Organisation et Architecture dordinateur
- Révision du CEG3531
- Système dexploitation
- Un premier aperçu
- Services fournis par le système dexploitation
- Réalisations principales des systèmes
dexploitation - Caractéristiques et structure des SE modernes
37Fonctionnement dun ordinateur
- Comment lordinateur démarre?
- Programme de chargement (en mémoire ROM le
micrologiciel). - Charge le noyau en mémoire et lexécute.
- Exécution du noyau (est ainsi les applications).
- Noyau exécute lors dinterruptions
- Interruption du matériel.
- Interruption logique des applications lappel
système (en détail plus tard) - Erreurs division par zéro, violation daccès de
mémoire par une application, etc.
38Le mode usager et le mode noyau
- Opération en mode double permet au ES de se
protéger ainsi que dautres 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 lappel le rechange au mode usager.
39Transition du mode usager au mode noyau
- Minuterie empêche les processus de saccaparer 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.
40Multiprogrammation
- Tout programme faisant une lecture sur un
périphérique doit attendre que lopération E/S
soit terminée - Les interruptions sont plus utiles lorsquun
processeur est partagé parmi plusieurs processus
concurrents. - LUCT peut alors exécuter un autre programme
lorsquun programme attends quune opération E/S
soit terminée.
41La structure dE/S du noyau
42Sujets du module
- Les composantes principales de lordinateur
- Organisation et Architecture dordinateur
- Révision du CEG3531
- Système dexploitation
- Un premier aperçu
- Services fournis par le système dexploitation
- Réalisations principales des systèmes
dexploitation - Caractéristiques et structure des SE modernes
43Système dexploitation (SE)
- Est un programme contrôlant lexécution des
applications - Le SE doit céder le contrôle aux programmes
usagers et le reprendre correctement - Dit à lUCT quand exécuter tel programme
- Cest linterface entre les programmes (et
lutilisateur) et le matériel - Masque les détails du matériel aux applications
- Le SE doit donc tenir compte de ces détails
44Les couches logiques dun système
Utilisateur
Programmeur
Applications
Développeur de SEs
Logiciels utilitaires
Système dexploitation
Matériel
45Services offerts aux utilisateurs
- Interface dutilisateur
- 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 lexé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
46Services offerts aux programmes dutilisateurs
- Opérations dentrée/sortie
- Laccès au matériel se fait par le noyau pour le
programme exécutant - Communications
- Communication entre programmes dun même
ordinateur ou avec ceux dautres 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 dun dispositif E/S - Erreurs du logiciel débordements, interdiction
daccès à une case mémoire - Impossibilité pour SE de satisfaire requête
- Réaction juste rapporter lerreur Ã
lapplication, essayer de nouveau lopération,
suspendre lapplication
47Lappel système
- Linterface 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 dun répertoire. - Gestion dappareil demande/relâche dun appareil
- Gestion dinformation gestion de lheure,
attributs des processus et fichiers - Communication ouvrir/fermer un connexion,
envoyer/recevoir des messages
48Appel système (suite)
- Normalement écrit avec langage de programmation
haut niveau (par exemple le C). - Implémenter avec linterruption logicielle
- Linterruption logicielle change le bit mode au
mode noyau et fait appel au sous-programme
approprié selon un tableau dappels systèmes et
le numéro dinterruption - À la fin du sous-programme, le mode redevient le
mode usager et des valeurs sont retournées au
programme appelant.
49API de lappel système
50Comment accéder aux appels systèmes
- Accéder souvent par les programmes avec une
interface de programmation dapplication (API) et
non pas lappel 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
limplémentation de lappel système. - Obéit tout simplement au normes de lAPI
paramètres à fournir, valeurs de retour, et
opération désirée - Les détails de linterface du SE sont cachés
derrière lAPI. - Géré par la bibliothèque de lAPI (ensemble de
fonctions fournit avec le compilateur) - Possible dutiliser les appels système directement
51Exemple de lAPI standard en C
- La fonction printf() qui fait un appel système
write()
52Services 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
- Dautres sont gérés via un code général E/S
- Comptabilité
- Statistiques sur lusage des ressources par les
utilisateurs - Protection et sécurité
- Empêcher les intrus (usagers non autorisés)
daccéder au système - Empêcher les usagers daccéder aux ressources qui
ne leur sont pas destinées
53Les SEs évoluent toujours
- Doit sadapter au nouveau matériel. Exemples
- Introduction des terminaux graphiques
- Introduction du matériel de pagination
- Doit offrir de nouveaux services, ex. support Ã
laccè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
54Sujets du module
- Les composantes principales de lordinateur
- Organisation et Architecture dordinateur
- Révision du CEG3531
- Système dexploitation
- Un premier aperçu
- Services fournis par le système dexploitation
- Réalisations principales des systèmes
dexploitation - Caractéristiques et structure des SE modernes
55Principales 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 linformation et sécurité
- Ordonnancement et gestion des ressources
- Structure du système
56Difficultés rencontrées par les SEs
- Synchronisation
- un programme en attente dutilisation dun
dispositif E/S doit recevoir un signal - Exclusion mutuelle
- permettre à un seul programme à la fois
deffectuer une transaction sur une portion des
données - Impasse (deadlock)
- lorsque plusieurs pgms attendent indéfiniment
lun après lautre sans pouvoir continuer
57Exemple dimpasse
- Pgm A veux copier du disque1 au disque2 et
sapproprie le contrôle du disque1 - Pgm B veux copier du disque2 au disque1 et
sapproprie 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
58Processus
- Introduit affin dobtenir une méthode
systématique pour contrôler lexécution des
programmes - Un processus est un pgm exécutable, avec
- ses données (variables, tampons)
- context dexécution ie. linformation
- nécessaire à lUCT 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)
59Exemple 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
PC
j
Base et limite
b
Contexte
h
Données
Processus A
Autres registres
Programme
. . .
b
Contexte
Données
Processus B
h
Programme
60Gestion de la mémoire
- Lidé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 dun 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
61Mé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. - Sil y a référence à un mot dont ladresse
virtuelle nest 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é
62Le système de fichiers
- Utilisé pour la sauvegarde à long terme (souvent
sur disque) - linformation est sauvegardée dans des objets
(ayant un nom) appelés fichiers - un unité daccès pratique pour le SE
- Fichiers (et portions) peuvent-être copiés en
mémoire virtuelle pour être manipulés par les
programmes
63Gestion 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
dutilisateurs possible
64Éléments clefs pour lordonnancement
- Le SE maintient des files dattente de processus
attendant la disponibilité dune ressource - file dattente à 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 à sexécuter - file dattente de nouvelles jobs
- le SE ne doit pas admettre trop de processus
- file dattente pour chaque dispositif E/S
constituée de processus désirant lutiliser
65Structure 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 dun problème en plusieurs plus
petits problèmes
66Sujets du module
- Architecture dordinateur
- Système dexploitation
- Services fournis par le système dexploitation
- Évolution des systèmes dexploitations
- Réalisations principales des systèmes
dexploitation - Caractéristiques et structure des SE modernes
67Caractéristiques dun 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
68Structure 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 dapplication - manque de contrôles, vulnérabilité
- malheureusement, il fut adapté à des
fonctionnalités plus complexes...
69Couches du MS-DOS
70Structure 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 quil 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
71Structure UNIX peu de couches
72Micronoyaux (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
73Structure à couches dans OS/2 (IBM) (suit les
idées dUnix)
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.
74Structure 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
75Modules
- 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
76Approche de modules de Solaris (UNIX)
77Machines 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
78Machines 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!
79Une seule mach. réelle et un seul noyau(b) plus.
mach. virtuelles et plus. noyaux
80Fonctionnement
- 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
81Avantages
- 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
82Implé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
83VMWARE sur Linux
84Machine virtuelle de Java