cours systeme

83

Upload: bacary-sene

Post on 24-Apr-2015

135 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Cours Systeme

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

Page 2: Cours Systeme

Plan

1 Introduction

2 Concepts de base

3 Programmation système

[email protected] (LORIA) Systèmes d'exploitation 19 mars 2008 2 / 49

Page 3: Cours Systeme

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

Page 4: Cours Systeme

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

Page 5: Cours Systeme

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

Page 6: Cours Systeme

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

Page 7: Cours Systeme

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

Page 8: Cours Systeme

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

Page 9: Cours Systeme

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

Page 10: Cours Systeme

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

Page 11: Cours Systeme

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

Page 12: Cours Systeme

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

Page 13: Cours Systeme

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

Page 14: Cours Systeme

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

Page 15: Cours Systeme

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

Page 16: Cours Systeme

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

Page 17: Cours Systeme

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

Page 18: Cours Systeme

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

Page 19: Cours Systeme

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

Page 20: Cours Systeme

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

Page 21: Cours Systeme

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

Page 22: Cours Systeme

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

Page 23: Cours Systeme

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

Page 24: Cours Systeme

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

Page 25: Cours Systeme

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

Page 26: Cours Systeme

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

Page 27: Cours Systeme

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

Page 28: Cours Systeme

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

Page 29: Cours Systeme

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

Page 30: Cours Systeme

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

Page 31: Cours Systeme

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

Page 32: Cours Systeme

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

Page 33: Cours Systeme

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

Page 34: Cours Systeme

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

Page 35: Cours Systeme

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

Page 36: Cours Systeme

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

Page 37: Cours Systeme

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

Page 38: Cours Systeme

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

Page 39: Cours Systeme

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

Page 40: Cours Systeme

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

Page 41: Cours Systeme

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

Page 42: Cours Systeme

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

Page 43: Cours Systeme

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

Page 44: Cours Systeme

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

Page 45: Cours Systeme

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

Page 46: Cours Systeme

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

Page 47: Cours Systeme

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

Page 48: Cours Systeme

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

Page 49: Cours Systeme

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

Page 50: Cours Systeme

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

Page 51: Cours Systeme

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

Page 52: Cours Systeme

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

Page 53: Cours Systeme

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

Page 54: Cours Systeme

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

Page 55: Cours Systeme

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

Page 56: Cours Systeme

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

Page 57: Cours Systeme

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

Page 58: Cours Systeme

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

Page 59: Cours Systeme

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

Page 60: Cours Systeme

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

Page 61: Cours Systeme

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

Page 62: Cours Systeme

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

Page 63: Cours Systeme

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

Page 64: Cours Systeme

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

Page 65: Cours Systeme

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

Page 66: Cours Systeme

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

Page 67: Cours Systeme

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

Page 68: Cours Systeme

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

Page 69: Cours Systeme

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

Page 70: Cours Systeme

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

Page 71: Cours Systeme

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

Page 72: Cours Systeme

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

Page 73: Cours Systeme

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

Page 74: Cours Systeme

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

Page 75: Cours Systeme

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

Page 76: Cours Systeme

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

Page 77: Cours Systeme

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

Page 78: Cours Systeme

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

Page 79: Cours Systeme

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

Page 80: Cours Systeme

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

Page 81: Cours Systeme

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

Page 82: Cours Systeme

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

Page 83: Cours Systeme

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