Documente Academic
Documente Profesional
Documente Cultură
Pierre-Nicolas Clauss
Laboratoire Lorrain de Recherche en Informatique et ses Applications
19 mars 2008
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
1 / 49
Plan
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
2 / 49
Bibliographie
Bibliographie
Education
Le noyau Linux, Daniel P. Bovet, Marco Cesati, Edition O'Reilly Architecture Software Developer's Manual, Volume 3 : System Programming Guide, Intel
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
3 / 49
Plan
1
Introduction
Introduction Architecture Dnition Historique Types de systmes d'exploitation Structure matrielle Concepts de base Structure des systmes d'exploitation Processus Ordonancement Communication IPC Gestion de la mmoire Programmation systme Fichiers Processus
Systmes d'exploitation 19 mars 2008 4 / 49
pierre-nicolas.clauss@loria.fr (LORIA)
Plan
1
Introduction
Architecture
Introduction Architecture Dnition Historique Types de systmes d'exploitation Structure matrielle Concepts de base Structure des systmes d'exploitation Processus Ordonancement Communication IPC Gestion de la mmoire Programmation systme Fichiers Processus
Systmes d'exploitation 19 mars 2008 5 / 49
pierre-nicolas.clauss@loria.fr (LORIA)
Introduction
Architecture
Structure en couche
Applications Systme d'exploitation
Matriel
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
6 / 49
Introduction
Architecture
Structure en couche
Applications Systme d'exploitation
Matriel
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
6 / 49
Introduction
Architecture
Structure en couche
Applications Systme d'exploitation
Matriel
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
6 / 49
Plan
1
Introduction
Dnition
Introduction Architecture Dnition Historique Types de systmes d'exploitation Structure matrielle Concepts de base Structure des systmes d'exploitation Processus Ordonancement Communication IPC Gestion de la mmoire Programmation systme Fichiers Processus
Systmes d'exploitation 19 mars 2008 7 / 49
pierre-nicolas.clauss@loria.fr (LORIA)
Dnition
Introduction
Dnition
Systme d'exploitation lment logiciel qui permet la gestion des ressources matrielles pour d'autres lments logiciels. Fonction Abstraire les spcicits matrielles Grer les ressources disponibles Partager les ressources
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
8 / 49
Plan
1
Introduction
Historique
Introduction Architecture Dnition Historique Types de systmes d'exploitation Structure matrielle Concepts de base Structure des systmes d'exploitation Processus Ordonancement Communication IPC Gestion de la mmoire Programmation systme Fichiers Processus
Systmes d'exploitation 19 mars 2008 9 / 49
pierre-nicolas.clauss@loria.fr (LORIA)
Historique
Introduction
Historique
Gnration 0 1821-1836 : Premier machine numrique de Charles Babbage Premire gnration 1940-1955 : Tubes vide et Tableaux d'interrupteurs Deuxime gnration 1955-1965 : Transistors, cartes perfores et excution par lots Systme d'exploitation FMS (Fortran Monitor System) Troisime gnration 1965-1980 : Circuits intgrs et multi-programmation Systme d'exploitation OS/360
pierre-nicolas.clauss@loria.fr (LORIA) Systmes d'exploitation 19 mars 2008 10 / 49
Historique
Introduction
Historique
Multi-utilisateur Extension de la multi-programmation vers le temps partag Premier systme 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 allg 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 universits amricaine par AT&T 1977 : BSD 1 par l'universit de Berkeley
pierre-nicolas.clauss@loria.fr (LORIA) Systmes d'exploitation 19 mars 2008 11 / 49
Introduction
Historique
Unix 6
1BSD Unix 7
Unix 32V
2BSD
3BSD
2.79BSD
4.1BSD OpenBSD 2.3 System III SunOS 1.0 OpenBSD 2.0 4.1cBSD 4.4BSD-Lite System V Release 2 FreeBSD 3.0 FreeBSD 7.0 OpenBSD 4.2
Unix System 8
NetBSD 1.3
NetBSD 4.0
4.3BSD
NetBSD 1.1
Unix System 9
NetBSD 1.0
SunOS 4.1.4
SunOS 3.2
4.4BSD-Lite
FreeBSD 2.0
System V Release 4
4.3BSD Tahoe
NetBSD 0.8
FreeBSD 1.0
UnixWare 7.1.4
UnixWare 1.0
Unix System 10
386BSD 0.1
386BSD 1.0
Solaris 10
Solaris 2
4.3BSD Reno
BSD Net/2
386BSD 0.0
4.3BSD-Quasijarus0c
BSD/386 0.3.1
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
12 / 49
Historique
Introduction
Historique
Quatrime gnration Puces LSI et ordinateurs personnels CP/M (Gary Kildall, Digital Research), puis IBM PC et MS-DOS Interface graphique, fentre et souris
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
13 / 49
Plan
1
Introduction
Introduction Architecture Dnition Historique Types de systmes d'exploitation Structure matrielle Concepts de base Structure des systmes d'exploitation Processus Ordonancement Communication IPC Gestion de la mmoire Programmation systme Fichiers Processus
Systmes d'exploitation 19 mars 2008 14 / 49
pierre-nicolas.clauss@loria.fr (LORIA)
Introduction
Systmes pour mainframes Grosse machines, beaucoup de ressources Batch, transactionnel ou temps partag Systmes pour serveurs Beaucoup d'utilisateurs Beaucoup de rseau Systmes multiprocesseurs Plusieurs processeurs Gestion concurrente des ressources
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
15 / 49
Introduction
Systmes temps rel Respect de contraintes temporelles Temps rel "dur" vs Temps rel "mou" Systmes embarqus Interface conviviale Contraintes matrielles Systmes pour smart-cards
pierre-nicolas.clauss@loria.fr (LORIA) Systmes d'exploitation 19 mars 2008 16 / 49
Plan
1
Introduction
Structure matrielle
Introduction Architecture Dnition Historique Types de systmes d'exploitation Structure matrielle Concepts de base Structure des systmes d'exploitation Processus Ordonancement Communication IPC Gestion de la mmoire Programmation systme Fichiers Processus
Systmes d'exploitation 19 mars 2008 17 / 49
pierre-nicolas.clauss@loria.fr (LORIA)
Structure matrielle
Schma structurel
CPU
Introduction
Structure matrielle
Mmoire
Contrleur Vido
Contrleur Clavier
Contrleur Disque
Bus
CPU
Le "cerveau" de l'ordinateur Excute les instructions selon un cycle Fetch, Decode, Execute Fonctionne selon plusieurs niveaux de privilges
Mode noyau : pas de restrictions Mode utilisateur : pas toutes les instructions Le systme d'exploitation s'excute en mode noyau Les programmes s'excutent en mode utilisateur Les services du systme sont accessibles via des appels systmes qui basculent en mode noyau le temps d'excuter le service
Systmes d'exploitation 19 mars 2008 18 / 49
pierre-nicolas.clauss@loria.fr (LORIA)
Structure matrielle
Mmoire
Temps d'accs Capacit 1 ns Registres < 1 Ko
Introduction
Structure matrielle
2 ns
Caches
1 Mo
10 ns
Mmoire
1 Go
10 ms
Disque
1 To
Choisir o stocker les informations Mmoire principale : plusieurs programme chargs simultanment
Protection entre les programmes ? Protection entre un programme et le noyau ? Comment reloger un programme ?
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
19 / 49
Structure matrielle
Introduction
Structure matrielle
Donnes
Base
Limite
On utilise des paires base-limite pour spcier les adresses physiques du code et des donnes la compilation, le linker utilise des adresse virtuelles commenant zro l'excution, la MMU additionne la base avec l'adresse virtuelle pour obtenir l'adresse physique
Base
Base
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
20 / 49
Structure matrielle
Introduction
Structure matrielle
Priphriques d'E/S
CPU PIC Contrleur Disque
Bus
Le CPU programme le contrleur disque Le contrleur 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
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
21 / 49
Structure matrielle
Introduction
Structure matrielle
Priphriques d'E/S
CPU PIC Contrleur Disque
Bus
Le CPU programme le contrleur disque Le contrleur 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
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
21 / 49
Structure matrielle
Introduction
Structure matrielle
Priphriques d'E/S
CPU PIC Contrleur Disque
Bus
Le CPU programme le contrleur disque Le contrleur 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
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
21 / 49
Structure matrielle
Introduction
Structure matrielle
Priphriques d'E/S
CPU PIC Contrleur Disque
Bus
Le CPU programme le contrleur disque Le contrleur 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
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
21 / 49
Structure matrielle
Introduction
Structure matrielle
Priphriques d'E/S
CPU PIC Contrleur Disque
Bus
Le CPU programme le contrleur disque Le contrleur 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
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
21 / 49
Plan
1
Concepts de base
Introduction Architecture Dnition Historique Types de systmes d'exploitation Structure matrielle Concepts de base Structure des systmes d'exploitation Processus Ordonancement Communication IPC Gestion de la mmoire Programmation systme Fichiers Processus
Systmes d'exploitation 19 mars 2008 22 / 49
pierre-nicolas.clauss@loria.fr (LORIA)
Plan
1
Concepts de base
Introduction Architecture Dnition Historique Types de systmes d'exploitation Structure matrielle Concepts de base Structure des systmes d'exploitation Processus Ordonancement Communication IPC Gestion de la mmoire Programmation systme Fichiers Processus
Systmes d'exploitation 19 mars 2008 23 / 49
pierre-nicolas.clauss@loria.fr (LORIA)
Concepts de base
Les systmes monolithiques La totalit du code du noyau et des drivers constitue un seul programme Le systme produit est lourd et dicile dbugger Les systmes machines virtuelles Un petit programme, appel exonoyau, gre des machines virtuelles en mode utilisateur Les ressources sont alloues aux machines virtuelles par l'exonoyau Le modle client-serveur Un petit programme, appel micronoyau, gre les transferts de messages entre les programmes Les drivers et les applications s'excutent en mode utilisateur
pierre-nicolas.clauss@loria.fr (LORIA) Systmes d'exploitation 19 mars 2008 24 / 49
Plan
1
Concepts de base
Processus
Introduction Architecture Dnition Historique Types de systmes d'exploitation Structure matrielle Concepts de base Structure des systmes d'exploitation Processus Ordonancement Communication IPC Gestion de la mmoire Programmation systme Fichiers Processus
Systmes d'exploitation 19 mars 2008 25 / 49
pierre-nicolas.clauss@loria.fr (LORIA)
Concepts de base
Concepts de base
Processus
Processus Un processus symbolise un programme en cours d'excution Chaque processus a un espace d'adressage (un ensemble d'adresses mmoire) L'espace d'adressage contient le code, les donnes et la pile du programme Chaque processus est associ un contexte qui le caractrise (espace d'adressage + tat du CPU)
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
26 / 49
Concepts de base
Temps partag
D C B A
Concepts de base
Processus
Temps
Le processeur excute alternativement chacun des processus pendant un laps de temps court (timeslice ) Un seul processus s'excute un moment donn, l'excution simultane est une illusion Pour passer d'un processus un autre, le noyau doit sauvegarder le contexte du processus courant et restaurer le contexte du nouveau processus (context switch)
pierre-nicolas.clauss@loria.fr (LORIA) Systmes d'exploitation 19 mars 2008 27 / 49
Concepts de base
Processus
Mode utilisateur
Mode noyau
Le mme schma s'applique en cas d'appel systme Sauvegarde des registres (y compris le PC) avec leurs valeurs au moment de l'interruption Restauration des registres (y compris le PC) avec leurs valeurs sauvegardes La manipulation du PC requiert gnralement une "feinte" vis--vis du processeur
pierre-nicolas.clauss@loria.fr (LORIA) Systmes d'exploitation 19 mars 2008 28 / 49
Concepts de base
Processus
Mode noyau
Le mme schma s'applique en cas d'appel systme Sauvegarde des registres (y compris le PC) avec leurs valeurs au moment de l'interruption Restauration des registres (y compris le PC) avec leurs valeurs sauvegardes La manipulation du PC requiert gnralement une "feinte" vis--vis du processeur
pierre-nicolas.clauss@loria.fr (LORIA) Systmes d'exploitation 19 mars 2008 28 / 49
Concepts de base
Processus
Mode noyau
Le mme schma s'applique en cas d'appel systme Sauvegarde des registres (y compris le PC) avec leurs valeurs au moment de l'interruption Restauration des registres (y compris le PC) avec leurs valeurs sauvegardes La manipulation du PC requiert gnralement une "feinte" vis--vis du processeur
pierre-nicolas.clauss@loria.fr (LORIA) Systmes d'exploitation 19 mars 2008 28 / 49
Concepts de base
Processus
Trap
Mode noyau
Le mme schma s'applique en cas d'appel systme Sauvegarde des registres (y compris le PC) avec leurs valeurs au moment de l'interruption Restauration des registres (y compris le PC) avec leurs valeurs sauvegardes La manipulation du PC requiert gnralement une "feinte" vis--vis du processeur
pierre-nicolas.clauss@loria.fr (LORIA) Systmes d'exploitation 19 mars 2008 28 / 49
Concepts de base
Processus
Trap
Mode noyau
Sauvegarde du contexte de A
Le mme schma s'applique en cas d'appel systme Sauvegarde des registres (y compris le PC) avec leurs valeurs au moment de l'interruption Restauration des registres (y compris le PC) avec leurs valeurs sauvegardes La manipulation du PC requiert gnralement une "feinte" vis--vis du processeur
pierre-nicolas.clauss@loria.fr (LORIA) Systmes d'exploitation 19 mars 2008 28 / 49
Concepts de base
Processus
Trap
Mode noyau
Choix du processus B
Le mme schma s'applique en cas d'appel systme Sauvegarde des registres (y compris le PC) avec leurs valeurs au moment de l'interruption Restauration des registres (y compris le PC) avec leurs valeurs sauvegardes La manipulation du PC requiert gnralement une "feinte" vis--vis du processeur
pierre-nicolas.clauss@loria.fr (LORIA) Systmes d'exploitation 19 mars 2008 28 / 49
Concepts de base
Processus
Trap
Mode noyau
Restauration du contexte de B
Le mme schma s'applique en cas d'appel systme Sauvegarde des registres (y compris le PC) avec leurs valeurs au moment de l'interruption Restauration des registres (y compris le PC) avec leurs valeurs sauvegardes La manipulation du PC requiert gnralement une "feinte" vis--vis du processeur
pierre-nicolas.clauss@loria.fr (LORIA) Systmes d'exploitation 19 mars 2008 28 / 49
Concepts de base
Processus
Trap
Mode noyau
Le mme schma s'applique en cas d'appel systme Sauvegarde des registres (y compris le PC) avec leurs valeurs au moment de l'interruption Restauration des registres (y compris le PC) avec leurs valeurs sauvegardes La manipulation du PC requiert gnralement une "feinte" vis--vis du processeur
pierre-nicolas.clauss@loria.fr (LORIA) Systmes d'exploitation 19 mars 2008 28 / 49
Concepts de base
Processus
Excution du processus B
Trap
Mode noyau
Le mme schma s'applique en cas d'appel systme Sauvegarde des registres (y compris le PC) avec leurs valeurs au moment de l'interruption Restauration des registres (y compris le PC) avec leurs valeurs sauvegardes La manipulation du PC requiert gnralement une "feinte" vis--vis du processeur
pierre-nicolas.clauss@loria.fr (LORIA) Systmes d'exploitation 19 mars 2008 28 / 49
Plan
1
Concepts de base
Ordonancement
Introduction Architecture Dnition Historique Types de systmes d'exploitation Structure matrielle Concepts de base Structure des systmes d'exploitation Processus Ordonancement Communication IPC Gestion de la mmoire Programmation systme Fichiers Processus
Systmes d'exploitation 19 mars 2008 29 / 49
pierre-nicolas.clauss@loria.fr (LORIA)
Ordonnancement
Concepts de base
Ordonancement
Quand ordonnancer ? Dpend du comportement des processus (calculs ou E/S) Dpend de la mthode (premptif ou non) Dpend des proprits voulues (quit, utilisation CPU, respect des dlais, prvisibilit. . .) Comment ordonnancer ?
First Come, First Served (non-premptif) Shortest Job First (non-premptif) Shortest Remaining Time Next (premptif) Round Robin
Plan
1
Concepts de base
Communication IPC
Introduction Architecture Dnition Historique Types de systmes d'exploitation Structure matrielle Concepts de base Structure des systmes d'exploitation Processus Ordonancement Communication IPC Gestion de la mmoire Programmation systme Fichiers Processus
Systmes d'exploitation 19 mars 2008 31 / 49
pierre-nicolas.clauss@loria.fr (LORIA)
Communication Inter-Processus
Concepts de base
Communication IPC
Communiquer Plusieurs processus peuvent cooprer la mme tche (ex : serveur web) Ils ont donc besoin d'accder des donnes communes Comme le contrle de l'excution appartient au noyau, il peut y avoir condition de concurrence Les processus peuvent donc spcier des sections critiques (avec smaphores, mutex ou moniteurs) Il faut toutefois faire attention aux deadlocks
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
32 / 49
Deadlocks
Concepts de base
Communication IPC
Reprendre un interblocage Prempter une ressource Utiliser des checkpoints et des rollbacks Supprimer un processus
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
33 / 49
Communication Inter-Processus
Concepts de base
Communication IPC
Mthodes d'IPC Utiliser de la mmoire partage changer des messages Utiliser un tube FIFO (mono- ou bi-directionnel) Lire et crire dans un chier
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
34 / 49
Plan
1
Concepts de base
Gestion de la mmoire
Introduction Architecture Dnition Historique Types de systmes d'exploitation Structure matrielle Concepts de base Structure des systmes d'exploitation Processus Ordonancement Communication IPC Gestion de la mmoire Programmation systme Fichiers Processus
Systmes d'exploitation 19 mars 2008 35 / 49
pierre-nicolas.clauss@loria.fr (LORIA)
Gestion de la mmoire
Concepts de base
Gestion de la mmoire
Espace d'adressage L'espace d'adressage est une reprsentation virtuelle de la mmoire dont un processus peut disposer On y range le code et les donnes du programme (gnralement partir de la mme adresse pour chaque processus) Comme les espaces d'adressage sont remplis aux mmes endroits pour chaque processus, mais que les donnes sont physiquement dans des endroits dirents, la MMU utilise un mcanisme pour mapper l'espace physique dans l'espace virtuel.
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
36 / 49
Concepts de base
Pagination
Processus A FFFFFFFF Pile
Concepts de base
Gestion de la mmoire
Donnes
Donnes
Code 80000000
Code 80000000
00000000
00000000
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
37 / 49
Concepts de base
Pagination
Processus A FFFFFFFF Pile
Concepts de base
Gestion de la mmoire
Donnes
Donnes
Code 80000000
Code 80000000
00000000
00000000
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
37 / 49
Concepts de base
Pagination
Processus A FFFFFFFF Pile
Concepts de base
Gestion de la mmoire
Donnes
Donnes
Code 80000000
Code 80000000
00000000
00000000
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
37 / 49
Concepts de base
Pagination
Processus A FFFFFFFF Pile
Concepts de base
Gestion de la mmoire
Donnes
Donnes
Code 80000000
Code 80000000
00000000
00000000
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
37 / 49
Concepts de base
Pagination
Processus A FFFFFFFF Pile
Concepts de base
Gestion de la mmoire
Donnes
Donnes
Code 80000000
Code 80000000
00000000
00000000
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
37 / 49
Concepts de base
Pagination
Processus A FFFFFFFF Pile
Concepts de base
Gestion de la mmoire
Donnes
Donnes
Code 80000000
Code 80000000
00000000
00000000
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
37 / 49
Concepts de base
Pagination
Processus A FFFFFFFF Pile
Concepts de base
Gestion de la mmoire
Donnes
Donnes
Code 80000000
Code 80000000
00000000
00000000
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
37 / 49
Concepts de base
Pagination
Processus A FFFFFFFF Pile
Concepts de base
Gestion de la mmoire
Donnes
Donnes
Code 80000000
Code 80000000
00000000
00000000
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
37 / 49
Concepts de base
Pagination
Processus A FFFFFFFF Pile
Concepts de base
Gestion de la mmoire
Donnes
Donnes
Code 80000000
Code 80000000
00000000
00000000
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
37 / 49
Concepts de base
Pagination
Processus A FFFFFFFF Pile
Concepts de base
Gestion de la mmoire
Donnes
Donnes
Code 80000000
Code 80000000
00000000
00000000
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
37 / 49
Concepts de base
Pagination
Processus A FFFFFFFF Pile
Concepts de base
Gestion de la mmoire
Donnes
Donnes
Code 80000000
Code 80000000
00000000
00000000
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
37 / 49
Concepts de base
Pagination
Processus A FFFFFFFF Pile
Concepts de base
Gestion de la mmoire
Donnes
Donnes
Code 80000000
Code 80000000
00000000
00000000
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
37 / 49
Concepts de base
Pagination
Processus A FFFFFFFF Pile
Concepts de base
Gestion de la mmoire
Donnes
Donnes
Code 80000000
Code 80000000
00000000
00000000
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
37 / 49
Concepts de base
Pagination
Processus A FFFFFFFF Pile
Concepts de base
Gestion de la mmoire
Donnes
Donnes
Code 80000000
Code 80000000
00000000
00000000
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
37 / 49
Concepts de base
Pagination
Processus A FFFFFFFF Pile
Concepts de base
Gestion de la mmoire
Donnes
Donnes
Code 80000000
Code 80000000
00000000
00000000
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
37 / 49
Concepts de base
Pagination
Processus A FFFFFFFF Pile
Concepts de base
Gestion de la mmoire
Donnes
Donnes
Code 80000000
Code 80000000
00000000
00000000
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
37 / 49
Concepts de base
Concepts de base
Gestion de la mmoire
Pagination La mmoire physique est divise en pages La mmoire virtuelle est divise en cadres de pages En plus de l'adresse de la page, un cadre de page contient d'autre informations importantes (accessed, dirty, present . . .) Les machines 32-bits utilisent gnralement des tables de pages Les machines avec plus de mmoire virtuelle utilisent d'autres mcanismes (tables inverses. . .)
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
38 / 49
Concepts de base
Concepts de base
Gestion de la mmoire
Pagination et processus La pagination est un lment de base pour les va-et-vient des processus entre mmoire physique et mmoire de stockage Sous Unix, les processus dmarrent par clonage (appel systme fork )
Le clone reoit un nouvel espace d'adressage avec le code de l'original Il reoit aussi les donnes de l'original, mais avec le bit present 0 Quand le clone accde aux donnes, une exception est leve et la page incrimine est duplique pour le clone
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
39 / 49
Concepts de base
Concepts de base
Gestion de la mmoire
Pagination et processus Quand le systme a besoin de librer de la mmoire, il peut choisir de stocker (sur disque) certaines pages de certains processus Le systme doit donc choisir une politique de choix des pages
swapper
Les pages non-accdes et non-modies Les pages accdes (accessed ) mais non modies Les pages accdes et modies (dirty )
Algorithme de remplacement de l'horloge Least Recently Used : dicile mettre en oeuvre (compteur d'instruction ou matrice binaire) mais meilleures performances
pierre-nicolas.clauss@loria.fr (LORIA) Systmes d'exploitation 19 mars 2008 40 / 49
Concepts de base
Concepts de base
Gestion de la mmoire
Rgulirement, le systme actualise un compteur pour chaque page en dcalant un bit vers la droite et en insrent le bit accessed gauche La page avec le compteur le plus petit est choisie pour un swap-out
Les compteurs ne mmorise que l'utilisation durant les n dernires tapes
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
41 / 49
Concepts de base
Concepts de base
Gestion de la mmoire
LRU
0 0 1 2 3 Ordre de rfrencement 0 1 2 3 2 0 0 0 0 1 0 0 0 0 2 0 0 0 0 3 0 0 0 0
chaque tape, la range avec la valeur binaire la plus faible indique la page la moins rcemment utilise Il faut une matrice de n n bits : dicile fabriquer dans une MMU
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
42 / 49
Concepts de base
Concepts de base
Gestion de la mmoire
LRU
0 0 1 2 3 Ordre de rfrencement 0 1 2 3 2 0 0 0 0 1 1 0 0 0 2 1 0 0 0 3 1 0 0 0
chaque tape, la range avec la valeur binaire la plus faible indique la page la moins rcemment utilise Il faut une matrice de n n bits : dicile fabriquer dans une MMU
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
42 / 49
Concepts de base
Concepts de base
Gestion de la mmoire
LRU
0 0 1 2 3 Ordre de rfrencement 0 1 2 3 2 0 1 0 0 1 0 0 0 0 2 1 1 0 0 3 1 1 0 0
chaque tape, la range avec la valeur binaire la plus faible indique la page la moins rcemment utilise Il faut une matrice de n n bits : dicile fabriquer dans une MMU
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
42 / 49
Concepts de base
Concepts de base
Gestion de la mmoire
LRU
0 0 1 2 3 Ordre de rfrencement 0 1 2 3 2 0 1 1 0 1 0 0 1 0 2 0 0 0 0 3 1 1 1 0
chaque tape, la range avec la valeur binaire la plus faible indique la page la moins rcemment utilise Il faut une matrice de n n bits : dicile fabriquer dans une MMU
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
42 / 49
Concepts de base
Concepts de base
Gestion de la mmoire
LRU
0 0 1 2 3 Ordre de rfrencement 0 1 2 3 2 0 1 1 1 1 0 0 1 1 2 0 0 0 1 3 0 0 0 0
chaque tape, la range avec la valeur binaire la plus faible indique la page la moins rcemment utilise Il faut une matrice de n n bits : dicile fabriquer dans une MMU
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
42 / 49
Concepts de base
Concepts de base
Gestion de la mmoire
LRU
0 0 1 2 3 Ordre de rfrencement 0 1 2 3 2 0 1 1 1 1 0 0 1 1 2 0 0 0 0 3 0 0 1 0
chaque tape, la range avec la valeur binaire la plus faible indique la page la moins rcemment utilise Il faut une matrice de n n bits : dicile fabriquer dans une MMU
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
42 / 49
Plan
1
Programmation systme
Introduction Architecture Dnition Historique Types de systmes d'exploitation Structure matrielle Concepts de base Structure des systmes d'exploitation Processus Ordonancement Communication IPC Gestion de la mmoire Programmation systme Fichiers Processus
Systmes d'exploitation 19 mars 2008 43 / 49
pierre-nicolas.clauss@loria.fr (LORIA)
Programmation systme
Soux Unix
Programmation systme
bin ls cp
home
lib
usr
bob
tom data
xcutables, donnes, priphriques, pipe. . . : "Tout est chier" Les priphriques sont de deux types : caractre ou bloc Les chiers peuvent tre accder avec les appels systmes read et write ou mapps en mmoire (appel systme mmap )
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
44 / 49
Plan
1
Programmation systme
Fichiers
Introduction Architecture Dnition Historique Types de systmes d'exploitation Structure matrielle Concepts de base Structure des systmes d'exploitation Processus Ordonancement Communication IPC Gestion de la mmoire Programmation systme Fichiers Processus
Systmes d'exploitation 19 mars 2008 45 / 49
pierre-nicolas.clauss@loria.fr (LORIA)
Programmation systme
Programmation systme
Fichiers
Fichiers sous Unix chaque chier sont associs des permissions pour
Le propritaire du chier Le groupe associ au chier Le reste du monde Lecteur (4) criture (2) xcution (1)
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
46 / 49
Programmation systme
Programmation systme
Fichiers
File descriptors
"Tout est chier" "Tout est le descriptor " Un fd est un entier, index dans une table associe au processus Les tables ont trois entres par dfaut :
0 : Entre standard 1 : Sortie standard 2 : Sortie erreur
On peut manipuler la table avec les appels systme dup et dup2 On peut donc connecter les processus entre eux (comme le | du shell)
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
47 / 49
Plan
1
Programmation systme
Processus
Introduction Architecture Dnition Historique Types de systmes d'exploitation Structure matrielle Concepts de base Structure des systmes d'exploitation Processus Ordonancement Communication IPC Gestion de la mmoire Programmation systme Fichiers Processus
Systmes d'exploitation 19 mars 2008 48 / 49
pierre-nicolas.clauss@loria.fr (LORIA)
Programmation systme
Programmation systme
Processus
Processus et signaux Chaque processus est caractris par un numro, le PID Les processus peuvent tre interrompu de faon logicielle par des signaux Les signaux peuvent servir indiquer :
Une erreur (SIGILL, SIGFPE, SIGSEGV, SIGPIPE) Un venement extrieur (SIGINT, SIGKILL, SIGTERM, SIGALRM)
On envoie un signal un processus avec l'appel systme kill On ragit un signal, en spciant la fonction appeller, avec l'appel systme sigaction ou signal
pierre-nicolas.clauss@loria.fr (LORIA)
Systmes d'exploitation
19 mars 2008
49 / 49