Vous êtes sur la page 1sur 83

Systmes d'exploitation

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

Introduction Concepts de base Programmation systme

pierre-nicolas.clauss@loria.fr (LORIA)

Systmes d'exploitation

19 mars 2008

2 / 49

Bibliographie

Bibliographie

Systmes d'exploitation, Andrew Tanenbaum, Edition Pearson

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)

Architecture d'un ordinateur

Introduction

Architecture

Structure en couche
Applications Systme d'exploitation

Matriel

Couches fonctionnelles d'un ordinateur Interface systme/matriel Interface systme/applications

pierre-nicolas.clauss@loria.fr (LORIA)

Systmes d'exploitation

19 mars 2008

6 / 49

Architecture d'un ordinateur

Introduction

Architecture

Structure en couche
Applications Systme d'exploitation

Matriel

Couches fonctionnelles d'un ordinateur Interface systme/matriel Interface systme/applications

pierre-nicolas.clauss@loria.fr (LORIA)

Systmes d'exploitation

19 mars 2008

6 / 49

Architecture d'un ordinateur

Introduction

Architecture

Structure en couche
Applications Systme d'exploitation

Matriel

Couches fonctionnelles d'un ordinateur Interface systme/matriel Interface systme/applications

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

Les branches UNIX (1969-2008)


UNICS Unix 1 Unix 2 Unix 3 Unix 4 PWB/Unix Unix 5

Introduction

Historique

Unix 6

1BSD Unix 7

Unix 32V

2BSD

3BSD

2.79BSD

2.11BSD Patch 335

2.11BSD Patch 431

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

Types de systmes d'exploitation

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)

Types de systmes d'exploitation

Introduction

Types de systmes d'exploitation

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

Types de systmes d'exploitation


Systmes personnels Interface conviviale Utilisation "basique"

Introduction

Types de systmes d'exploitation

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

Protection en mmoire par segmentation


Processus 1 Processus 2 Limite

Donnes

Base

Limite

Donnes Base Limite Limite Code

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

Structure des systmes d'exploitation

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)

Structure des systmes d'exploitation

Concepts de base

Structure des systmes d'exploitation

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

Excution du temps partag


Temps partag

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

Excution du temps partag


Temps partag
Excution du Mode utilisateur processus A

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

Excution du temps partag


Temps partag
Interruption du timer Excution du Mode utilisateur processus A

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

Excution du temps partag


Temps partag
Interruption du timer Excution du Mode utilisateur processus A

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

Excution du temps partag


Temps partag
Interruption du timer Excution du Mode utilisateur processus A

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

Excution du temps partag


Temps partag
Interruption du timer Excution du Mode utilisateur processus A

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

Excution du temps partag


Temps partag
Interruption du timer Excution du Mode utilisateur processus A

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

Excution du temps partag


Temps partag
Interruption du timer Excution du Mode utilisateur processus A

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

Excution du temps partag


Temps partag
Interruption du timer Excution du Mode utilisateur processus A

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

Ordonnancement avec priorit Ordonnancement quitable


pierre-nicolas.clauss@loria.fr (LORIA) Systmes d'exploitation 19 mars 2008 30 / 49

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

Processus B Mmoire physique Pile FFFFFFFF

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

Processus B Mmoire physique Pile FFFFFFFF

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

Processus B Mmoire physique Pile FFFFFFFF

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

Processus B Mmoire physique Pile FFFFFFFF

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

Processus B Mmoire physique Pile FFFFFFFF

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

Processus B Mmoire physique Pile FFFFFFFF

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

Processus B Mmoire physique Pile FFFFFFFF

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

Processus B Mmoire physique Pile FFFFFFFF

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

Processus B Mmoire physique Pile FFFFFFFF

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

Processus B Mmoire physique Pile FFFFFFFF

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

Processus B Mmoire physique Pile FFFFFFFF

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

Processus B Mmoire physique Pile FFFFFFFF

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

Processus B Mmoire physique Pile FFFFFFFF

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

Processus B Mmoire physique Pile FFFFFFFF

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

Processus B Mmoire physique Pile FFFFFFFF

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

Processus B Mmoire physique Pile FFFFFFFF

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

L'espace d'adressage d'un processus est cras par l'appel systme


exec

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

Il y'a trois types de pages

Les pages non-accdes et non-modies Les pages accdes (accessed ) mais non modies Les pages accdes et modies (dirty )

Not Recently Used : choix sous-optimal mais simple et satisfaisant

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

Not Recently Used

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

dev hda hdc sdb

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)

Les permissions sont de trois types :

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