cours systeme

Post on 24-Apr-2015

135 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Systèmes d'exploitation

Pierre-Nicolas Clauss

Laboratoire Lorrain de Recherche en Informatique et ses Applications

19 mars 2008

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 1 / 49

Plan

1 Introduction

2 Concepts de base

3 Programmation système

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 2 / 49

Bibliographie

Bibliographie

Systèmes d'exploitation, Andrew Tanenbaum, Edition PearsonEducation

Le noyau Linux, Daniel P. Bovet, Marco Cesati, Edition O'Reilly

Architecture Software Developer's Manual, Volume 3 : System

Programming Guide, Intel

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 3 / 49

Introduction

Plan

1 IntroductionArchitectureDé�nitionHistoriqueTypes de systèmes d'exploitationStructure matérielle

2 Concepts de baseStructure des systèmes d'exploitationProcessusOrdonancementCommunication IPCGestion de la mémoire

3 Programmation systèmeFichiersProcessus

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 4 / 49

Introduction Architecture

Plan

1 IntroductionArchitectureDé�nitionHistoriqueTypes de systèmes d'exploitationStructure matérielle

2 Concepts de baseStructure des systèmes d'exploitationProcessusOrdonancementCommunication IPCGestion de la mémoire

3 Programmation systèmeFichiersProcessus

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 5 / 49

Introduction Architecture

Architecture d'un ordinateur

Structure en couche

Applications

Système d'exploitation

Matériel

Couches fonctionnelles d'un ordinateur

Interface système/matériel

Interface système/applications

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 6 / 49

Introduction Architecture

Architecture d'un ordinateur

Structure en couche

Applications

Système d'exploitation

Matériel

Couches fonctionnelles d'un ordinateur

Interface système/matériel

Interface système/applications

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 6 / 49

Introduction Architecture

Architecture d'un ordinateur

Structure en couche

Applications

Système d'exploitation

Matériel

Couches fonctionnelles d'un ordinateur

Interface système/matériel

Interface système/applications

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 6 / 49

Introduction Dé�nition

Plan

1 IntroductionArchitectureDé�nitionHistoriqueTypes de systèmes d'exploitationStructure matérielle

2 Concepts de baseStructure des systèmes d'exploitationProcessusOrdonancementCommunication IPCGestion de la mémoire

3 Programmation systèmeFichiersProcessus

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 7 / 49

Introduction Dé�nition

Dé�nition

Système d'exploitation

Élément logiciel qui permet la gestion des ressources matérielles pourd'autres éléments logiciels.

Fonction

Abstraire les spéci�cités matérielles

Gérer les ressources disponibles

Partager les ressources

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 8 / 49

Introduction Historique

Plan

1 IntroductionArchitectureDé�nitionHistoriqueTypes de systèmes d'exploitationStructure matérielle

2 Concepts de baseStructure des systèmes d'exploitationProcessusOrdonancementCommunication IPCGestion de la mémoire

3 Programmation systèmeFichiersProcessus

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 9 / 49

Introduction Historique

Historique

Génération 0

1821-1836 : Premier machine numérique de Charles Babbage

Première génération

1940-1955 : Tubes à vide et Tableaux d'interrupteurs

Deuxième génération

1955-1965 : Transistors, cartes perforées et exécution par lots

Système d'exploitation FMS (Fortran Monitor System)

Troisième génération

1965-1980 : Circuits intégrés et multi-programmation

Système d'exploitation OS/360

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 10 / 49

Introduction Historique

Historique

Multi-utilisateur

Extension de la multi-programmation vers le temps partagé

Premier système à temps partagé CTSS (MIT)

MULTICS (MIT - Bell Labs - General Electric)

Mini-ordinateurs

1961 : PDP-1 au PDP-11 (DEC) avec 4 K-mots de 18 bits

1969 : MULTICS allégé pour PDP-7 (Ken Thompson, Bell Labs) :UNICS

1971-1977 : UNIX sur PDP-11 (Ken Thompson, Dennis Ritchie et al.)en C

1974 : Distribution d'UNIX aux universités américaine par AT&T

1977 : BSD 1 par l'université de Berkeley

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 11 / 49

Introduction Historique

Les branches UNIX (1969-2008)

UNICS Unix 1 Unix 2 Unix 3 Unix 4

PWB/Unix Unix 5

Unix 6

Unix 7

Unix 32V

System III

System V

1BSD

2BSD

3BSD

4.1BSD

SunOS 1.0

4.1cBSD

Unix System 8

4.3BSD

Unix System 9

SunOS 3.2

System V Release 4

UnixWare 1.0

Solaris 2

UnixWare 7.1.4

Solaris 10 4.3BSD Reno BSD Net/2

BSD/386 0.3.1

386BSD 0.0

386BSD 0.1

NetBSD 0.8

386BSD 1.0

SunOS 4.1.4 4.4BSD-Lite

FreeBSD 1.0

NetBSD 1.0

FreeBSD 2.0

NetBSD 1.1

4.4BSD-LiteRelease 2 FreeBSD 3.0

NetBSD 1.3

OpenBSD 2.0

NetBSD 4.0

FreeBSD 7.0

OpenBSD 2.3 OpenBSD 4.2

2.79BSD 2.11BSD Patch 335

Unix System 10

4.3BSD-Quasijarus0c

4.3BSD Tahoe

2.11BSD Patch 431

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 12 / 49

Introduction Historique

Historique

Quatrième génération

Puces LSI et ordinateurs personnels

CP/M (Gary Kildall, Digital Research), puis IBM PC et MS-DOS

Interface graphique, fenêtre et souris

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 13 / 49

Introduction Types de systèmes d'exploitation

Plan

1 IntroductionArchitectureDé�nitionHistoriqueTypes de systèmes d'exploitationStructure matérielle

2 Concepts de baseStructure des systèmes d'exploitationProcessusOrdonancementCommunication IPCGestion de la mémoire

3 Programmation systèmeFichiersProcessus

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 14 / 49

Introduction Types de systèmes d'exploitation

Types de systèmes d'exploitation

Systèmes pour mainframes

Grosse machines, beaucoup de ressources

Batch, transactionnel ou temps partagé

Systèmes pour serveurs

Beaucoup d'utilisateurs

Beaucoup de réseau

Systèmes multiprocesseurs

Plusieurs processeurs

Gestion concurrente des ressources

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 15 / 49

Introduction Types de systèmes d'exploitation

Types de systèmes d'exploitation

Systèmes personnels

Interface conviviale

Utilisation "basique"

Systèmes temps réel

Respect de contraintes temporelles

Temps réel "dur" vs Temps réel "mou"

Systèmes embarqués

Interface conviviale

Contraintes matérielles

Systèmes pour smart-cards

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 16 / 49

Introduction Structure matérielle

Plan

1 IntroductionArchitectureDé�nitionHistoriqueTypes de systèmes d'exploitationStructure matérielle

2 Concepts de baseStructure des systèmes d'exploitationProcessusOrdonancementCommunication IPCGestion de la mémoire

3 Programmation systèmeFichiersProcessus

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 17 / 49

Introduction Structure matérielle

Structure matérielle

Schéma structurel

ContrôleurVidéo

CPU Mémoire ContrôleurClavier

ContrôleurDisque

Bus

CPU

Le "cerveau" de l'ordinateur

Exécute les instructions selon un cycle Fetch, Decode, Execute

Fonctionne selon plusieurs niveaux de privilègesMode noyau : pas de restrictionsMode utilisateur : pas toutes les instructionsLe système d'exploitation s'exécute en mode noyauLes programmes s'exécutent en mode utilisateurLes services du système sont accessibles via des appels systèmes quibasculent en mode noyau le temps d'exécuter le service

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 18 / 49

Introduction Structure matérielle

Structure matérielle

Mémoire

Registres

Caches

Disque

Mémoire

CapacitéTemps d'accès

1 ns

2 ns

10 ns

10 ms

< 1 Ko

1 Mo

1 Go

1 To

Choisir où stocker les informationsMémoire principale : plusieurs programme chargés simultanément

Protection entre les programmes ?Protection entre un programme et le noyau ?Comment reloger un programme ?

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 19 / 49

Introduction Structure matérielle

Structure matérielle

Protection en mémoire par segmentation

Code

Données

Données

Base

Limite

Base

Limite

Limite

Base

Base

Limite

Processus 1 Processus 2

On utilise des paires base-limite pour spéci�erles adresses physiques du code et des données

À la compilation, le linker utilise desadresse virtuelles commençant à zéro

À l'exécution, la MMU additionne la base avecl'adresse virtuelle pour obtenir l'adressephysique

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 20 / 49

Introduction Structure matérielle

Structure matérielle

Périphériques d'E/S

CPU PIC ContrôleurDisque

Bus

Le CPU programme le contrôleur disque

Le contrôleur indique au PIC qu'il a �ni

Le PIC interrompt le CPU, qui passe en mode noyau

Le PIC communique au CPU la raison de l'interruption

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 21 / 49

Introduction Structure matérielle

Structure matérielle

Périphériques d'E/S

CPU PIC ContrôleurDisque

Bus

Le CPU programme le contrôleur disque

Le contrôleur indique au PIC qu'il a �ni

Le PIC interrompt le CPU, qui passe en mode noyau

Le PIC communique au CPU la raison de l'interruption

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 21 / 49

Introduction Structure matérielle

Structure matérielle

Périphériques d'E/S

CPU PIC ContrôleurDisque

Bus

Le CPU programme le contrôleur disque

Le contrôleur indique au PIC qu'il a �ni

Le PIC interrompt le CPU, qui passe en mode noyau

Le PIC communique au CPU la raison de l'interruption

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 21 / 49

Introduction Structure matérielle

Structure matérielle

Périphériques d'E/S

CPU PIC ContrôleurDisque

Bus

Le CPU programme le contrôleur disque

Le contrôleur indique au PIC qu'il a �ni

Le PIC interrompt le CPU, qui passe en mode noyau

Le PIC communique au CPU la raison de l'interruption

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 21 / 49

Introduction Structure matérielle

Structure matérielle

Périphériques d'E/S

CPU PIC ContrôleurDisque

Bus

Le CPU programme le contrôleur disque

Le contrôleur indique au PIC qu'il a �ni

Le PIC interrompt le CPU, qui passe en mode noyau

Le PIC communique au CPU la raison de l'interruption

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 21 / 49

Concepts de base

Plan

1 IntroductionArchitectureDé�nitionHistoriqueTypes de systèmes d'exploitationStructure matérielle

2 Concepts de baseStructure des systèmes d'exploitationProcessusOrdonancementCommunication IPCGestion de la mémoire

3 Programmation systèmeFichiersProcessus

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 22 / 49

Concepts de base Structure des systèmes d'exploitation

Plan

1 IntroductionArchitectureDé�nitionHistoriqueTypes de systèmes d'exploitationStructure matérielle

2 Concepts de baseStructure des systèmes d'exploitationProcessusOrdonancementCommunication IPCGestion de la mémoire

3 Programmation systèmeFichiersProcessus

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 23 / 49

Concepts de base Structure des systèmes d'exploitation

Structure des systèmes d'exploitation

Les systèmes monolithiques

La totalité du code du noyau et des drivers constitue un seulprogramme

Le système produit est lourd et di�cile à débugger

Les systèmes à machines virtuelles

Un petit programme, appelé exonoyau, gère des machines virtuelles enmode utilisateur

Les ressources sont allouées aux machines virtuelles par l'exonoyau

Le modèle client-serveur

Un petit programme, appelé micronoyau, gère les transferts demessages entre les programmes

Les drivers et les applications s'exécutent en mode utilisateur

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 24 / 49

Concepts de base Processus

Plan

1 IntroductionArchitectureDé�nitionHistoriqueTypes de systèmes d'exploitationStructure matérielle

2 Concepts de baseStructure des systèmes d'exploitationProcessusOrdonancementCommunication IPCGestion de la mémoire

3 Programmation systèmeFichiersProcessus

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 25 / 49

Concepts de base Processus

Concepts de base

Processus

Un processus symbolise un programme en cours d'exécution

Chaque processus a un espace d'adressage (un ensemble d'adressesmémoire)

L'espace d'adressage contient le code, les données et la pile duprogramme

Chaque processus est associé à un contexte qui le caractérise (espaced'adressage + état du CPU)

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 26 / 49

Concepts de base Processus

Concepts de base

Temps partagé

DC

AB

Temps

Le processeur exécute alternativement chacun des processus pendantun laps de temps court (timeslice)

Un seul processus s'exécute à un moment donné, l'exécutionsimultanée est une illusion

Pour passer d'un processus à un autre, le noyau doit sauvegarder lecontexte du processus courant et restaurer le contexte du nouveauprocessus (context switch)

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 27 / 49

Concepts de base Processus

Exécution du temps partagé

Temps partagé

Mode noyau

Mode utilisateur

Le même schéma s'applique en cas d'appel système

Sauvegarde des registres (y compris le PC) avec leurs valeursau moment de l'interruption

Restauration des registres (y compris le PC) avec leurs valeurs sauvegardées

La manipulation du PC requiert généralement une "feinte" vis-à-vis duprocesseur

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 28 / 49

Concepts de base Processus

Exécution du temps partagé

Temps partagé

Mode noyau

Mode utilisateur

Exécution duprocessus A

Le même schéma s'applique en cas d'appel système

Sauvegarde des registres (y compris le PC) avec leurs valeursau moment de l'interruption

Restauration des registres (y compris le PC) avec leurs valeurs sauvegardées

La manipulation du PC requiert généralement une "feinte" vis-à-vis duprocesseur

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 28 / 49

Concepts de base Processus

Exécution du temps partagé

Temps partagé

Mode noyau

Mode utilisateur

Interruption du timer

Exécution duprocessus A

Le même schéma s'applique en cas d'appel système

Sauvegarde des registres (y compris le PC) avec leurs valeursau moment de l'interruption

Restauration des registres (y compris le PC) avec leurs valeurs sauvegardées

La manipulation du PC requiert généralement une "feinte" vis-à-vis duprocesseur

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 28 / 49

Concepts de base Processus

Exécution du temps partagé

Temps partagé

Mode noyau

Mode utilisateur

Trap

Interruption du timer

Exécution duprocessus A

Le même schéma s'applique en cas d'appel système

Sauvegarde des registres (y compris le PC) avec leurs valeursau moment de l'interruption

Restauration des registres (y compris le PC) avec leurs valeurs sauvegardées

La manipulation du PC requiert généralement une "feinte" vis-à-vis duprocesseur

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 28 / 49

Concepts de base Processus

Exécution du temps partagé

Temps partagé

Mode noyau

Mode utilisateur

Sauvegarde ducontexte de A

Trap

Interruption du timer

Exécution duprocessus A

Le même schéma s'applique en cas d'appel système

Sauvegarde des registres (y compris le PC) avec leurs valeursau moment de l'interruption

Restauration des registres (y compris le PC) avec leurs valeurs sauvegardées

La manipulation du PC requiert généralement une "feinte" vis-à-vis duprocesseur

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 28 / 49

Concepts de base Processus

Exécution du temps partagé

Temps partagé

Mode noyau

Mode utilisateur

Choix duprocessus B

Trap

Interruption du timer

Exécution duprocessus A

Le même schéma s'applique en cas d'appel système

Sauvegarde des registres (y compris le PC) avec leurs valeursau moment de l'interruption

Restauration des registres (y compris le PC) avec leurs valeurs sauvegardées

La manipulation du PC requiert généralement une "feinte" vis-à-vis duprocesseur

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 28 / 49

Concepts de base Processus

Exécution du temps partagé

Temps partagé

Mode noyau

Mode utilisateur

Restauration ducontexte de B

Trap

Interruption du timer

Exécution duprocessus A

Le même schéma s'applique en cas d'appel système

Sauvegarde des registres (y compris le PC) avec leurs valeursau moment de l'interruption

Restauration des registres (y compris le PC) avec leurs valeurs sauvegardées

La manipulation du PC requiert généralement une "feinte" vis-à-vis duprocesseur

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 28 / 49

Concepts de base Processus

Exécution du temps partagé

Temps partagé

Mode noyau

Mode utilisateur

Trap

Interruption du timer

Exécution duprocessus A

Le même schéma s'applique en cas d'appel système

Sauvegarde des registres (y compris le PC) avec leurs valeursau moment de l'interruption

Restauration des registres (y compris le PC) avec leurs valeurs sauvegardées

La manipulation du PC requiert généralement une "feinte" vis-à-vis duprocesseur

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 28 / 49

Concepts de base Processus

Exécution du temps partagé

Temps partagé

Mode noyau

Mode utilisateur

Exécution duprocessus B

Trap

Interruption du timer

Exécution duprocessus A

Le même schéma s'applique en cas d'appel système

Sauvegarde des registres (y compris le PC) avec leurs valeursau moment de l'interruption

Restauration des registres (y compris le PC) avec leurs valeurs sauvegardées

La manipulation du PC requiert généralement une "feinte" vis-à-vis duprocesseur

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 28 / 49

Concepts de base Ordonancement

Plan

1 IntroductionArchitectureDé�nitionHistoriqueTypes de systèmes d'exploitationStructure matérielle

2 Concepts de baseStructure des systèmes d'exploitationProcessusOrdonancementCommunication IPCGestion de la mémoire

3 Programmation systèmeFichiersProcessus

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 29 / 49

Concepts de base Ordonancement

Ordonnancement

Quand ordonnancer ?

Dépend du comportement des processus (calculs ou E/S)

Dépend de la méthode (préemptif ou non)

Dépend des propriétés voulues (équité, utilisation CPU, respect desdélais, prévisibilité. . .)

Comment ordonnancer ?

First Come, First Served (non-préemptif)

Shortest Job First (non-préemptif)

Shortest Remaining Time Next (préemptif)

Round Robin

Ordonnancement avec priorité

Ordonnancement équitable

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

Concepts de base Communication IPC

Plan

1 IntroductionArchitectureDé�nitionHistoriqueTypes de systèmes d'exploitationStructure matérielle

2 Concepts de baseStructure des systèmes d'exploitationProcessusOrdonancementCommunication IPCGestion de la mémoire

3 Programmation systèmeFichiersProcessus

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 31 / 49

Concepts de base Communication IPC

Communication Inter-Processus

Communiquer

Plusieurs processus peuvent coopérer à la même tâche (ex : serveurweb)

Ils ont donc besoin d'accéder à des données communes

Comme le contrôle de l'exécution appartient au noyau, il peut y avoircondition de concurrence

Les processus peuvent donc spéci�er des sections critiques (avecsémaphores, mutex ou moniteurs)

Il faut toutefois faire attention aux deadlocks

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 32 / 49

Concepts de base Communication IPC

Deadlocks

Reprendre un interblocage

Préempter une ressource

Utiliser des checkpoints et des rollbacks

Supprimer un processus

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 33 / 49

Concepts de base Communication IPC

Communication Inter-Processus

Méthodes d'IPC

Utiliser de la mémoire partagée

Échanger des messages

Utiliser un tube FIFO (mono- ou bi-directionnel)

Lire et écrire dans un �chier

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 34 / 49

Concepts de base Gestion de la mémoire

Plan

1 IntroductionArchitectureDé�nitionHistoriqueTypes de systèmes d'exploitationStructure matérielle

2 Concepts de baseStructure des systèmes d'exploitationProcessusOrdonancementCommunication IPCGestion de la mémoire

3 Programmation systèmeFichiersProcessus

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 35 / 49

Concepts de base Gestion de la mémoire

Gestion de la mémoire

Espace d'adressage

L'espace d'adressage est une représentation virtuelle de la mémoiredont un processus peut disposer

On y range le code et les données du programme (généralement àpartir de la même adresse pour chaque processus)

Comme les espaces d'adressage sont remplis aux mêmes endroits pourchaque processus, mais que les données sont physiquement dans desendroits di�érents, la MMU utilise un mécanisme pour mapperl'espace physique dans l'espace virtuel.

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 36 / 49

Concepts de base Gestion de la mémoire

Concepts de base

Pagination

Pile

Données

Code80000000

00000000

Processus A

FFFFFFFF Mémoirephysique

Code

Données

Pile

Processus B

FFFFFFFF

80000000

00000000

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 37 / 49

Concepts de base Gestion de la mémoire

Concepts de base

Pagination

Pile

Données

Code80000000

00000000

Processus A

FFFFFFFF Mémoirephysique

Code

Données

Pile

Processus B

FFFFFFFF

80000000

00000000

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 37 / 49

Concepts de base Gestion de la mémoire

Concepts de base

Pagination

Pile

Données

Code80000000

00000000

Processus A

FFFFFFFF Mémoirephysique

Code

Données

Pile

Processus B

FFFFFFFF

80000000

00000000

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 37 / 49

Concepts de base Gestion de la mémoire

Concepts de base

Pagination

Pile

Données

Code80000000

00000000

Processus A

FFFFFFFF Mémoirephysique

Code

Données

Pile

Processus B

FFFFFFFF

80000000

00000000

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 37 / 49

Concepts de base Gestion de la mémoire

Concepts de base

Pagination

Pile

Données

Code80000000

00000000

Processus A

FFFFFFFF Mémoirephysique

Code

Données

Pile

Processus B

FFFFFFFF

80000000

00000000

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 37 / 49

Concepts de base Gestion de la mémoire

Concepts de base

Pagination

Pile

Données

Code80000000

00000000

Processus A

FFFFFFFF Mémoirephysique

Code

Données

Pile

Processus B

FFFFFFFF

80000000

00000000

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 37 / 49

Concepts de base Gestion de la mémoire

Concepts de base

Pagination

Pile

Données

Code80000000

00000000

Processus A

FFFFFFFF Mémoirephysique

Code

Données

Pile

Processus B

FFFFFFFF

80000000

00000000

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 37 / 49

Concepts de base Gestion de la mémoire

Concepts de base

Pagination

Pile

Données

Code80000000

00000000

Processus A

FFFFFFFF Mémoirephysique

Code

Données

Pile

Processus B

FFFFFFFF

80000000

00000000

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 37 / 49

Concepts de base Gestion de la mémoire

Concepts de base

Pagination

Pile

Données

Code80000000

00000000

Processus A

FFFFFFFF Mémoirephysique

Code

Données

Pile

Processus B

FFFFFFFF

80000000

00000000

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 37 / 49

Concepts de base Gestion de la mémoire

Concepts de base

Pagination

Pile

Données

Code80000000

00000000

Processus A

FFFFFFFF Mémoirephysique

Code

Données

Pile

Processus B

FFFFFFFF

80000000

00000000

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 37 / 49

Concepts de base Gestion de la mémoire

Concepts de base

Pagination

Pile

Données

Code80000000

00000000

Processus A

FFFFFFFF Mémoirephysique

Code

Données

Pile

Processus B

FFFFFFFF

80000000

00000000

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 37 / 49

Concepts de base Gestion de la mémoire

Concepts de base

Pagination

Pile

Données

Code80000000

00000000

Processus A

FFFFFFFF Mémoirephysique

Code

Données

Pile

Processus B

FFFFFFFF

80000000

00000000

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 37 / 49

Concepts de base Gestion de la mémoire

Concepts de base

Pagination

Pile

Données

Code80000000

00000000

Processus A

FFFFFFFF Mémoirephysique

Code

Données

Pile

Processus B

FFFFFFFF

80000000

00000000

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 37 / 49

Concepts de base Gestion de la mémoire

Concepts de base

Pagination

Pile

Données

Code80000000

00000000

Processus A

FFFFFFFF Mémoirephysique

Code

Données

Pile

Processus B

FFFFFFFF

80000000

00000000

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 37 / 49

Concepts de base Gestion de la mémoire

Concepts de base

Pagination

Pile

Données

Code80000000

00000000

Processus A

FFFFFFFF Mémoirephysique

Code

Données

Pile

Processus B

FFFFFFFF

80000000

00000000

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 37 / 49

Concepts de base Gestion de la mémoire

Concepts de base

Pagination

Pile

Données

Code80000000

00000000

Processus A

FFFFFFFF Mémoirephysique

Code

Données

Pile

Processus B

FFFFFFFF

80000000

00000000

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 37 / 49

Concepts de base Gestion de la mémoire

Concepts de base

Pagination

La mémoire physique est divisée en pages

La mémoire virtuelle est divisée en cadres de pages

En plus de l'adresse de la page, un cadre de page contient d'autreinformations importantes (accessed, dirty, present. . .)

Les machines 32-bits utilisent généralement des tables de pages

Les machines avec plus de mémoire virtuelle utilisent d'autresmécanismes (tables inverses. . .)

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 38 / 49

Concepts de base Gestion de la mémoire

Concepts de base

Pagination et processus

La pagination est un élément de base pour les va-et-vient desprocessus entre mémoire physique et mémoire de stockageSous Unix, les processus démarrent par clonage (appel système fork)

Le clone reçoit un nouvel espace d'adressage avec le code de l'originalIl reçoit aussi les données de l'original, mais avec le bit present à 0Quand le clone accède aux données, une exception est levée et la pageincriminée est dupliquée pour le clone

L'espace d'adressage d'un processus est écrasé par l'appel systèmeexec

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 39 / 49

Concepts de base Gestion de la mémoire

Concepts de base

Pagination et processus

Quand le système a besoin de libérer de la mémoire, il peut choisir destocker (sur disque) certaines pages de certains processus

Le système doit donc choisir une politique de choix des pages àswapper

Il y'a trois types de pagesLes pages non-accédées et non-modi�éesLes pages accédées (accessed) mais non modi�éesLes pages accédées et modi�ées (dirty)

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

Algorithme de remplacement de l'horloge

Least Recently Used : di�cile à mettre en oeuvre (compteurd'instruction ou matrice binaire) mais meilleures performances

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 40 / 49

Concepts de base Gestion de la mémoire

Concepts de base

Not Recently Used

Régulièrement, le système actualise un compteur pour chaque page endécalant un bit vers la droite et en insérent le bit accessed à gaucheLa page avec le compteur le plus petit est choisie pour un swap-out

Les compteurs ne mémorise que l'utilisation durant les n dernièresétapes

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 41 / 49

Concepts de base Gestion de la mémoire

Concepts de base

LRU

0 0 0 00000

0 0 0 0000 0

2 20 31

00 1 2 3

123

Ordre deréférencement

À chaque étape, la rangée avec la valeur binaire la plus faible indiquela page la moins récemment utilisée

Il faut une matrice de n ∗ n bits : di�cile à fabriquer dans une MMU

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 42 / 49

Concepts de base Gestion de la mémoire

Concepts de base

LRU

0

1 110000

0 0 0000

0 0 0

1 2 23

00 1 2 3

123

Ordre deréférencement

À chaque étape, la rangée avec la valeur binaire la plus faible indiquela page la moins récemment utilisée

Il faut une matrice de n ∗ n bits : di�cile à fabriquer dans une MMU

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 42 / 49

Concepts de base Gestion de la mémoire

Concepts de base

LRU

1 1100

00 1 10

00

00 0

0

0 1 3 22

00 1 2 3

123

Ordre deréférencement

À chaque étape, la rangée avec la valeur binaire la plus faible indiquela page la moins récemment utilisée

Il faut une matrice de n ∗ n bits : di�cile à fabriquer dans une MMU

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 42 / 49

Concepts de base Gestion de la mémoire

Concepts de base

LRU

2

1 1 1000

000 0

000

1 11

0 21 3

00 1 2 3

123

Ordre deréférencement

À chaque étape, la rangée avec la valeur binaire la plus faible indiquela page la moins récemment utilisée

Il faut une matrice de n ∗ n bits : di�cile à fabriquer dans une MMU

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 42 / 49

Concepts de base Gestion de la mémoire

Concepts de base

LRU

3

1 1 1 0000

1 11

1

0 0 0000

0 2 2

00 1 2 3

123

Ordre deréférencement

À chaque étape, la rangée avec la valeur binaire la plus faible indiquela page la moins récemment utilisée

Il faut une matrice de n ∗ n bits : di�cile à fabriquer dans une MMU

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 42 / 49

Concepts de base Gestion de la mémoire

Concepts de base

LRU

22 3

1 1 10

10

00

01 1

1

0

000

0000 1 2 3

123

Ordre deréférencement

À chaque étape, la rangée avec la valeur binaire la plus faible indiquela page la moins récemment utilisée

Il faut une matrice de n ∗ n bits : di�cile à fabriquer dans une MMU

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 42 / 49

Programmation système

Plan

1 IntroductionArchitectureDé�nitionHistoriqueTypes de systèmes d'exploitationStructure matérielle

2 Concepts de baseStructure des systèmes d'exploitationProcessusOrdonancementCommunication IPCGestion de la mémoire

3 Programmation systèmeFichiersProcessus

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 43 / 49

Programmation système

Programmation système

Soux Unix

bin home lib usrdev

bob tom

lscp

hdahdcsdb

data

Éxécutables, données, périphériques, pipe. . . : "Tout est �chier"

Les périphériques sont de deux types : caractère ou bloc

Les �chiers peuvent être accéder avec les appels systèmes read etwrite ou mappés en mémoire (appel système mmap)

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 44 / 49

Programmation système Fichiers

Plan

1 IntroductionArchitectureDé�nitionHistoriqueTypes de systèmes d'exploitationStructure matérielle

2 Concepts de baseStructure des systèmes d'exploitationProcessusOrdonancementCommunication IPCGestion de la mémoire

3 Programmation systèmeFichiersProcessus

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 45 / 49

Programmation système Fichiers

Programmation système

Fichiers sous Unix

À chaque �chier sont associés des permissions pourLe propriétaire du �chierLe groupe associé au �chierLe reste du monde

Les permissions sont de trois types :Lecteur (4)Écriture (2)Éxécution (1)

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 46 / 49

Programmation système Fichiers

Programmation système

File descriptors

"Tout est �chier" → "Tout est �le descriptor"

Un fd est un entier, index dans une table associée au processusLes tables ont trois entrées par défaut :

0 : Entrée standard1 : Sortie standard2 : Sortie erreur

On peut manipuler la table avec les appels système dup et dup2

On peut donc connecter les processus entre eux (comme le | du shell)

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 47 / 49

Programmation système Processus

Plan

1 IntroductionArchitectureDé�nitionHistoriqueTypes de systèmes d'exploitationStructure matérielle

2 Concepts de baseStructure des systèmes d'exploitationProcessusOrdonancementCommunication IPCGestion de la mémoire

3 Programmation systèmeFichiersProcessus

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 48 / 49

Programmation système Processus

Programmation système

Processus et signaux

Chaque processus est caractérisé par un numéro, le PID

Les processus peuvent être interrompu de façon logicielle par dessignaux

Les signaux peuvent servir à indiquer :Une erreur (SIGILL, SIGFPE, SIGSEGV, SIGPIPE)Un évenement extérieur (SIGINT, SIGKILL, SIGTERM, SIGALRM)

On envoie un signal à un processus avec l'appel système kill

On réagit à un signal, en spéci�ant la fonction à appeller, avec l'appelsystème sigaction ou signal

pierre-nicolas.clauss@loria.fr (LORIA) Systèmes d'exploitation 19 mars 2008 49 / 49

top related