cours systeme
TRANSCRIPT
Systèmes d'exploitation
Pierre-Nicolas Clauss
Laboratoire Lorrain de Recherche en Informatique et ses Applications
19 mars 2008
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 1 / 49
Plan
1 Introduction
2 Concepts de base
3 Programmation système
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 2 / 49
Bibliographie
Bibliographie
Systèmes d'exploitation, Andrew Tanenbaum, Edition PearsonEducation
Le noyau Linux, Daniel P. Bovet, Marco Cesati, Edition O'Reilly
Architecture Software Developer's Manual, Volume 3 : System
Programming Guide, Intel
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 3 / 49
Introduction
Plan
1 IntroductionArchitectureDé�nitionHistoriqueTypes de systèmes d'exploitationStructure matérielle
2 Concepts de baseStructure des systèmes d'exploitationProcessusOrdonancementCommunication IPCGestion de la mémoire
3 Programmation systèmeFichiersProcessus
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 4 / 49
Introduction Architecture
Plan
1 IntroductionArchitectureDé�nitionHistoriqueTypes de systèmes d'exploitationStructure matérielle
2 Concepts de baseStructure des systèmes d'exploitationProcessusOrdonancementCommunication IPCGestion de la mémoire
3 Programmation systèmeFichiersProcessus
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 5 / 49
Introduction Architecture
Architecture d'un ordinateur
Structure en couche
Applications
Système d'exploitation
Matériel
Couches fonctionnelles d'un ordinateur
Interface système/matériel
Interface système/applications
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 6 / 49
Introduction Architecture
Architecture d'un ordinateur
Structure en couche
Applications
Système d'exploitation
Matériel
Couches fonctionnelles d'un ordinateur
Interface système/matériel
Interface système/applications
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 6 / 49
Introduction Architecture
Architecture d'un ordinateur
Structure en couche
Applications
Système d'exploitation
Matériel
Couches fonctionnelles d'un ordinateur
Interface système/matériel
Interface système/applications
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 6 / 49
Introduction Dé�nition
Plan
1 IntroductionArchitectureDé�nitionHistoriqueTypes de systèmes d'exploitationStructure matérielle
2 Concepts de baseStructure des systèmes d'exploitationProcessusOrdonancementCommunication IPCGestion de la mémoire
3 Programmation systèmeFichiersProcessus
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 7 / 49
Introduction Dé�nition
Dé�nition
Système d'exploitation
Élément logiciel qui permet la gestion des ressources matérielles pourd'autres éléments logiciels.
Fonction
Abstraire les spéci�cités matérielles
Gérer les ressources disponibles
Partager les ressources
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 8 / 49
Introduction Historique
Plan
1 IntroductionArchitectureDé�nitionHistoriqueTypes de systèmes d'exploitationStructure matérielle
2 Concepts de baseStructure des systèmes d'exploitationProcessusOrdonancementCommunication IPCGestion de la mémoire
3 Programmation systèmeFichiersProcessus
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 9 / 49
Introduction Historique
Historique
Génération 0
1821-1836 : Premier machine numérique de Charles Babbage
Première génération
1940-1955 : Tubes à vide et Tableaux d'interrupteurs
Deuxième génération
1955-1965 : Transistors, cartes perforées et exécution par lots
Système d'exploitation FMS (Fortran Monitor System)
Troisième génération
1965-1980 : Circuits intégrés et multi-programmation
Système d'exploitation OS/360
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 10 / 49
Introduction Historique
Historique
Multi-utilisateur
Extension de la multi-programmation vers le temps partagé
Premier système à temps partagé CTSS (MIT)
MULTICS (MIT - Bell Labs - General Electric)
Mini-ordinateurs
1961 : PDP-1 au PDP-11 (DEC) avec 4 K-mots de 18 bits
1969 : MULTICS allégé pour PDP-7 (Ken Thompson, Bell Labs) :UNICS
1971-1977 : UNIX sur PDP-11 (Ken Thompson, Dennis Ritchie et al.)en C
1974 : Distribution d'UNIX aux universités américaine par AT&T
1977 : BSD 1 par l'université de Berkeley
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 11 / 49
Introduction Historique
Les branches UNIX (1969-2008)
UNICS Unix 1 Unix 2 Unix 3 Unix 4
PWB/Unix Unix 5
Unix 6
Unix 7
Unix 32V
System III
System V
1BSD
2BSD
3BSD
4.1BSD
SunOS 1.0
4.1cBSD
Unix System 8
4.3BSD
Unix System 9
SunOS 3.2
System V Release 4
UnixWare 1.0
Solaris 2
UnixWare 7.1.4
Solaris 10 4.3BSD Reno BSD Net/2
BSD/386 0.3.1
386BSD 0.0
386BSD 0.1
NetBSD 0.8
386BSD 1.0
SunOS 4.1.4 4.4BSD-Lite
FreeBSD 1.0
NetBSD 1.0
FreeBSD 2.0
NetBSD 1.1
4.4BSD-LiteRelease 2 FreeBSD 3.0
NetBSD 1.3
OpenBSD 2.0
NetBSD 4.0
FreeBSD 7.0
OpenBSD 2.3 OpenBSD 4.2
2.79BSD 2.11BSD Patch 335
Unix System 10
4.3BSD-Quasijarus0c
4.3BSD Tahoe
2.11BSD Patch 431
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 12 / 49
Introduction Historique
Historique
Quatrième génération
Puces LSI et ordinateurs personnels
CP/M (Gary Kildall, Digital Research), puis IBM PC et MS-DOS
Interface graphique, fenêtre et souris
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 13 / 49
Introduction Types de systèmes d'exploitation
Plan
1 IntroductionArchitectureDé�nitionHistoriqueTypes de systèmes d'exploitationStructure matérielle
2 Concepts de baseStructure des systèmes d'exploitationProcessusOrdonancementCommunication IPCGestion de la mémoire
3 Programmation systèmeFichiersProcessus
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 14 / 49
Introduction Types de systèmes d'exploitation
Types de systèmes d'exploitation
Systèmes pour mainframes
Grosse machines, beaucoup de ressources
Batch, transactionnel ou temps partagé
Systèmes pour serveurs
Beaucoup d'utilisateurs
Beaucoup de réseau
Systèmes multiprocesseurs
Plusieurs processeurs
Gestion concurrente des ressources
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 15 / 49
Introduction Types de systèmes d'exploitation
Types de systèmes d'exploitation
Systèmes personnels
Interface conviviale
Utilisation "basique"
Systèmes temps réel
Respect de contraintes temporelles
Temps réel "dur" vs Temps réel "mou"
Systèmes embarqués
Interface conviviale
Contraintes matérielles
Systèmes pour smart-cards
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 16 / 49
Introduction Structure matérielle
Plan
1 IntroductionArchitectureDé�nitionHistoriqueTypes de systèmes d'exploitationStructure matérielle
2 Concepts de baseStructure des systèmes d'exploitationProcessusOrdonancementCommunication IPCGestion de la mémoire
3 Programmation systèmeFichiersProcessus
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 17 / 49
Introduction Structure matérielle
Structure matérielle
Schéma structurel
ContrôleurVidéo
CPU Mémoire ContrôleurClavier
ContrôleurDisque
Bus
CPU
Le "cerveau" de l'ordinateur
Exécute les instructions selon un cycle Fetch, Decode, Execute
Fonctionne selon plusieurs niveaux de privilègesMode noyau : pas de restrictionsMode utilisateur : pas toutes les instructionsLe système d'exploitation s'exécute en mode noyauLes programmes s'exécutent en mode utilisateurLes services du système sont accessibles via des appels systèmes quibasculent en mode noyau le temps d'exécuter le service
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 18 / 49
Introduction Structure matérielle
Structure matérielle
Mémoire
Registres
Caches
Disque
Mémoire
CapacitéTemps d'accès
1 ns
2 ns
10 ns
10 ms
< 1 Ko
1 Mo
1 Go
1 To
Choisir où stocker les informationsMémoire principale : plusieurs programme chargés simultanément
Protection entre les programmes ?Protection entre un programme et le noyau ?Comment reloger un programme ?
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 19 / 49
Introduction Structure matérielle
Structure matérielle
Protection en mémoire par segmentation
Code
Données
Données
Base
Limite
Base
Limite
Limite
Base
Base
Limite
Processus 1 Processus 2
On utilise des paires base-limite pour spéci�erles adresses physiques du code et des données
À la compilation, le linker utilise desadresse virtuelles commençant à zéro
À l'exécution, la MMU additionne la base avecl'adresse virtuelle pour obtenir l'adressephysique
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 20 / 49
Introduction Structure matérielle
Structure matérielle
Périphériques d'E/S
CPU PIC ContrôleurDisque
Bus
Le CPU programme le contrôleur disque
Le contrôleur indique au PIC qu'il a �ni
Le PIC interrompt le CPU, qui passe en mode noyau
Le PIC communique au CPU la raison de l'interruption
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 21 / 49
Introduction Structure matérielle
Structure matérielle
Périphériques d'E/S
CPU PIC ContrôleurDisque
Bus
Le CPU programme le contrôleur disque
Le contrôleur indique au PIC qu'il a �ni
Le PIC interrompt le CPU, qui passe en mode noyau
Le PIC communique au CPU la raison de l'interruption
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 21 / 49
Introduction Structure matérielle
Structure matérielle
Périphériques d'E/S
CPU PIC ContrôleurDisque
Bus
Le CPU programme le contrôleur disque
Le contrôleur indique au PIC qu'il a �ni
Le PIC interrompt le CPU, qui passe en mode noyau
Le PIC communique au CPU la raison de l'interruption
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 21 / 49
Introduction Structure matérielle
Structure matérielle
Périphériques d'E/S
CPU PIC ContrôleurDisque
Bus
Le CPU programme le contrôleur disque
Le contrôleur indique au PIC qu'il a �ni
Le PIC interrompt le CPU, qui passe en mode noyau
Le PIC communique au CPU la raison de l'interruption
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 21 / 49
Introduction Structure matérielle
Structure matérielle
Périphériques d'E/S
CPU PIC ContrôleurDisque
Bus
Le CPU programme le contrôleur disque
Le contrôleur indique au PIC qu'il a �ni
Le PIC interrompt le CPU, qui passe en mode noyau
Le PIC communique au CPU la raison de l'interruption
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 21 / 49
Concepts de base
Plan
1 IntroductionArchitectureDé�nitionHistoriqueTypes de systèmes d'exploitationStructure matérielle
2 Concepts de baseStructure des systèmes d'exploitationProcessusOrdonancementCommunication IPCGestion de la mémoire
3 Programmation systèmeFichiersProcessus
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 22 / 49
Concepts de base Structure des systèmes d'exploitation
Plan
1 IntroductionArchitectureDé�nitionHistoriqueTypes de systèmes d'exploitationStructure matérielle
2 Concepts de baseStructure des systèmes d'exploitationProcessusOrdonancementCommunication IPCGestion de la mémoire
3 Programmation systèmeFichiersProcessus
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 23 / 49
Concepts de base Structure des systèmes d'exploitation
Structure des systèmes d'exploitation
Les systèmes monolithiques
La totalité du code du noyau et des drivers constitue un seulprogramme
Le système produit est lourd et di�cile à débugger
Les systèmes à machines virtuelles
Un petit programme, appelé exonoyau, gère des machines virtuelles enmode utilisateur
Les ressources sont allouées aux machines virtuelles par l'exonoyau
Le modèle client-serveur
Un petit programme, appelé micronoyau, gère les transferts demessages entre les programmes
Les drivers et les applications s'exécutent en mode utilisateur
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 24 / 49
Concepts de base Processus
Plan
1 IntroductionArchitectureDé�nitionHistoriqueTypes de systèmes d'exploitationStructure matérielle
2 Concepts de baseStructure des systèmes d'exploitationProcessusOrdonancementCommunication IPCGestion de la mémoire
3 Programmation systèmeFichiersProcessus
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 25 / 49
Concepts de base Processus
Concepts de base
Processus
Un processus symbolise un programme en cours d'exécution
Chaque processus a un espace d'adressage (un ensemble d'adressesmémoire)
L'espace d'adressage contient le code, les données et la pile duprogramme
Chaque processus est associé à un contexte qui le caractérise (espaced'adressage + état du CPU)
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 26 / 49
Concepts de base Processus
Concepts de base
Temps partagé
DC
AB
Temps
Le processeur exécute alternativement chacun des processus pendantun laps de temps court (timeslice)
Un seul processus s'exécute à un moment donné, l'exécutionsimultanée est une illusion
Pour passer d'un processus à un autre, le noyau doit sauvegarder lecontexte du processus courant et restaurer le contexte du nouveauprocessus (context switch)
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 27 / 49
Concepts de base Processus
Exécution du temps partagé
Temps partagé
Mode noyau
Mode utilisateur
Le même schéma s'applique en cas d'appel système
Sauvegarde des registres (y compris le PC) avec leurs valeursau moment de l'interruption
Restauration des registres (y compris le PC) avec leurs valeurs sauvegardées
La manipulation du PC requiert généralement une "feinte" vis-à-vis duprocesseur
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 28 / 49
Concepts de base Processus
Exécution du temps partagé
Temps partagé
Mode noyau
Mode utilisateur
Exécution duprocessus A
Le même schéma s'applique en cas d'appel système
Sauvegarde des registres (y compris le PC) avec leurs valeursau moment de l'interruption
Restauration des registres (y compris le PC) avec leurs valeurs sauvegardées
La manipulation du PC requiert généralement une "feinte" vis-à-vis duprocesseur
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 28 / 49
Concepts de base Processus
Exécution du temps partagé
Temps partagé
Mode noyau
Mode utilisateur
Interruption du timer
Exécution duprocessus A
Le même schéma s'applique en cas d'appel système
Sauvegarde des registres (y compris le PC) avec leurs valeursau moment de l'interruption
Restauration des registres (y compris le PC) avec leurs valeurs sauvegardées
La manipulation du PC requiert généralement une "feinte" vis-à-vis duprocesseur
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 28 / 49
Concepts de base Processus
Exécution du temps partagé
Temps partagé
Mode noyau
Mode utilisateur
Trap
Interruption du timer
Exécution duprocessus A
Le même schéma s'applique en cas d'appel système
Sauvegarde des registres (y compris le PC) avec leurs valeursau moment de l'interruption
Restauration des registres (y compris le PC) avec leurs valeurs sauvegardées
La manipulation du PC requiert généralement une "feinte" vis-à-vis duprocesseur
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 28 / 49
Concepts de base Processus
Exécution du temps partagé
Temps partagé
Mode noyau
Mode utilisateur
Sauvegarde ducontexte de A
Trap
Interruption du timer
Exécution duprocessus A
Le même schéma s'applique en cas d'appel système
Sauvegarde des registres (y compris le PC) avec leurs valeursau moment de l'interruption
Restauration des registres (y compris le PC) avec leurs valeurs sauvegardées
La manipulation du PC requiert généralement une "feinte" vis-à-vis duprocesseur
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 28 / 49
Concepts de base Processus
Exécution du temps partagé
Temps partagé
Mode noyau
Mode utilisateur
Choix duprocessus B
Trap
Interruption du timer
Exécution duprocessus A
Le même schéma s'applique en cas d'appel système
Sauvegarde des registres (y compris le PC) avec leurs valeursau moment de l'interruption
Restauration des registres (y compris le PC) avec leurs valeurs sauvegardées
La manipulation du PC requiert généralement une "feinte" vis-à-vis duprocesseur
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 28 / 49
Concepts de base Processus
Exécution du temps partagé
Temps partagé
Mode noyau
Mode utilisateur
Restauration ducontexte de B
Trap
Interruption du timer
Exécution duprocessus A
Le même schéma s'applique en cas d'appel système
Sauvegarde des registres (y compris le PC) avec leurs valeursau moment de l'interruption
Restauration des registres (y compris le PC) avec leurs valeurs sauvegardées
La manipulation du PC requiert généralement une "feinte" vis-à-vis duprocesseur
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 28 / 49
Concepts de base Processus
Exécution du temps partagé
Temps partagé
Mode noyau
Mode utilisateur
Trap
Interruption du timer
Exécution duprocessus A
Le même schéma s'applique en cas d'appel système
Sauvegarde des registres (y compris le PC) avec leurs valeursau moment de l'interruption
Restauration des registres (y compris le PC) avec leurs valeurs sauvegardées
La manipulation du PC requiert généralement une "feinte" vis-à-vis duprocesseur
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 28 / 49
Concepts de base Processus
Exécution du temps partagé
Temps partagé
Mode noyau
Mode utilisateur
Exécution duprocessus B
Trap
Interruption du timer
Exécution duprocessus A
Le même schéma s'applique en cas d'appel système
Sauvegarde des registres (y compris le PC) avec leurs valeursau moment de l'interruption
Restauration des registres (y compris le PC) avec leurs valeurs sauvegardées
La manipulation du PC requiert généralement une "feinte" vis-à-vis duprocesseur
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 28 / 49
Concepts de base Ordonancement
Plan
1 IntroductionArchitectureDé�nitionHistoriqueTypes de systèmes d'exploitationStructure matérielle
2 Concepts de baseStructure des systèmes d'exploitationProcessusOrdonancementCommunication IPCGestion de la mémoire
3 Programmation systèmeFichiersProcessus
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 29 / 49
Concepts de base Ordonancement
Ordonnancement
Quand ordonnancer ?
Dépend du comportement des processus (calculs ou E/S)
Dépend de la méthode (préemptif ou non)
Dépend des propriétés voulues (équité, utilisation CPU, respect desdélais, prévisibilité. . .)
Comment ordonnancer ?
First Come, First Served (non-préemptif)
Shortest Job First (non-préemptif)
Shortest Remaining Time Next (préemptif)
Round Robin
Ordonnancement avec priorité
Ordonnancement équitable
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 30 / 49
Concepts de base Communication IPC
Plan
1 IntroductionArchitectureDé�nitionHistoriqueTypes de systèmes d'exploitationStructure matérielle
2 Concepts de baseStructure des systèmes d'exploitationProcessusOrdonancementCommunication IPCGestion de la mémoire
3 Programmation systèmeFichiersProcessus
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 31 / 49
Concepts de base Communication IPC
Communication Inter-Processus
Communiquer
Plusieurs processus peuvent coopérer à la même tâche (ex : serveurweb)
Ils ont donc besoin d'accéder à des données communes
Comme le contrôle de l'exécution appartient au noyau, il peut y avoircondition de concurrence
Les processus peuvent donc spéci�er des sections critiques (avecsémaphores, mutex ou moniteurs)
Il faut toutefois faire attention aux deadlocks
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 32 / 49
Concepts de base Communication IPC
Deadlocks
Reprendre un interblocage
Préempter une ressource
Utiliser des checkpoints et des rollbacks
Supprimer un processus
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 33 / 49
Concepts de base Communication IPC
Communication Inter-Processus
Méthodes d'IPC
Utiliser de la mémoire partagée
Échanger des messages
Utiliser un tube FIFO (mono- ou bi-directionnel)
Lire et écrire dans un �chier
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 34 / 49
Concepts de base Gestion de la mémoire
Plan
1 IntroductionArchitectureDé�nitionHistoriqueTypes de systèmes d'exploitationStructure matérielle
2 Concepts de baseStructure des systèmes d'exploitationProcessusOrdonancementCommunication IPCGestion de la mémoire
3 Programmation systèmeFichiersProcessus
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 35 / 49
Concepts de base Gestion de la mémoire
Gestion de la mémoire
Espace d'adressage
L'espace d'adressage est une représentation virtuelle de la mémoiredont un processus peut disposer
On y range le code et les données du programme (généralement àpartir de la même adresse pour chaque processus)
Comme les espaces d'adressage sont remplis aux mêmes endroits pourchaque processus, mais que les données sont physiquement dans desendroits di�érents, la MMU utilise un mécanisme pour mapperl'espace physique dans l'espace virtuel.
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 36 / 49
Concepts de base Gestion de la mémoire
Concepts de base
Pagination
Pile
Données
Code80000000
00000000
Processus A
FFFFFFFF Mémoirephysique
Code
Données
Pile
Processus B
FFFFFFFF
80000000
00000000
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 37 / 49
Concepts de base Gestion de la mémoire
Concepts de base
Pagination
Pile
Données
Code80000000
00000000
Processus A
FFFFFFFF Mémoirephysique
Code
Données
Pile
Processus B
FFFFFFFF
80000000
00000000
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 37 / 49
Concepts de base Gestion de la mémoire
Concepts de base
Pagination
Pile
Données
Code80000000
00000000
Processus A
FFFFFFFF Mémoirephysique
Code
Données
Pile
Processus B
FFFFFFFF
80000000
00000000
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 37 / 49
Concepts de base Gestion de la mémoire
Concepts de base
Pagination
Pile
Données
Code80000000
00000000
Processus A
FFFFFFFF Mémoirephysique
Code
Données
Pile
Processus B
FFFFFFFF
80000000
00000000
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 37 / 49
Concepts de base Gestion de la mémoire
Concepts de base
Pagination
Pile
Données
Code80000000
00000000
Processus A
FFFFFFFF Mémoirephysique
Code
Données
Pile
Processus B
FFFFFFFF
80000000
00000000
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 37 / 49
Concepts de base Gestion de la mémoire
Concepts de base
Pagination
Pile
Données
Code80000000
00000000
Processus A
FFFFFFFF Mémoirephysique
Code
Données
Pile
Processus B
FFFFFFFF
80000000
00000000
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 37 / 49
Concepts de base Gestion de la mémoire
Concepts de base
Pagination
Pile
Données
Code80000000
00000000
Processus A
FFFFFFFF Mémoirephysique
Code
Données
Pile
Processus B
FFFFFFFF
80000000
00000000
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 37 / 49
Concepts de base Gestion de la mémoire
Concepts de base
Pagination
Pile
Données
Code80000000
00000000
Processus A
FFFFFFFF Mémoirephysique
Code
Données
Pile
Processus B
FFFFFFFF
80000000
00000000
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 37 / 49
Concepts de base Gestion de la mémoire
Concepts de base
Pagination
Pile
Données
Code80000000
00000000
Processus A
FFFFFFFF Mémoirephysique
Code
Données
Pile
Processus B
FFFFFFFF
80000000
00000000
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 37 / 49
Concepts de base Gestion de la mémoire
Concepts de base
Pagination
Pile
Données
Code80000000
00000000
Processus A
FFFFFFFF Mémoirephysique
Code
Données
Pile
Processus B
FFFFFFFF
80000000
00000000
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 37 / 49
Concepts de base Gestion de la mémoire
Concepts de base
Pagination
Pile
Données
Code80000000
00000000
Processus A
FFFFFFFF Mémoirephysique
Code
Données
Pile
Processus B
FFFFFFFF
80000000
00000000
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 37 / 49
Concepts de base Gestion de la mémoire
Concepts de base
Pagination
Pile
Données
Code80000000
00000000
Processus A
FFFFFFFF Mémoirephysique
Code
Données
Pile
Processus B
FFFFFFFF
80000000
00000000
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 37 / 49
Concepts de base Gestion de la mémoire
Concepts de base
Pagination
Pile
Données
Code80000000
00000000
Processus A
FFFFFFFF Mémoirephysique
Code
Données
Pile
Processus B
FFFFFFFF
80000000
00000000
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 37 / 49
Concepts de base Gestion de la mémoire
Concepts de base
Pagination
Pile
Données
Code80000000
00000000
Processus A
FFFFFFFF Mémoirephysique
Code
Données
Pile
Processus B
FFFFFFFF
80000000
00000000
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 37 / 49
Concepts de base Gestion de la mémoire
Concepts de base
Pagination
Pile
Données
Code80000000
00000000
Processus A
FFFFFFFF Mémoirephysique
Code
Données
Pile
Processus B
FFFFFFFF
80000000
00000000
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 37 / 49
Concepts de base Gestion de la mémoire
Concepts de base
Pagination
Pile
Données
Code80000000
00000000
Processus A
FFFFFFFF Mémoirephysique
Code
Données
Pile
Processus B
FFFFFFFF
80000000
00000000
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 37 / 49
Concepts de base Gestion de la mémoire
Concepts de base
Pagination
La mémoire physique est divisée en pages
La mémoire virtuelle est divisée en cadres de pages
En plus de l'adresse de la page, un cadre de page contient d'autreinformations importantes (accessed, dirty, present. . .)
Les machines 32-bits utilisent généralement des tables de pages
Les machines avec plus de mémoire virtuelle utilisent d'autresmécanismes (tables inverses. . .)
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 38 / 49
Concepts de base Gestion de la mémoire
Concepts de base
Pagination et processus
La pagination est un élément de base pour les va-et-vient desprocessus entre mémoire physique et mémoire de stockageSous Unix, les processus démarrent par clonage (appel système fork)
Le clone reçoit un nouvel espace d'adressage avec le code de l'originalIl reçoit aussi les données de l'original, mais avec le bit present à 0Quand le clone accède aux données, une exception est levée et la pageincriminée est dupliquée pour le clone
L'espace d'adressage d'un processus est écrasé par l'appel systèmeexec
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 39 / 49
Concepts de base Gestion de la mémoire
Concepts de base
Pagination et processus
Quand le système a besoin de libérer de la mémoire, il peut choisir destocker (sur disque) certaines pages de certains processus
Le système doit donc choisir une politique de choix des pages àswapper
Il y'a trois types de pagesLes pages non-accédées et non-modi�éesLes pages accédées (accessed) mais non modi�éesLes pages accédées et modi�ées (dirty)
Not Recently Used : choix sous-optimal mais simple et satisfaisant
Algorithme de remplacement de l'horloge
Least Recently Used : di�cile à mettre en oeuvre (compteurd'instruction ou matrice binaire) mais meilleures performances
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 40 / 49
Concepts de base Gestion de la mémoire
Concepts de base
Not Recently Used
Régulièrement, le système actualise un compteur pour chaque page endécalant un bit vers la droite et en insérent le bit accessed à gaucheLa page avec le compteur le plus petit est choisie pour un swap-out
Les compteurs ne mémorise que l'utilisation durant les n dernièresétapes
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 41 / 49
Concepts de base Gestion de la mémoire
Concepts de base
LRU
0 0 0 00000
0 0 0 0000 0
2 20 31
00 1 2 3
123
Ordre deréférencement
À chaque étape, la rangée avec la valeur binaire la plus faible indiquela page la moins récemment utilisée
Il faut une matrice de n ∗ n bits : di�cile à fabriquer dans une MMU
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 42 / 49
Concepts de base Gestion de la mémoire
Concepts de base
LRU
0
1 110000
0 0 0000
0 0 0
1 2 23
00 1 2 3
123
Ordre deréférencement
À chaque étape, la rangée avec la valeur binaire la plus faible indiquela page la moins récemment utilisée
Il faut une matrice de n ∗ n bits : di�cile à fabriquer dans une MMU
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 42 / 49
Concepts de base Gestion de la mémoire
Concepts de base
LRU
1 1100
00 1 10
00
00 0
0
0 1 3 22
00 1 2 3
123
Ordre deréférencement
À chaque étape, la rangée avec la valeur binaire la plus faible indiquela page la moins récemment utilisée
Il faut une matrice de n ∗ n bits : di�cile à fabriquer dans une MMU
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 42 / 49
Concepts de base Gestion de la mémoire
Concepts de base
LRU
2
1 1 1000
000 0
000
1 11
0 21 3
00 1 2 3
123
Ordre deréférencement
À chaque étape, la rangée avec la valeur binaire la plus faible indiquela page la moins récemment utilisée
Il faut une matrice de n ∗ n bits : di�cile à fabriquer dans une MMU
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 42 / 49
Concepts de base Gestion de la mémoire
Concepts de base
LRU
3
1 1 1 0000
1 11
1
0 0 0000
0 2 2
00 1 2 3
123
Ordre deréférencement
À chaque étape, la rangée avec la valeur binaire la plus faible indiquela page la moins récemment utilisée
Il faut une matrice de n ∗ n bits : di�cile à fabriquer dans une MMU
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 42 / 49
Concepts de base Gestion de la mémoire
Concepts de base
LRU
22 3
1 1 10
10
00
01 1
1
0
000
0000 1 2 3
123
Ordre deréférencement
À chaque étape, la rangée avec la valeur binaire la plus faible indiquela page la moins récemment utilisée
Il faut une matrice de n ∗ n bits : di�cile à fabriquer dans une MMU
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 42 / 49
Programmation système
Plan
1 IntroductionArchitectureDé�nitionHistoriqueTypes de systèmes d'exploitationStructure matérielle
2 Concepts de baseStructure des systèmes d'exploitationProcessusOrdonancementCommunication IPCGestion de la mémoire
3 Programmation systèmeFichiersProcessus
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 43 / 49
Programmation système
Programmation système
Soux Unix
bin home lib usrdev
bob tom
lscp
hdahdcsdb
data
Éxécutables, données, périphériques, pipe. . . : "Tout est �chier"
Les périphériques sont de deux types : caractère ou bloc
Les �chiers peuvent être accéder avec les appels systèmes read etwrite ou mappés en mémoire (appel système mmap)
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 44 / 49
Programmation système Fichiers
Plan
1 IntroductionArchitectureDé�nitionHistoriqueTypes de systèmes d'exploitationStructure matérielle
2 Concepts de baseStructure des systèmes d'exploitationProcessusOrdonancementCommunication IPCGestion de la mémoire
3 Programmation systèmeFichiersProcessus
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 45 / 49
Programmation système Fichiers
Programmation système
Fichiers sous Unix
À chaque �chier sont associés des permissions pourLe propriétaire du �chierLe groupe associé au �chierLe reste du monde
Les permissions sont de trois types :Lecteur (4)Écriture (2)Éxécution (1)
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 46 / 49
Programmation système Fichiers
Programmation système
File descriptors
"Tout est �chier" → "Tout est �le descriptor"
Un fd est un entier, index dans une table associée au processusLes tables ont trois entrées par défaut :
0 : Entrée standard1 : Sortie standard2 : Sortie erreur
On peut manipuler la table avec les appels système dup et dup2
On peut donc connecter les processus entre eux (comme le | du shell)
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 47 / 49
Programmation système Processus
Plan
1 IntroductionArchitectureDé�nitionHistoriqueTypes de systèmes d'exploitationStructure matérielle
2 Concepts de baseStructure des systèmes d'exploitationProcessusOrdonancementCommunication IPCGestion de la mémoire
3 Programmation systèmeFichiersProcessus
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 48 / 49
Programmation système Processus
Programmation système
Processus et signaux
Chaque processus est caractérisé par un numéro, le PID
Les processus peuvent être interrompu de façon logicielle par dessignaux
Les signaux peuvent servir à indiquer :Une erreur (SIGILL, SIGFPE, SIGSEGV, SIGPIPE)Un évenement extérieur (SIGINT, SIGKILL, SIGTERM, SIGALRM)
On envoie un signal à un processus avec l'appel système kill
On réagit à un signal, en spéci�ant la fonction à appeller, avec l'appelsystème sigaction ou signal
[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 49 / 49