Title: Systmes dExploitation
1Systèmes dExploitation Machines Virtuelles
- Architectures et Conception des logicielles de
base pour les systèmes informatiques - Par Gilles Grimaud
- Université des Sciences et Technologies de Lille
- http//www.lifl.fr/grimaud/Cours
2Format de lenseignement
- 13 x 1h30 de cours
- Et 12 x
- 1h30 TD dont 1 CC et
- 1h30 TP
- 3 sujets de 4,5 heures
- 1 évaluation
-
3Objectif du cours
- Objectifs
- Acquérir des notions
- darchitecture des systèmes dexploitation
- dexploitation des matériels informatiques
- de sécurité fournies par les systèmes
- du rôle/activité des couches logicielles de base.
- Maîtriser les principes fondateurs des systèmes
dexploitation en vue de - Savoir utiliser les outils logiciels fournis
- Savoir concevoir des composants système.
4Rôles et fonctions dun système dexploitation
- Un Système informatique est un ensemble cohérent
de matériels et de logiciels destinés à assurer
le traitement automatique dinformations. - Un tel système
- est relié au monde extérieur à laide de circuit
daccès (écran, imprimante, clavier, scanner,
capteurs, liaison réseau, ) - gère linformation (stockage, désignation,
recherche, mise en forme, ) - cadre et opère la transformation de linformation
adaptés aux rôle du système informatique
(exécution de programmes variés selon les
besoins, ) - ? Les supports fondamentaux de linformatique
sont les mécanismes de mémoires, les
mécanismes de traitement, les mécanismes de
communication.
5Du circuit électronique au document Web
- Vers des modèles de plus en plus abstraits
- Une montre à quartz est un système informatique
- il stocke la date courante
- Il transforme cette information au cours du temps
- Il communique le résultat à lutilisateur du
système. - Un serveur Web est un système informatique
- Il exploite un système de fichiers, ou une base
de données - pour produire un document spécifique
- quil retransmet au client qui le lui a demandé.
-
Quartz
additionneurs
Bascules
Bascules
traitement
mémoire
communication
Cristaux liquides
Bascules
Internet
B.D.
ServletPhp
communication
traitement
mémoire
Fichier
6Fonctions dun système dexploitation
- Avec des prétentions variables en fonction des
différents besoin, les systèmes dexploitation
assurent fondamentalement trois tâches - Gérer le matériel
- Fournir une abstraction du matériel
- Fiabiliser/sécuriser/administrer lexécution des
traitements.
7Petite Histoire des systèmes dexploitation
Les débuts
1ers Systèmes
Temps partagé
Systèmes graphique
micro noyaux
Exo noyaux
SDS 930
Multics
Unix
Solaris
Linux
ST76
MS-DOS
MS-Windows
McOS- X -
MacOS
TOS
Workbench
Chorus
MAC
X-kernel
VM Ware
1945
1955
1965
2003
1975
1985
1995
8Quelques paradigmes pour la conception système
- Liaison
- Déf. relier une ressource (éventuellement
matérielle) à un symbole. Permettre la
manipulation de la ressource au travers de leur
symbole. - Objet permettre la manipulation symbolique des
ressources, leurs partage entre plusieurs
applications. - Exemple liaison entre nom de fichier est un
flux. - Abstraction
- Déf. abstraire, cacher, la complexité dune
ressource (éventuellement matérielle) en
proposant une interface logicielle simplifiée - Objet réduire la complexité apparente du
système informatique. - Exemple bibliothèques de bases.
- Virtualisation
- (Virtuel qui pourrait être mais qui nest
pas.) - Déf. Remplacer laccès a un matériel réel
par laccès à un matériel qui pourrait être mais
qui nest pas - Objet exposer un matériel réel ou imaginaire
et néanmoins le gérer. - Exemple Système de mémoire virtuelle, Machines
Virtuelle.
9clefs pour la programmation des systèmes
dexploitation
- 1. Programmation en couchePrincipe de
programmation par bibliothèques - Appel de routines systèmeUn système
dexploitation peut être représenté au minimum
comme un ensemble de bibliothèques logicielles
qui fournissent des fonctions plus simple Ã
manipuler que le matériel. - Les systèmes dexploitation peuvent ce résumer Ã
un ensemble de procédures fournies une bonne fois
pour toutes pour simplifier lutilisation du
matériel. - Exemple Un système de fichier.
10Les systèmes dexploitation une clef pour la
tour de Babel ?
Application PHP
Application
Interprète PHP
Serveur Web
Socket TCP
Logiciel de base
abstraction
Routage IP
administration
Pilote Ethernet
gestion
Carte réseau
Matériel
11Le système dexploitation Support pour
applications
Application 2
Application 1
Application 3
Support dexécution des applications
Logiciel Pilote 2
Logiciel Pilote 1
Matériel 2
Matériel 1
12Principes de la programmation des systèmes
dexploitation
- 2. Intégration de lasynchronisme La plus
part du temps les programmes attendent un
événement extérieur saisie dun mot au clavier,
réception dun message via le réseau, signal de
fin dimpression de limprimante - Entrelacer lexécution des programmesUn système
dexploitation doit donner la main à un autre
programme lorsquun programme est en attende. - Les systèmes dexploitation peuvent définir un
ensemble de procédures de tel sorte quune
application soit endormie la main lorsquelle
attend quelque choses et quelle soit réveillée
lorsque les données sont reçues. Des tampons
démission et de réception permettent de
temporiser les réveils et les endormissement des
applications qui utilisent une ressource
particulière. - Exemple Un gestionnaire daccès à un disque dur.
13Principes de la programmation des systèmes
dexploitation
- 3. Programmation par cadre de travail On ne
vous dit plus quelles procédures le système met Ã
votre disposition, mais quand et pourquoi le
système appellera vos procédures pour que votre
programme fonctionne ! - Appel en RetourUn système dexploitation peut
définir la manière. - Les systèmes dexploitation peuvent définir un
ensemble de procédures que le programmeur
dapplication doit définir et qui sont appelée
lorsquun événement relatif à une application se
produit. - Exemple Un système de gestion de fenêtre
graphique.
14Le système dexploitation Cadre de travail pour
applications
Cadre de travail
Application 1
Application 2
Support dexécution des applications
Pilote 2
Pilote 1
Matériel 2
Matériel 1
15le microprocesseur
- Rappel sur le fonctionnement dun ?processeur
(RISC) - Lire une opération
- Décoder
- Lire les données entrantes
- Exécuter lopération
- Ecrire les données sortantes
16 Registres indifférenciés PC n15 LR n14
(SP n13) Les opérations machines Unité
Arithmétique Logique CCCC 00 I Op(4) S Rn(5)
Rd(5) ImmRmLSL(12)Op AND, EOR, SUB, RSB,
ADD, ADC, SBC, RSC, TST, TEQ, CMP, CMN, ORR, MOV,
BIC, MVNI 0 ? Immediate I 1 ? Register
ShiftS 0 ? dont set CC I 1 ? Set Condition
Code Accès mémoire CCCC 01 IPUBWL Rn(5) Rd(5)
ImmRmLSL(12) I 0 ? Immediate I 1 ?
Register Shift P 0 ? Post P 1 ? pre U
0 ? down U 1 ? up B 0 ? Word B 1 ? Byte
W 0 ? no WriteBack W 1 ? WriteBack L 0 ?
LOAD L 1 ? STORE Flot de contrôle CCCC 1010
Offset(24) ou CCCC 0001 0x2FFF1 RnBL offset,
BX Rn Traitement des signaux matériels
déroutement pour les interruptions et
exceptions.
Clk
données
32
ARM7 TDI
IT
adresses
32
7
16Gérer le microprocesseur
- Charger un programme
- Copier en mémoire centrale lensemble des mots
mémoires qui constituent les opérations
(machines) qui compose le programme à charger. - Reloger les adresses mémoires du programme sil
contient des _at_ particulières. - Exécuter un programme
- Brancher ou sauter sur la première
instruction du programme chargé. - Partager le temps dexécution entre programmes
- Utiliser les signaux interruptions basé sur le
temps pour donner successivement la main Ã
différents programmes
Signaux dhorloge
Prog. n2
Prog. n2
Prog. n1
Prog. n1
?-proc
Interruption
Interruption
Interruption
Ordonnanceur
Ordonnanceur
Ordonnanceur
17Sabstraire du microprocesseur
- Exécuter un programme cest faire pointer le
registre pointeur de programme sur la
première instruction machine. Au fur et à mesure
des cycles dhorloges, le programme sexécute. - Comment un programme écrit en C, en PhP ou en
Java fait dans ce contexte pour sexécuter sur un
microprocesseur ? - Trois techniques de base pour sabstraire du
langage machine - les compilateurs
- Convertir le fichier source en code machine
- les interpréteurs
- Exécuter un programme machine qui décode et
exécute le source - les machines virtuelles
- Définir un nouveau format de machine (virtuelle),
puis compiler vers ce format puis décoder et
exécuter ce format.
18Sabstraire du microprocesseur Lexemple dUnix
et du langage C
Fichier code C example.c
Fichier assembleurexample.s
Contenu binaire géré
int foo(int i) int main( int argc,
char argv) int i i 3 i foo(i)
int foo(int i) return i 1
main STR lr,sp,-4! MOV R0,3 BL foo
MOV R0,0 LDR lr,sp,4 BX lr foo ADD
R0,R0,1 BX lr
E5 2D E0 04 E3 A0 00 03 EB FF FF FC E3
A0 00 00 E4 9B E0 04 E1 2F FF 1E E2 80 00
01 E1 2F FF 1E
compilation
assemblage
19Les mémoires
- On peut qualifier les supports de mémoires
disponibles selon trois critères
Type daccès
Vitesse daccès
adressage
Registres Mem interne
L / E
immédiat
interne
RAM
L / E
Rapide (1 Mot / 7 ns)
bus
ROM
L
1 Mot / 120 ns
bus
CD ROM, DVD
L
512 octets / 73 ?s 1
interface
EEPROM, FlashRAM
L / E 2
1 Mot / 80 ns
bus
M-RAM, Fe-RAM
L / E
Rapide ( 1 Mot / 26 ns)
bus
Disques, Disque Dur
L / E
4096 octets / 520 ?s 1
interface
Opto-magnétique
L / E
Lent
interface
1 latence importante2 écriture avec délais
important 64 Octets / 5ms
20Gérer les mémoires
- Gérer les registres
- Stratégie doptimisation du code généré
(compileur) - Gérer les mémoires derrière le bus
- Système de cache (matériel)
- Virtualisation de la mémoire (MMU).
- Gérer les mémoires derrière une interface
- Système de cache (logiciel)
- Mapping de la mémoire externe derrière la mémoire
virtuelle.
21Sabstraire des mémoires
- Il existe un grand nombre de dabstractions
utilisées pour exploiter la mémoire. - Abstraction de ladressage
- Système de fichier, base de données, mémoire
objet, - Abstraction des méthodes daccès
- Lecture et écriture avec contrôle daccès,
- Gestion du polymorphisme, externalisation,
- Mémoire fiable, mémoires transactionnelles,
- Abstraction des méthodes dallocations
- Allocation et déallocation dynamique,
déallocation implicite (ramasse miette).
22Sabstraire des mémoires Lexemple des
systèmes de fichiers
- Un disque dur un ensemble de secteurs de taille
fixe (e.g. 512 octets)
X 4 octets
Magic Number
X 32 octets
Volume Name
X 32 octets
Fomater ID
Secteur Boot
X 32 octets
Fomat Date
SuperBloc (MBR)
X 4 octets
FAT Size
X 4 octets
FAT
First Dir Block
X 4 octets
CheckSum val
Unused space
Secteur utilisable
1110000110001011100011101010111011100
Un secteur utilisable peut être Un secteur
I-node Un secteur data
V1,2,3,4
Type i-node
V5,6,7,8
size
Direct 1
indirect
indirect 2
23Sabstraire des mémoires Lexemple des
systèmes de fichiers
- Un disque dur un ensemble de secteurs de taille
fixe (e.g. 512 octets)
Files Data
Files Data
Files Data
Files Data
Files Data
Files Data
24Plan (prévisionnel) du cours
- Introduction au cours de système
- Partie I Système et mémoires
- 2. Gestionnaire de la mémoire persistante
(système de fichiers). - 3. Virtualisation de la mémoire de travail
(allocateur/ dé allocateur). - Abstraction de la mémoire de travail
(gestionnaire de mémoire objet). - Mémoire transactionnelle (un exemple de propriété
non fonctionnel). - Partie II Système et microprocesseur
- 6. Gestion du microprocesseur (Chargement,
édition de lien, initialisation, exécution). - 7. Abstraction du microprocesseur (Compilateur,
Interpréteur, Machine Virtuelle). - Mécanisme de partage de la ressource ?proc et
dordonnancement des taches. - Problèmes dordonnancement, ordonnancement temps
réel et exclusion mutuelle. - Partie III Architecture et sécurité des
systèmes dexploitation - Isolation par adressage/dynamique (MMU)
Isolation par typage/Statique (JVM). - Architecture des systèmes dexploitation.
- Partie IV Exploitation des systèmes Unix