systèmes d'exploitation - université de...

211
Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009 1 Systèmes d'exploitation Audrey Queudet Université de Nantes 2010 Projet DVD-MIAGE

Upload: others

Post on 21-Jul-2020

15 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

1

Systèmes d'exploitation

Audrey Queudet

Université de Nantes

2010

Projet DVD-MIAGE

Page 2: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

2

Plan du cours

Introduction aux systèmes d'exploitation

Présentation générale d'UNIX

Programmation shell

Processus et parallélisme

Communication et synchronisation

Ordonnancement

Gestion de la mémoire

Gestion de E/S

Page 3: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

3

Plan du cours

Introduction aux systèmes d'exploitation

Présentation générale d'UNIX

Programmation shell

Processus et parallélisme

Communication et synchronisation

Ordonnancement

Gestion de la mémoire

Gestion de E/S

Page 4: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

4

Rappels : structure matérielle d'un ordinateur

Introduction aux systèmes d'exploitation

1. l'écran

2. la carte mère

3. le processeur

4. la mémoire vive (RAM)

5. les cartes d'extensions

6. l'alimentation

7. le(s) lecteur(s) optique(s)

8. le(s) disque(s) dur(s)

9. le clavier

10. la souris

Page 5: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

5

Rôle d'un système d'exploitation (1)

Introduction aux systèmes d'exploitation

SE

Applications

Matériel

Page 6: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

6

Introduction aux systèmes d'exploitation

SYSTEME D'EXPLOITATION

Rôle d'un système d'exploitation (2)

Page 7: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

7

Introduction aux systèmes d'exploitation

Logiciel destiné à faciliter et simplifier l'utilisation d'un ordinateur

Interface entre l'utilisateur et le matériel (= abstraction des spécificités d'accès complexes du matériel)

Rôle d'un système d'exploitation (3)

Le SE gère les ressources matérielles

Le SE réalise 4 grands types de tâches :

La gestion des processus

La gestion de la mémoire

La gestion du système de fichiers

La gestion des périphériques d'E/S

Page 8: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

8

Introduction aux systèmes d'exploitation

Les concepts de base

Processus : programme en cours d'exécution auquel est associé du code,

des données et des ressources

Mémoire : organe d’un ordinateur permettant d’enregistrer, de stocker et de

restituer des données

Système de fichiers : structure de données permettant de stocker les informations et de les

organiser dans des fichiers sur des mémoires secondaires (disque dur, disquette, CD-ROM, clé USB, disques SSD, etc.)

Périphériques d'E/S : composants de matériel informatique assurant les communications

entre l'unité centrale de l'ordinateur et le monde extérieur, en particulierl'utilisateur (clavier, souris, scanner, webcam, imprimante, modem, etc.)

Page 9: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

9

Introduction aux systèmes d'exploitation

Nombre d'utilisateurs de l'ordinateur : Mono-utilisateur Multi-utilisateur

Nombre de processus à exécuter :

Monotâche Multitâche

Complexité d'un système d'exploitation

Partage des ressources (CPU, mémoire, réseau, périphériques, etc.) entre processus et entre utilisateurs

Page 10: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

10

Introduction aux systèmes d'exploitation

Principaux systèmes d'exploitation aujourd'hui

Microsoft Windows 1.0 - 3.x - 95 - 98 - Me - NT - 2000 - XP - 2003 - Vista - 2008

GNU/Linux Debian - Fedora - Gentoo - Mandriva - Red Hat - Slackware

SuSE - Ubuntu

Mac OS Système 5 - 6 - 7 - 8 - 9 Mac OS X -.0 -.1 -.2 -.3 -.4 -.5- .6 - Server

BSD FreeBSD - NetBSD - OpenBSD - DragonFly BSD - PC-BSD

Autres AmigaOS - BeOS - DOS - Inferno - LynxOS - Haiku - OS/2 - QNX - Solaris - UNIX

MVS - OS/360 - OS/390 - OS/400 - Plan 9 - ReactOS - VMS - ZETA - FreeDOS

Page 11: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

11

Introduction aux systèmes d'exploitation

Aperçu historique des systèmes d'exploitation (1)

Microsoft Windows

Page 12: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

12

Introduction aux systèmes d'exploitation

Aperçu historique des systèmes d'exploitation (2)

GNU/Linux, Mac OS, BSD

UNIX

Page 13: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

13

Plan du cours

Introduction aux systèmes d'exploitation

Présentation générale d'UNIX

Programmation shell

Processus et parallélisme

Communication et synchronisation

Ordonnancement

Gestion de la mémoire

Gestion de E/S

Page 14: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

14

UNIX est né au sein des laboratoires BELL (Filiale d'AT&T)

Les origines

Présentation générale d'UNIX

Développé à partir de 1969 par Ken Thompson et Dennis Ritchie

Dès 1973, UNIX est réécrit à 90% en langage C

En 1975, les sources d'Unix sont diffusées dans les universités

Développement de 2 branches : BSD développé à l'Université de Berkeley (Californie) System V vendu par AT&T à Sun Microsystems, IBM, DEC et HP

UNIX® est une marque déposée depuis 1994

Page 15: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

15

Multitâche

Caractéristiques principales

Présentation générale d'UNIX

Multi-utilisateur

Portable

Interactif

Un riche panel d'outils (plusieurs centaines)

Système à mémoire virtuelle

Page 16: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

16

Editeurs de texte

Outils disponibles

Présentation générale d'UNIX

Développement logiciel

Communication

Documentation

Bureautique

Page 17: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

17

Structure générale

GestionE/S

Gestionmémoire

Outils d’édition

Outils de

compil.

Outils de debuggage

Ordonnanceur

Gestiondu temps

NiveauNoyau

NiveauExécutif

NiveauSE

Présentation générale d'UNIX

Langages de commandes (shell)

Page 18: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

18

Le système de fichiers UNIX

Présentation générale d'UNIX

Sous UNIX, tout élément est représenté sous forme de fichier

4 types de fichiers :

Ordinaire : données, programme

Répertoire : contient d'autres données ou répertoires

Lien symbolique : pointe vers un autre fichier

Spécial : permet l'accès à un périphérique

Chaque fichier est caractérisé par son nom, sa taille, ses droits d'accès, son propriétaire, ses dates de création, de modification...

Structure arborescente de fichiers

Page 19: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

19

L'arborescence UNIX

Présentation générale d'UNIX

L'arborescence UNIXracine

Commandes système

Liste des périphériques

Utilisateurs

Utilitaires

Fichiers temporaires

Bibliothèquessystème

Accès aux périphériques

Page 20: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

20

Accès aux fichiers

Présentation générale d'UNIX

Chemin absolu :

Chemin relatif au répertoire courant (programmes sur l'exemple) :

/home/queudet/programmes/progC/p1.c/home/queudet/textes/lettre.txt

progc/p1.c../textes/lettres.txt

Chemin relatif au répertoire d'accueil (/home/queudet sur l'exemple) :

~/progc/p1.c~/textes/lettres.txt

Permet de remonter d'un niveau dans l'arbre

Page 21: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

21

Utilisateurs et groupes

Présentation générale d'UNIX

Le fichier /etc/passwd contient toutes les informations relatives aux utilisateurs (logins, mots de passe, ...).

Chacune de ses lignes possède le format spécial suivant :

nom_du_compte : mot_de_passe : no_UID : no_GID : commentaire : répertoire_home : prog

Identifiant utilisateur (entier)

Identifiant de groupe (entier)

Programme de démarrageaprès connexion (un shell généralement)

Exemples :

root:12dGe12ge35qF:0:0:root:/users/root:/bin/bash

pascal:12dGeg5AqFdhr2:500:100:Pascal:/users/pascal:/bin/tcsh

Page 22: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

22

Lecture (read) r

Ecriture (write) w

Exécution (execute) x

Les droits d'accès

Présentation générale d'UNIX

3 types de droits :

Propriétaire (user) u

Groupe (group) g

Autres (others) o

3 catégories d'utilisateurs : 4 types de fichier :

Ordinaire -

Répertoire (directory) d

Lien symbolique (link) l

Spécial c ou b

Les droits d'un fichier sont représentés par une chaîne de10 caractères :

- rxw rw- r--

Page 23: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

23

Les droits d'accès en octal

Présentation générale d'UNIX

Exemples :

Droits Valeur

--- 0

--x 1

-w- 2

-wr 3

r-- 4

r-x 5

rw- 6

rwx 7

-rw------- : drw-r—-r-- : drwxr-x--- :

Page 24: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

24

Les commandes de base UNIX

Présentation générale d'UNIX

A) Documentation en ligne

B) Navigation dans l'arborescence

C) Visualisation de fichiers

D) Manipulation de fichiers

E) Gestion des droits d'accès

F) Processus

G) Identification des utilisateurs

H) Recherche de fichiers ou de chaînes de caractères

I) Utilitaires classiques : éditeurs, compilateurs

J) Redirections et tubes

Page 25: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

25

A) Documentation en ligne (1)

Présentation générale d'UNIX

L'accès à la documentation en ligne se fait via la commande man

Une page de manuel contient, entre autres, les rubriques suivantes :

TITLE

NAME

SYNOPSIS

DESCRIPTION

OPTIONS

USAGE

EXAMPLES

SEE ALSO

Page 26: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

26

A) Documentation en ligne (2)

Présentation générale d'UNIX

Visualisation d'une page du manuel :

Recherche des pages qui se rapportent à un mot clé :

man [-s section] commande

man -k mot_cle

Sections :

Page 27: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

27

B) Navigation dans l'arborescence

Présentation générale d'UNIX

Affichage du chemin absolu du répertoire courant :

pwd

Suppression d'un répertoire vide :

rmdir rep_a_supprimerrmdir enseignements

Changement de répertoire :

cd chemincd /homecd textescd ../programmes

Création d'un répertoire :

mkdir rep_a_creermkdir /home/queudet/enseignements

Page 28: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

28

C) Visualisation de fichiers (1)

Présentation générale d'UNIX

Listage du contenu des répertoires et des informations sur les fichiers :

ls [-options]

Options : - d - l

- i - a

- x - t

- u - r

- R - F

Exemple :

ls -l textestotal 2-rw-rw-r-- 1 Olivier etudiant 168 Dec 2 15:09 chant.txt-rw-r--r-- 1 Olivier etudiant 81 Nov 30 14:19 lettre.txt

Page 29: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

29

C) Visualisation de fichiers (2)

Présentation générale d'UNIX

Affichage d'un ou plusieurs fichiers de type texte :

cat textes/lettre.txt

Listage des n premières lignes d'une liste de fichiers de type texte :

head -3 textes/chant.txt

Listage des n dernières lignes d'une liste de fichiers de type texte :

tail -2 textes/chant.txt

Affichage page par page d'un fichier de type texte :

more programmes/progC/description_p1.txt

Page 30: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

30

D) Manipulation de fichiers

Présentation générale d'UNIX

Copie d'un fichier vers un autre fichier :

cp chemin_source chemin_destinationcp programmes/progc/p1.c programmes/archive/prg1.c

Changement du nom ou déplacement d'un fichier :

mv chemin_source chemin_destinationmv programmes/progc/p1.c programmes/progc/programme1.cmv programmes/progc/*.c programmes

Supression d'un ou plusieurs fichiers :

rm cheminrm programmes/progc/p1.crm programmes/progc/*.c

Page 31: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

31

E) Gestion des droits d'accès

Présentation générale d'UNIX

Changement des droits d'accès d'un fichier spécifié :

chmod [-R] u|g|o +|- r|w|x cheminchmod [-R] valeur_en_octal chemin

Exemple :

chmod go+rx programmes/progcchmod o-w textes/*.txtchmod 765 textes/lettre.txt

Changement du groupe d'appartenance d'un fichier ou d'un répertoire :

chggrp [-R] groupe cheminchggrp prof /home/Olivier

Page 32: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

32

F) Processus

Présentation générale d'UNIX

Liste des processus satisfaisant un critère donné (spécifié en option) :

ps [-options]

Exemple :

ps -u dupontps -rps -elf

Destruction d'un processus :

kill -9 no_processuskill -9 521

Lancement en arrière-plan d'un processus :

nom_processus &prog1 &

Page 33: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

33

G) Identification des utilisateurs

Présentation générale d'UNIX

Liste des utilisateurs connectés :

who

Affichage du login sous lequel l'utilisateur est connecté :

whoamiOlivier

Affichage du no et du nom de l'utilisateur, du no et nom de ses groupes :

iduid=501(Olivier) gid=502(etudiant) groups=502(etudiant), 503(amis)

Page 34: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

34

H) Recherche de fichiers ou de ch. de caractères (1)

Présentation générale d'UNIX

Affichage des lignes d'un ou plusieurs fichiers contenant une ch. de car. :

grep [-options] expression fichiergrep "Cher Monsieur" textes/*.txttextes/lettre.txt:Cher Monsieur,

grep "c.*e" textes/*.txttextes/lettre.txt:Ravi d'avoir fait votre connaissance.

grep -l sucre /home/Clara/recettes/confitures/*abricots.txt poires.txt

Comptage du nombre de lignes, de mots et/ou de caractère d'un fichier :

wc [-options] fichierwc textes/lettre.txt

7 10 81 textes/lettres.txtwc -l textes/lettre.txt

7 textes/lettre.txt

Page 35: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

35

H) Recherche de fichiers ou de ch. de caractères (2)

Présentation générale d'UNIX

Affichage des fichiers répondant à un critère spécifié en option :

find repertoire [-options] -print

Exemples :

find programmes -name "*.c"./programmes/progc/p1.c./programmes/progc/p2.cfind . -type d -name "*s" -print./programmes/./textes/

Options : -name -type -user -group-size -atime-mtime -ctime-perm -links

Page 36: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

36

I) Utilitaires classiques : éditeurs, compilateurs

Présentation générale d'UNIX

Editeur de texte en standard sous Unix :

vi

Compilateurs :

ccgccg++f77pc

Autres éditeurs :

emacsgeditxedit

Page 37: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

37

J) Redirections et tubes (1)

Présentation générale d'UNIX

Redirections des entrées-sorties :

Redirection de l'entrée standard :

commande < chemingrep "tmp" < test

commande0 1

2

0 : entrée standard (STDIN)1 : sortie standard (STDOUT)2 : sortie des erreurs (STDERR)

Redirection de la sortie standard :

commande > cheminls > test

Page 38: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

38

J) Redirections et tubes (2)

Présentation générale d'UNIX

Redirection de la sortie d'erreur :

commande 2> cheminls -l 2> /dev/null

Redirection de la sortie d'une commande vers l'entrée d'une autre (tube):

commande1 | commande2grep "Monsieur" *.txt | wc -l

Redirection de la sortie d'erreur vers la sortie standard :

commande 2>&1 chemincat fichier > copie 2>&1

commande10

1

2

commande20

1

2

tube

Page 39: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

39

Interprétation des commandes

Présentation générale d'UNIX

Affichage d'un prompt

Attente de la frappe d’une ligne et analyse de la ligne

Exécution de la ou les commande(s)

101110010110001110111100101101111000101110001011

ls -lcat fmv fiwc -lcp tegrep

Le Shell

Page 40: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

40

Plan du cours

Introduction aux systèmes d'exploitation

Présentation générale d'UNIX

Programmation shell

Processus et parallélisme

Communication et synchronisation

Ordonnancement

Gestion de la mémoire

Gestion de E/S

Page 41: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

41

Le Shell UNIX (1)

Programmation shell

Interface en ligne de commande UNIX (=IHM dans laquelle la communication entre l'utilisateur et l'ordinateur s'effectue en mode texte)

Le shell est utilisable en conjonction avec un terminal

2 modes d'utilisation : Simple interpréteur de commandes (mode interactif) Langage de programmation interprété (scripts)

Lors du login, l'utilisateur est connecté avec un shell défini lors de la création de son compte. Possibilité de le modifier via la commande chsh

Page 42: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

42

Le Shell UNIX (2)

Programmation shell

Le shell affiche une invite en début de ligne, appelée prompt ('$' ou '#' ou '%'), pour indiquer à l'utilisateur qu'il attend l'entrée d'une commande

Page 43: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

43

Pourquoi utiliser un shell : avantages ?

Programmation shell

Travail en ligne de commande souvent plus efficace qu'à travers uneinterface graphique

Dans de nombreux contextes, on ne dispose pas d'interface graphique

Automatisation de tâches répétitives

Meilleure compréhension du système UNIX (fichiers de configuration...)

Page 44: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

44

Pourquoi ne pas utiliser un shell : inconvénients ?

Programmation shell

Syntaxe cohérente mais parfois obscure (concision vs. clarté)

Documentation difficile d'accès pour le débutant

Messages d'erreurs parfois difficilement exploitables

Relative lenteur

Page 45: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

45

Les différents shells

Programmation shell

Shell de Stephen R. Bourne : Bourne shell : sh Bourne-Again shell : bash

Shell de David Korn : Korn shell : ksh

C shell : csh

Tenex C shell (version moderne du csh) : tcsh

Shell de Kenneth Almquist prenant peu de place sur le disque : Almquist shell : ash Debian Almquist shell : dash

Z Shell (zsh), intégrant les fcts les plus pratiques de bash, ksh et tcsh

Page 46: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

46

Scripts shell en bash : les concepts de base

Programmation shell

Caractères spéciaux

Variables

variables d'environnement variables de l'utilisateur

Structures de contrôle

exécution conditionnelle choix multiple boucle for boucles while et until

Opérateurs

Expressions régulières

Page 47: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

47

Caractères spéciaux (ou métacaractères)

Programmation shell

Caractère Description

* Métacaractère qui remplace n'importe quelle chaîne de caractères (même vide)

? Métacaractère qui remplace un caractère quelconque

; Permet de séparer plusieurs commandes écrites sur une même ligne

( ) Regroupe des commandes

& Permet le lancement d'un processus en arrière plan

| Permet la communication par tube entre deux commandes

# Introduit un commentaire. Tout ce qui suit dans une ligne est ignoré par le shell

\ Déspécialise le caractère qui suit

'...' Définit une chaîne de caractères qui ne sera pas évaluée par le shell

"..." Définit une chaîne de caractères dont les variables seront évaluées par le shell

`...` Définit une chaîne de caractères qui sera interprétée comme une commande et remplacée par la chaîne qui serait renvoyée à l'exécution de la dite commande

Page 48: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

48

Variables d'environnement (1)

Programmation shell

Variable Description

PWD Stocke le chemin et le nom du répertoire courant

HOSTNAME Nom du serveur

HISTSIZE Taille de l'historique des dernières commandes passées au shell

LANGUAGE Suffixe de la langue du système

PS1 Chaîne apparaissant à l'invite du Shell

USER Nom de l'utilisateur

DISPLAY Adresse du terminal d'affichage

SHELL Chemin et nom du programme Shell

HOME Chemin du répertoire de connexion

PATH Liste des répertoires où chercher les exécutables des commandes externes

Page 49: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

49

Variables d'environnement (2)

Programmation shell

Les variables d'environnement sont manipulées via les commandes :

printenv : affiche la liste des variables d'environnement

export VARIABLE=VALEUR : donne une valeur à une variable

echo $VARIABLE : affiche la valeur de la variable

Exemples :

printenvPWD=/home/OlivierLANG=frSHELL=/bin/bash

printenv LANGfr

Page 50: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

50

Variables de l'utilisateur

Programmation shell

L'utilisateur peut déclarer facilement de nouvelles variables par l'affectation directe d'une valeur (numérique, chaîne de caractères) :

Exemples :

[email protected]=audreyvous=L2phrase1="Bonjour $vous, moi c\'est $moi"phrase2='Bonjour $vous, moi c\'est $moi'echo $phrase1Bonjour L2, moi c'est audreyecho $phrase2Bonjour $vous, moi c\'est $moi

rep=`pwd`echo $rep/home/queudet/data

ma_variable=valeur

Page 51: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

51

Opérateurs sur les fichiers

Programmation shell

Opérateur Description

-e filename Vrai si filename existe

-d filename Vrai si filename est un répertoire

-f filename Vrai si filename est un fichier ordinaire

-L filename Vrai si filename est un lien symbolique

-r filename Vrai si filename est lisible (r)

-w filename Vrai si filename est modifiable (w)

-x filename Vrai si filename est exécutable (x)

file1 -nt file2 Vrai si file1 plus récent que file2

file1 -ot file2 Vrai si file1 plus ancien que file2

Page 52: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

52

Opérateurs sur les chaînes

Programmation shell

Opérateur Description

-z chaîne Vrai si la chaîne est vide

-n chaîne Vrai si la chaîne est non vide

chaîne1 = chaîne2 Vrai si les deux chaînes sont égales

Chaîne1 != chaîne2 Vrai si les deux chaînes sont différentes

Page 53: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

53

Opérateurs arithmétiques

Programmation shell

Opérateur Description

+ addition

- soustraction

* multiplication

/ division

** puissance

% modulo

Expressions arithmétiques :

$(( ... ))

n=1echo $(( 5*n+1 ))

Page 54: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

54

Opérateurs de comparaison numérique

Programmation shell

Opérateur Description

num1 -eq num2 égalité

num1 -ne num2 inégalité

num1 -lt num2 inférieur (<)

num1 -le num2 inférieur ou égal (≤)

num1 -gt num2 supérieur (>)

num1 -ge num2 supérieur ou égal (≥)

Page 55: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

55

Opérateurs booléens

Programmation shell

Opérateur Description

-a ET logique

-o OU logique

! NON logique

Page 56: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

56

Structures de contrôle : exécution conditionnelle

Programmation shell

L'instruction if permet d'exécuter des instructions si une condition est vraie

if [ condition ]then

actionsfi

Le bloc if/then

if [ condition ]then

action1else

action2fi

Le bloc if/then/else

if [ condition1 ]then

action1elif [ condition2 ]then

action2elif [ condition 3 ]then

action3else

action4fi

Enchaînement de plusieurs conditions

Page 57: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

57

Structures de contrôle : choix multiple

Programmation shell

L'instruction case permet de choisir une suite d'instructions suivant lavaleur d'une expression

case "$x" incase1)

actions1;;

case2)actions2;;

...caseN)

actionsN;;

esac

Page 58: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

58

Structures de contrôle : boucle for

Programmation shell

L'instruction for permet une exécution répétitive d'une suite d'instructions

for VAR in LISTEdo

actionsdone

Schéma classique

for ((initialisation de VAR; contrôle de VAR; modification de VAR))do

actionsdone

Schéma alternatif

Page 59: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

59

Structures de contrôle : boucles while et until

Programmation shell

L'instruction while permet une exécution répétitive d'une suite d'instructions tant qu'une condition est vraie

while [ condition ]do

actionsdone

L'instruction until permet une exécution répétitive d'une suite d'instructions jusqu'à ce qu'une condition soit vraie

until [ condition ]do

actionsdone

Condition de continuation de la boucle

Condition d'arrêt de la boucle

Page 60: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

60

Expressions régulières : définition

Programmation shell

Une expression régulière est un patron qui recouvre un ensemble de chaînes de caractères

Les expressions régulières sont puissantes pour extraire des lignes particulières d'un fichier ou d'un résultat

Beaucoup de commandes UNIX emploient des expressions régulières

Bash a des fonctionnalités intégrées pour cibler des patrons et peut reconnaître des classes de caractères et des intervalles.

Page 61: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

61

Expressions régulières : les opérateurs

Programmation shell

Opérateur Description

. Correspond a tout caractère

? L'élément précédent est optionnel et sera présent au plus une fois

* L'élément précédent sera présent zéro fois ou plus

+ L'élément précédent sera présent une fois ou plus

{N} L'élément précédent sera présent exactement N fois

{N,} L'élément précédent sera présent N ou plus de fois

{N,M} L'élément précédent sera présent au moins N fois, mais pas plus de M fois

- Représente l'intervalle s'il n'est pas le premier ou le dernier dans une liste

^ Correspond à une chaîne vide au début de la ligne; Représente aussi les caractèresne se trouvant pas dans l'intervalle d'une liste

$ Correspond à la chaîne vide à la fin d'une ligne

\b Correspond à la chaîne vide au début ou à la fin d'un mot

Page 62: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

62

Ecriture de scripts bash

Programmation shell

Un script bash est un simple fichier texte exécutable (droit x) dont la première ligne doit obligatoirement être #!/bin/bash

#!/bin/bash## Shell-script affichant "bonjour" sur la sortie standard#message='bonjour'echo $message

Dans un éditeur de texte, écrivons le script suivant :

Enregistrons ce script sous le nom bonjour.sh

Page 63: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

63

Exécution de scripts bash

Programmation shell

Dans un terminal, en ligne de commande, rendons le script exécutable :

chmod u+x bonjour.sh

Exécutons le script (plusieurs solutions) :

bonjour.sh

. bonjour.sh

sh bonjour.sh

exec bonjour.sh

ou

ou

ou

Page 64: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

64

Paramètres de scripts bash

Programmation shell

Il est possible d'exécuter un script en lui passant un certain nombre de paramètres (ou arguments), comme pour n'importe quelle autre commande :

mon_script.sh arg1 arg2 ... argN

En bash, les arguments de la ligne de commande sont stockées dans desvariables spéciales :

Variable Description

$# Nombre d'arguments

$* Liste des arguments

$0 Nom de la commande

$1 Valeur du premier paramètre

$i Valeur du ième paramètre si i compris entre 1 et 9

$9 Valeur du neuvième paramètre

Page 65: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

65

Plan du cours

Introduction aux systèmes d'exploitation

Présentation générale d'UNIX

Programmation shell

Processus et parallélisme

Communication et synchronisation

Ordonnancement

Gestion de la mémoire

Gestion de E/S

Page 66: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

66

Processus et threads : définition (1)

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

Programme (= instructions machine) : entité statique

Processus (= réalisation d'actions) : entité dynamique

A un processus sont associés plusieurs éléments :

son code

ses données

les ressources qui lui sont attribuées

un ou plusieurs threads d'exécution

Processus et parallélisme

Page 67: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

67

Processus et threads : définition (2)

Un thread est un flot d'exécution dans le code du processus doté :

d'un compteur programme (suivi des instructions à exécuter)

de registres systèmes (variables de travail en cours)

d'une pile (historique de l'exécution)

Plusieurs processus permettent à un ordinateur d'effectuer plusieurs

tâches à la fois. Ils se partagent les ressources physiques.

Plusieurs threads permettent à un processus de décomposer le travail

à exécuter en parallèle. Ils se partagent les ressources physiques et

virtuelles.

Processus et parallélisme

Page 68: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

68

Utilisation des threads

Amélioration de l'interactivité d'un programme (ex : traitement de texte)

HD

Enregistrement sur disque Interactivité avec l'utilisateur

Mise en forme

Processus et parallélisme

Page 69: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

69

Caractéristiques d'un processus UNIX

Un processus possède de nombreuses caractéristiques :

le programme qu'il exécute (CMD)

un numéro d'identification que lui affecte le système (PID)

un créateur (PPID)

l'utilisateur pour lequel il fonctionne (UID)

le terminal ou la fenêtre du processus (TTY)

une consommation CPU (CPU)

une consommation mémoire (MEM)

une durée de traitement (TIME)

une heure de lancement (STIME)

un facteur de priorité (C)...

Processus et parallélisme

Page 70: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

70

Types de processus UNIX

Processus utilisateur vs. Processus système (démons)

Un processus est créé par un autre processus

Exemple d'arborescence de processus :Ancêtre de tous les processus

/bin/bash (536)/bin/bash (534) /bin/bash (535)

konsole (532)konsole (530) konsole (531)

ps (634)ls -al (602)

konsole (533) lpd (408)

init (1)

Processus et parallélisme

Page 71: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

71

Commandes UNIX de gestion des processus (1)

Liste des processus satisfaisant un critère donné (spécifié en option) :

ps [-options]

Exemples :

ps -efUID PID PPID C STIME TTY TIME COMMAND root 1 0 0 Dec 6 ? 1:02 init ... jean 319 300 0 10:30:30 ? 0:02 /usr/dt/bin/dtsession olivier 321 319 0 10:30:34 ttyp1 0:02 csh olivier 324 321 0 10:32:12 ttyp1 0:00 ps -ef

ps -efu Olivierolivier 321 319 0 10:30:34 ttyp1 0:02 csh olivier 324 321 0 10:32:12 ttyp1 0:00 ps -efu

Processus et parallélisme

Page 72: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

72

Commandes UNIX de gestion des processus (2)

Destruction d'un processus :

kill -9 no_processuskill -9 521

Lancement en arrière-plan d'un processus :

nom_processus&prog1&

Changement de la priorité d'un processus :

nice -valeur commandenice -5 gcc programme.c

Affichage des processus en background :

jobs

Processus et parallélisme

Page 73: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

73

Manipulation de processus en langage C (1)

Principes généraux :

processus 1(parent)

processus 2(enfant)

execlp(B)

fork()wait()

exit()

Exécution programme A

Exécution programme B

Processus et parallélisme

Page 74: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

74

Manipulation de processus en langage C (2)

Primitives de gestion de processus :

int fork ();

int execlp (char *comm, char *arg0, ..., NULL);

void exit (int status);

int wait (int *ptr_status);

pid_t waitpid(pid_t pid, int *status, int opts)

int sleep (int seconds);

int getpid ();

int getppid ();

Processus et parallélisme

Page 75: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

75

Etats d'un processus

actif : le processus s’exécute sur le processeur

bloqué : il manque au processus une ressource (en plus du processeur)

pour qu’il puisse s’exécuter

prêt : le processus est prêt à s’exécuter mais n’a pas le processeur

actif bloqué

prêt

réveil

préemption

élection

blocage

Processus et parallélisme

Page 76: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

76

Allocation du processeur aux processus

Comment contrôler l'ordre de passage des processus sur le processeur ?

P1

P2

P3

CPUL'ordonnanceur

L'ordonnanceur est un composant (procédure) du système d'exploitation

Comment contrôler la répartition du temps d'exécution entre les processus ?

Processus et parallélisme

Page 77: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

77

Plan du cours

Introduction aux systèmes d'exploitation

Présentation générale d'UNIX

Programmation shell

Processus et parallélisme

Communication et synchronisation

Ordonnancement

Gestion de la mémoire

Gestion de E/S

Page 78: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

78

Ordonnancement : quels objectifs ? (1)

Ordonnancement

L'ordonnancement consiste à choisir le processus à exécuter à uninstant t et à déterminer le temps durant lequel le processeur lui sera alloué

L'objectif de l'ordonnanceur est d'optimiser certains aspects des performances du système.

Compromis entre :

Temps de traitement moyen du système

Utilisation efficace du processeur

Temps de réponse moyen/max du système

Satisfaction des conditions d'échéance pour les processus

Bonne utilisation des autres ressources du système

Page 79: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

79

Ordonnancement : quels objectifs ? (2)

Ordonnancement

Systèmes de traitement par lots

optimiser le nombre de processus à l'heure réduire le délai entre la soumission et l'achèvement faire en sorte que le processeur soit occupé en permanence

Systèmes interactifs

répondre rapidement aux requêtes répondre aux attentes des utilisateurs

Systèmes temps réel

respecter les délais eviter de perdre des données eviter la dégradation de la qualité au niveau des résultats produits

Page 80: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

80

Ordonnancement des processus

Ordonnancement

ORDONNANCEUR : alloue le processeur aux différents processus selon un algorithme d'ordonnancement donné

PROCESSEUR

file d’attente desprocessus prêts

file d’attente des processus bloqués

processus élu

ORDONNANCEUR

actif bloqué

prêtréveil

préemptionélection

blocage

Page 81: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

81

Critères d’ordonnancement

Utilisation du processeur

Ordonnancement

Débit (ou capacité de traitement)

Temps de traitement

Temps de réponse

Prévisibilité

Equité

Priorités

Temps d'attente

Page 82: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

82

Typologie des algorithmes d’ordonnancement

Monoprocesseur / multiprocesseur

En-ligne / Hors-ligne

Préemptif / Non préemptif

Centralisé / Réparti

Oisif / Non oisif

Ordonnancement

Page 83: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

83

Ordonnancement non préemptif

Ordonnancement selon l’ordre d’arrivée :

Ordonnancement selon la durée de calcul :

premier arrivé, premier servi

First Come First Serve (FCFS)

travail le plus court d’abord

Shortest Job First (SJF)

Ordonnancement

Page 84: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

84

Ordonnancement préemptif

Ordonnancement sans notion de priorité :

Ordonnancement à priorités (statiques ou dynamiques) :

temps-partagé avec politique du tourniquet

Round-Robin (RR)

la tâche la plus prioritaire obtient le processeur

P3P2

P1

CPU

Ordonnancement

Ordonnancement selon la durée de calcul restante :

temps restant le plus court d'abord

Shortest Remaining Time (SRT)

Page 85: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

85

Ordonnancement First Come First Served (FCFS)

Principe : Les processus sont ordonnancés selon leur ordre d'arrivée

Exemple (P1, P

2, P

3 et P

4 arrivent dans cet ordre à t = 0) :

Ordonnancement

Page 86: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

86

Ordonnancement First Come First Served (FCFS)

Intérêts :

Algorithme facile à comprendre

Faible complexité d'implémentation (une seule liste chaînée)

Inconvénients :

Pas de prise en compte de l’importance relative des processus

Temps d'attente du processeur généralement important

Ordonnancement

Page 87: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

87

Ordonnancement Shortest Job First (SJF)

Principe : Le processus dont le temps d'exécution est le plus court est ordonnancé en priorité

Exemple (P1, P

2, P

3 et P

4 arrivent à t = 0) :

Ordonnancement

Page 88: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

88

Ordonnancement Shortest Job First (SJF)

Intérêts :

SJF réduit le temps d'attente des processus

Utilisation limitée à des environnements et à des applications spécifiques

Inconvénients :

Pas de prise en compte de l’importance relative des processus

Algorithme optimal uniquement dans le cas où tous les processus sont

disponibles simultanément

Ordonnancement

Page 89: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

89

Ordonnancement Shortest Remaining Time (SRT)

Principe : Le processus dont le temps d'exécution restant est le plus court parmi ceux qui restent à exécuter, est ordonnancé en premier

Exemple (P3 et P

4 arrivent à t = 0; P

2 à t = 20; P

1 à t = 50) :

Ordonnancement

Page 90: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

90

Ordonnancement Shortest Remaining Time (SRT)

Intérêts :

SRT minimise le temps d'attente moyen des processus les plus courts

Utilisation limitée à des environnements et à des applications spécifiques

Inconvénients :

Pas de prise en compte de l’importance relative des processus

Non équité de service : SRT pénalise les processus longs

Possibilité de famine pour les processus longs

Ordonnancement

Page 91: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

91

Ordonnancement temps-partagé (Round-Robin)

Principe : allocation du processeur par tranche (quantum) de temps

Exemple (q=20, n=4) :

Chaque tâche obtient le processeur au bout de (n-1)*q unités de temps au plus

Ordonnancement

Page 92: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

92

Ordonnancement temps-partagé (Round-Robin)

Intérêts :

Equité de l’attribution du processeur entre toutes les tâches

Mise en œuvre simple

Inconvénients :

Pas de prise en compte de l’importance relative des tâches

Difficulté du choix de la tranche de temps

Si q est trop grand, Round-Robin devient équivalent à FIFO

Si q est trop petit, il y a augmentation du nombre de changements

de contexte !

Ordonnancement

Page 93: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

93

Ordonnancement à priorités statiques

Principe : allocation du processeur selon des priorités statiques (numéros affectés aux processus pour toute la vie de l'application)

Exemple ( priorités(P1, P

2, P

3, P

4)=(3,2,0,1) ) :

Dans certains systèmes, l'échelle des priorités est inversée (0 est alors la priorité la plus faible)

Ordonnancement

Page 94: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

94

Ordonnancement à priorités statiques

Intérêts :

Prise en compte de l'importance relative des processus

Mise en œuvre simple

Inconvénients :

Problèmes de blocages durant des périodes de temps illimitées

Problèmes de famines des processus de moindres priorités

Ordonnancement

Page 95: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

95

Ordonnancement sous Linux (1)

3 algorithmes d'ordonnancement différents :

un pour les processus conventionnels

SCHED_NORM

deux pour les processus temps réel

SCHED_FIFO

SCHED_RR

Ordonnancement

2 échelles de niveaux de priorités :

une pour les processus conventionnels

une pour les processus temps réel

Noyau Linux 2.6

Page 96: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

96

Ordonnancement sous Linux (2)

Chaque processus conventionnel possède :

Une priorité statique (PS)

valeur entière comprise entre 101 et 139

Un quantum de base (QB)

déterminé à partir de sa priorité statique

Si PS < 120, QB = (140 – PS) * 20

Si PS ≥ 120, QB = (140 – PS) * 5

Une priorité dynamique (PD)

déterminée à partir de sa priorité statique et de son caractère interactif

PD = max(100, min(PS - bonus + 5, 139))

Recalculée toutes les 20ms

Ordonnancement

Page 97: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

97

Ordonnancement sous Linux (3)

Détermination du bonus :

Ordonnancement

Temps de sommeil moyen Bonus

Entre 0 et 100ms 0

Entre 100 et 200ms 1

Entre 200 et 300ms 2

Entre 300 et 400ms 3

Entre 400 et 500ms 4

Entre 500 et 600ms 5

Entre 600 et 700ms 6

Entre 700 et 800ms 7

Entre 800 et 900ms 8

Entre 900 et 1000ms 9

1 seconde 10

Page 98: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

98

Ordonnancement sous Linux (4)

La sélection des processus s'effectue en temps constant : O(1)

Ordonnancement

Cas multiprocesseur : une file de processus par processeur

Les processus peuvent être préemptés

/usr/src/linux­2.6.x/kernel/sched.c

Pour aller plus loin...

L'ordonnanceur ordonne les processus en fonction de leur priorité statique

L'ordonnanceur choisit les processus en fonction de leur priorité dynamique

Page 99: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

99

Plan du cours

Introduction aux systèmes d'exploitation

Présentation générale d'UNIX

Programmation shell

Processus et parallélisme

Communication et synchronisation

Ordonnancement

Gestion de la mémoire

Gestion de E/S

Page 100: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

100

Contexte (1)

Communication et synchronisation

Processus concurrents vs. Processus distants

Noyau du SE

Processusutilisateur

Machine

Noyau du SE

Processusutilisateur

Machine

Noyau du SE

Processusutilisateur

Machine

Processusutilisateur

Communications intra-système Communications inter-système

Page 101: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

101

Contexte (2)

Communication et synchronisation

Plusieurs processus → accès concurrents aux ressources

Une ressource désigne toute entité dont a besoin un processus pour s'exécuter :

ressource matérielle (processeur, périphérique, etc.) ressource logicielle (variable)

3 phases pour l'exploitation d'une ressource par un processus :

sollicitation de la ressource utilisation de la ressource libération de la ressource

Page 102: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

102

Contexte (3)

Communication et synchronisation

Une ressource est dite critique lorsque des accès concurrents à cetteressource peuvent mener à un état incohérent

On parle aussi de situation de compétition (race condition) pour décrire une situation dont l'issue dépend de l'ordre dans lequel les opérations sonteffectuées

Une section critique est une section de programme manipulant une ressource critique

Un mécanisme d'exclusion mutuelle sert à assurer l'atomicité des sections critiques relatives à une ressource critique

Page 103: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

103

Accès aux ressources critiques (1)

Communication et synchronisation

Cas d'incohérence de données : problème de la synchronisation relativede l'exécution des processus

process#1

lire (N, Account)

N :=N + 100écrire (N, Account)

process#2

lire (N, Account)N :=N + 100écrire (N, Account)

Process#2 ne doit pas accéder à N tant que process#1 l'utilise !

Page 104: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

104

Accès aux ressources critiques (2)

Communication et synchronisation

Solution par exclusion mutuelle :

Variable Compte : entier

Procédure Credit (somme_à_créditer : entier) Début

Début_section_critique()Compte = Compte + somme_à_créditer

Fin_section_critique()Ecrire (« Opération de crédit effectuée »)

Fin

Procédure Débit (somme_à_débiter: entier) Début Début_section_critique() Compte = Compte - somme_à_débiter

Fin_section_critique() Ecrire(« Opération de débit effectuée ») Fin

Page 105: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

105

Accès aux ressources critiques (3)

Communication et synchronisation

Cas d'interblocage : ensemble de processus attendant chacun une ressource déjà possédée par un processus de l'ensemble

process#1 process#2Ressource#1

Ressource#2

utilise

utilise

attend

attend

L'attente est infinie

Page 106: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

106

Accès aux ressources critiques (4)

Communication et synchronisation

Cas de coalition et famine : ensemble de processus monopolisant des ressources au détriment d'autres processus.

process#3

Ressource#1 Ressource#2

utiliseattend

L'attente est indéfinie

process#1

process#2

process#4

attendutilise

Page 107: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

107

Paradigmes de concurrence

Communication et synchronisation

Problème des producteurs/consommateurs

Problème des lecteurs/rédacteurs

Problème des philosophes

Page 108: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

108

Problème des producteurs/consommateurs (1)

Communication et synchronisation

Un ensemble de processus, divisés en deux catégories, partagent une zone mémoire

Les premiers (producteurs) remplissent la mémoire partagée avec des éléments

Exemple : la file d'impression

Les seconds (consommateurs) utilisent ces éléments et les retirent de la mémoire

Page 109: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

109

Problème des producteurs/consommateurs (2)

Communication et synchronisation

Structure du système producteurs/consommateurs :

Page 110: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

110

Problème des lecteurs/rédacteurs (1)

Communication et synchronisation

Un ensemble de processus, divisés en deux catégories, partagent une zone mémoire

Certains processus (les lecteurs) font des accès en lecture seule àcette zone

Les rédacteurs sont parfois appelés écrivains

D'autres processus (les rédacteurs) modifient le contenu de cette zone

Page 111: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

111

Problème des lecteurs/rédacteurs (2)

Communication et synchronisation

Lorsqu'un rédacteur accède à la mémoire partagée, aucun autre processus(lecteur ou rédacteur) ne doit y avoir accès

Les lecteurs peuvent être plusieurs à utiliser la zone en même temps

Les lecteurs n'ont besoin de cette exclusion mutuelle que dans le casoù aucun autre lecteur n'utilise la mémoire

La mémoire partagée doit être protégée par exclusion mutuelle

Principe :

Utilisation d'un compteur

Page 112: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

112

Problème des philosophes (1)

Communication et synchronisation

5 philosophes passent leur vie à manger et à penser

Pour manger, ils ont besoin de 2 fourchettes mais il n'y a que 5 fourchettes

Page 113: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

113

Problème des philosophes (2)

Communication et synchronisation

Chaque philosophe a 3 états : « Je pense », « J'ai faim », « Je mange » par lesquels il passe toujours dans cet ordre

Lorsqu'il a faim, un philosophe ne peut manger que si ses 2 voisins ne mangent pas, sinon il attend

Principe :

Lorsqu'il termine de manger, le philosophe réveille ses voisins et se remetà penser

Page 114: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

114

Résolution des problématiques

Communication et synchronisation

Comment gérer les accès concurrents aux ressources ?

Introduction de nouveaux mécanismes

- de communication

- de synchronisation

Page 115: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

115

Communications inter-processus

Communication et synchronisation

Inter-Process Communication (IPC) : méthodes permettant à plusieurs processus de communiquer entre eux

3 catégories de mécanismes :

outils permettant aux processus de s'échanger des données les fichiers la mémoire partagée

outils permettant de synchroniser des processus les sémaphores les signaux

outils permettant d'échanger des données et de synchroniser des processus les tubes les files d'attente de messages

Page 116: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

116

Communication par fichier (1)

Communication et synchronisation

Les fichiers constituent la manière primitive de communication :

Afin d'éviter les accès concurrents en lecture / écriture, on procède àdes verrouillages

-----------------------------------

process#1

process#2

process#3

Approche coûteuse (accès au système de fichier du disque)

Page 117: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

117

Communication par fichier (2)

Communication et synchronisation

Verrouillage de tout le fichier :

flock() LOCK_SH : verrouillage en mode partagé LOCK_EX : verrouillage en mode exclusif

Verrouillage d'une partie du fichier :

lockf() F_TEST : teste si une zone est verrouillée F_LOCK : verrouille une zone

fcntl()

Page 118: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

118

Communication par mémoire partagée (1)

Communication et synchronisation

Un segment de mémoire peut être simultanément attaché à l'espace virtuel de plusieurs processus, ou plusieurs fois à des adresses différentes d'un même processus

process#1 process#2

Segment de

mémoire partagée

Espace d'adressage du processus

Page 119: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

119

Communication par mémoire partagée (2)

Communication et synchronisation

Primitives C de gestion d'un segment de mémoire partagée :

shmget() : création ou accès à un segment de mémoire existant

shmat() : attachement à l'espace d'adressage d'un processus

shmdt() : détachement du segment de mémoire partagée de l'espace d'adressage d'un processus

shmctl() : contrôle du segment (permissions d'accès, swapping, etc.)

IPC_STAT IPC_SET SHM_LOCK SHM_UNLOCK ...

Page 120: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

120

Synchronisation par sémaphore (1)

Communication et synchronisation

Les sémaphores sont utilisés dans le contrôle d'accès à une ressource

compteur

liste d'attente des processus bloqués sur le sémaphore

SémaphoreSem

Un sémaphore est une structure de données

contenant un compteur (valeur entière non négative)

gérant une file d'attente de processus attendant qu'advienne une condition particulière propre au sémaphore

Page 121: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

121

Synchronisation par sémaphore (2)

Communication et synchronisation

Types de synchronisation possibles :

Exclusion mutuelle

process#1 process#2

Barrière de synchronisation

process#1 process#2Section critique

Page 122: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

122

Synchronisation par sémaphore (3)

Communication et synchronisation

1ère opération : test de prise du sémaphore (« Puis-je ?)

Sem.P() : si (Sem.compteur>0) alors Sem.compteur = Sem.compteur-1sinon insère_ce_processus(Sem.file)

finsi

0 compteur

liste d'attente des processus bloqués sur le sémaphore

0 compteur

liste d'attente des processus bloqués sur le sémaphore

P5P8 P5P8P3

Sem.P()

P3

Page 123: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

123

Synchronisation par sémaphore (4)

Communication et synchronisation

2ème opération : libération du sémaphore (« Vas-y ! »)

Sem.V() : Sem.compteur = Sem.compteur+1 si (Sem.compteur > 0)

alors extrait_un_processus(Sem.file)finsi

0 compteur

liste d'attente des processus bloqués sur le sémaphore

1 compteur

liste d'attente des processus bloqués sur le sémaphore

P5

Sem.V()

P3

P5

Page 124: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

124

Synchronisation par sémaphore (5)

Communication et synchronisation

Types de sémaphores :

Sémaphore compteur : implémentation de la barrière de synchronisation

Le compteur doit être initialisé à 0

Sémaphore binaire : implémentation de l'exclusion mutuelle

le compteur ne peut admettre que les valeurs 0 ou 1 le compteur doit être initialisé à 1

Page 125: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

125

Synchronisation par sémaphore (6)

Communication et synchronisation

Primitives C de gestion des sémaphores UNIX (IPC System V) :

semget() création d'un tableau de sémaphores

semop() test de prise d'un sémaphore (sem.P()) libération d'un sémaphore (sem.V())

semctl() initialisation d'un sémaphore suppression d'un sémaphore

Page 126: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

126

Synchronisation par signaux (1)

Communication et synchronisation

Les signaux permettent d'avertir simplement un processus de l'arrivéed'un événement

process#1

Ctrl-CNoyau du SE

signal

Les signaux sont limités au rôle de notification d'événement

Page 127: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

127

Synchronisation par signaux (2)

Communication et synchronisation

A chaque signal est associé un comportement par défaut :

Il existe environ 32 signaux prédéfinis identifiés par un nom et un numéro

abort : génération d'un fichier core et arrêt du processus

exit : terminaison du processus sans génération d'un fichier core

ignore : le signal est ignoré

stop : suspension du processus

continue : reprendre l'exécution si le processus a été suspendu

Page 128: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

128

Synchronisation par signaux (3)

Communication et synchronisation

Numéro Nom Comportement par défaut

1 SIGUP envoyé lors de la déconnexion

2 SIGINT interruption clavier

3 SIGQUIT quitter depuis le clavier

6 SIGABRT terminaison anormale

8 SIGFPE erreur opération en virgule flottante

9 SIGKILL destruction inconditionnelle du processus

10 SIGUSR1 à disposition de l'utilisateur

11 SIGSEGV référence mémoire invalide

12 SIGUSR2 à disposition de l'utilisateur

13 SIGPIPE erreur dans un tube (écriture sans lecteur)

14 SIGALARM signal d'horloge

15 SIGTERM terminaison normale d'un processus

18 SIGCONT reprise d'exécution, si stoppé

19 SIGSTOP stoppe l'exécution d'un processus

Page 129: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

129

Synchronisation par signaux (4)

Communication et synchronisation

2 façons d'envoyer un signal à un processus :

Un caractère de contrôle :

En ligne de commande :

CRTL-C envoie SIGINT (interruption)

CRTL-Z envoie SIGSTOP (suspension)

CRTL-\ envoie SIGQUIT (fin)

kill [-no_signal] no_processuskill -9 4014

kill [-nom_signal] no_processuskill -SIGUSR1 2584

Page 130: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

130

Synchronisation par signaux (5)

Communication et synchronisation

Primitives C de gestion des signaux :

kill() : envoie un signal vers un processus

sigaction() : spécifie une action associée à un signal

Modification du comportement par défaut d'un signal :

trap 'instruction1; instruction2;...' nom_signaltrap 'echo fini;exit 1' SIGUSR1

Page 131: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

131

Echanges et synchro. par tubes (1)

Communication et synchronisation

Un tube est un flux de données permettant l'échange unidirectionnelde données entre deux processus s'exécutant sur une même machine

process#1 process#2

Les processus souhaitant communiquer doivent être de la même famille (ex. père/fils)

Les tubes peuvent être considérés comme des fichiers ouverts (sans l'inconvénient des accès coûteux au système de fichier du disque)

Page 132: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

132

Echanges et synchro. par tubes (2)

Communication et synchronisation

Primitives C pour la gestion des tubes :

Utilisation simple en langage shell (opérateur '|')

ls | more

pipe() : création d'un tube (renvoie une paire de descripteurs du fichier)

write() : écriture dans un tube

read() : lecture du contenu d'un tube

close() : suppression d'un tube

Page 133: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

133

Echanges et synchro. par files de messages (1)

Communication et synchronisation

Les files de messages permettent une communication indirecte entre processus (mécanisme de « boîte aux lettres »)

process#1 process#3process#2

process#5process#4

Page 134: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

134

Echanges et synchro. par files de messages (2)

Communication et synchronisation

Deux aspects sont à gérer :

la communication identification unique du destinataire et de l'expéditeur du message description exacte des données description de l'adressage

la synchronisation envoi bloquant ou non réception bloquante ou non priorité des messages

Un message ne peut être lu qu'une seule fois

Page 135: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

135

Echanges et synchro. par files de messages (3)

Communication et synchronisation

Primitives C de gestion des files de messages (type IPC System V) :

msgget() création d'une nouvelle file de messages accès à une file de messages existante

msgsend() envoi d'un message dans une file

msgctl() contrôle d'une file (suppression, permissions, etc.)

Page 136: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

136

Echanges et synchro. par files de messages (4)

Communication et synchronisation

Primitives C de gestion des files de messages (type POSIX) :

mq_open() création d'une nouvelle file de messages accès à une file de messages existante

mq_close() fermeture d'une file de messages (sans la détruire)

mq_unlink() destruction d'une file de messages

mq_send() / mq_timedsend() envoi d'un message dans une file

mq_receive() / mq_timedreceive() récupération d'un message dans une file

mq_getattr() gestion des attributs d'une file de messages

Page 137: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

137

Conclusion sur les mécanismes IPC

Communication et synchronisation

Mécanismes divers et variés répondant plus ou moins bien aux problèmesde communication inter-processus

Charge au développeur de choisir quels mécanismes utiliser en fonction :

des besoins de l'application

du coût de développement

Complexité du développement vs. performance du programme

Page 138: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

138

Plan du cours

Introduction aux systèmes d'exploitation

Présentation générale d'UNIX

Programmation shell

Processus et parallélisme

Communication et synchronisation

Ordonnancement

Gestion de la mémoire

Gestion de E/S

Page 139: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

139

Gestion de la mémoire

Les concepts de base (1)

On appelle « Mémoire » tout composant électronique capable de stockertemporairement des données

Caractéristiques principales d'une mémoire :

la capacité

le temps d'accès

le temps de cycle

le débit

la non volatilité

Mémoire idéale (dans l'absolu) ?

Page 140: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

140

Gestion de la mémoire

3 types de mémoires :

Mémoire morte (appelée également mémoire non volatile) mémoire ROM (Read-Only Memory) mémoire ne s'effaçant pas en absence de courant électrique mémoire conservant les données nécessaires au démarrage de l'ordinateur temps d'accès de l'ordre de 150ns

Mémoire vive (appelée également mémoire volatile) mémoire RAM (Random Access Module) données ne perdurant pas en l'absence de courant électrique 2 types de mémoire RAM : DRAM et SRAM temps d'accès pour la DRAM de l'ordre de 50ns temps d'accès pour la SRAM de l'ordre de 10ns

Mémoire flash compromis entre la mémoire RAM et la mémoire ROM non volatilité de la mémoire morte accès en lecture/écriture de la mémoire vive

Les concepts de base (2)

Page 141: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

141

Gestion de la mémoire

2 niveaux de gestion de la mémoire :

Niveau matériel

les registres du processeur

la mémoire cache

Niveau système d'exploitation

la mémoire principale (appelée également mémoire centrale ou interne)

la mémoire secondaire (appelée également mémoire de masse ou physique)

Les concepts de base (3)

Rôle du gestionnaire de mémoire du SE

Page 142: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

142

Le gestionnaire de mémoire du SE

Gestion de la mémoire

Objectifs du gestionnaire de mémoire du système d'exploitation :

Partager la mémoire (système multi-tâche)

Allouer des blocs de mémoire aux différents processus

Protéger les espaces mémoire utilisés

Optimiser la quantité de mémoire disponible

Mécanismes de découpage de la mémoire

Mécanismede mémoire virtuelle

+

Page 143: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

143

La mémoire virtuelle (1)

Gestion de la mémoire

La mémoire virtuelle est une technique permettant d'exécuter des programmes dont la taille excède la taille de la mémoire réelle

La mémoire virtuelle permet :

d'augmenter le nombre de processus présents simultanément en mémoire centrale

de mettre en place des mécanismes de protection mémoire

de partager la mémoire entre processus

Mécanisme mis au point dans les années 60

Page 144: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

144

La mémoire virtuelle (2)

Gestion de la mémoire

Une partie de l'espace d'adressage d'un processus peut être enlevé temporairement de la mémoire centrale au profit d'un autre (swapping)

OS

process#1

process#2

espace d'adressagede l'utilisateur

espace d'adressagedu noyau

Page 145: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

145

La mémoire virtuelle (3)

Gestion de la mémoire

Illustration du mécanisme de va-et-vient (swapping)

Page 146: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

146

La mémoire virtuelle (4)

Gestion de la mémoire

Au lancement d'un processus, son espace d'adressage est majoritairement stocké en mémoire secondaire

Au fur et à mesure de l'exécution du processus, des parties de son espaced'adressage sont chargées en mémoire principale

Page 147: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

147

La mémoire virtuelle (5)

Gestion de la mémoire

Les adresses virtuelles doivent être traduites en adresses physiques

Cette traduction est assurée par un circuit matériel spécifique pour la gestion de la mémoire :

la MMU (Memory Management Unit)

Mémoireprincipale

Disque

MMU

CPU

Bus du systèmeadresses physiquesadresses physiques

adressesvirtuelles

Page 148: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

148

Les mécanismes de découpage de la mémoire

Gestion de la mémoire

La mémoire principale peut être découpée de 3 façons :

par pagination elle consiste à diviser la mémoire en blocs, et les programmes en

pages de longueur fixe.

par segmentation les programmes sont découpés en parcelles ayant des longueurs

variables appelées segments.

par segmentation paginée certaines parties de la mémoire sont segmentées, d'autres paginées

Mémoire

Page 149: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

149

La pagination (1)

Gestion de la mémoire

L'espace d'adressage virtuel est découpé en pages

L'espace d'adressage physique est découpé en cadres

La mémoire virtuelle et la mémoire physique sont structurées en unitésd'allocation

Taille d'une page = taille d'un cadre

La taille d'une page est fixe (de 2Ko à 16Ko)

Toutes les pages sont de la même taille

Il peut y avoir plus de pages que de cadres (c'est là tout l'intérêt)

Page 150: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

150

La pagination (2)

Gestion de la mémoire

Exemple :

Page 151: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

151

La pagination (3)

Gestion de la mémoire

Une adresse virtuelle est définie par :

un numéro de page

un déplacement dans la page

Une adresse physique est définie par :

un numéro de cadre

un déplacement dans le cadre

Un mécanisme de traduction assure la conversion des adresses virtuellesen adresses physiques, en consultant une table des pages, pour connaîtrele numéro du cadre qui contient la page recherchée

Mécanisme detranslation

Identité

Adresse virtuelle

Adresse physique

Numéro de page

Numéro de cadre déplacement

déplacement

Page 152: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

152

La pagination (4)

Gestion de la mémoire

La table des pages virtuelles (TPV) est composée de plusieurs champs :

un bit de présence

un bit de référence (R)

un bit de protection

un bit de modification (M)

le numéro de cadre Prése

nce

Modificatio

n

Référence

Protecti

onNuméro de cadre

de la page physique

TPV

0x000E100000

01

02

03

04

05

0000

06

07

Page 153: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

153

La pagination (5)

Gestion de la mémoire

Exemple de partage de code entre processus - 3 pages de code- 2 pages de données

Page 154: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

154

La pagination (6)

Gestion de la mémoire

Verrouillage de pages

Les processus privilégiés (root) peuvent spécifier des zones de leur espace virtuel non « swappables »

Applications

Processus temps réel

Traitement de données confidentielles

Applications multimédia

Page 155: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

155

La segmentation (1)

Gestion de la mémoire

Un segment mémoire est un espace d'adressage indépendant défini par2 valeurs :

une adresse où il commence (aussi appelée base ou adresse de base)

une taille ou un décalage (aussi appelé limite ou offset)

L'adresse virtuelle d'une donnée est donc exprimée sous la forme :

adr_virtuelle = base : limite

Cette adresse virtuelle est traduite en adresse physique par le biais d'unetable des segments

Page 156: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

156

La segmentation (2)

Gestion de la mémoire

Il existe différents types de segments :

les segments de données statiques

les segments de données globales

les segments de code

les segments d'états de tâche

Page 157: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

157

La segmentation (3)

Gestion de la mémoire

Exemple de partage de segments entre processus :

Page 158: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

158

Pagination vs. segmentation

Gestion de la mémoire

Pagination :

Segmentation :

sert à obtenir un grand espace d'adressage linéaire sans avoir à acheterde la mémoire physique

permet la séparation des programmes et des données dans des espacesd'adressage logiquement indépendants

facilite le partage et la protection

Page 159: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

159

La segmentation paginée

Gestion de la mémoire

Chaque segment est composé d'un ensemble de pages

Une adresse virtuelle est définie par :

un numéro de segment

un numéro de page

un déplacement dans la page

La traduction des adresses virtuelles en adresses physiques est réaliséegrâce à une table des segments et une table des pages

Unité de segmentation

Unité de pagination

Adr. virtuelle Adr. linéaire Adr. physique

Page 160: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

160

Problèmes communément rencontrés

Gestion de la mémoire

Les défauts de pages

La fragmentation mémoire

Page 161: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

161

La fragmentation (1)

Gestion de la mémoire

La fragmentation interne dans les systèmes paginés

La fragmentation externe dans les systèmes segmentés

entre chaque partition de taille fixe, un peu de mémoire est perdue

des espaces entre les segments existent suite au retrait de programmes

Une mémoire fragmentée est une mémoire dans laquelle plusieurs blocsde mémoire non contigus sont libres

Il existe des méthodes de compaction mais généralement coûteuses

Page 162: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

162

La fragmentation (2)

Gestion de la mémoire

Illustration de la fragmentation interne :

Mémoire divisée en pages de 4Ko

Un process Ademande un bloc de 5Ko

2 pages de4 Ko sontallouées

5Ko utilisés parle processus A

3Ko inutiliséstant que 5Ko non libérés par A

Page 163: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

163

La fragmentation (3)

Gestion de la mémoire

Illustration de la fragmentation externe :

Blocs demémoire contiguës alloués par A, B et C

B libère sa mémoire

Blocs demémoire contigus alloués par A, B et C

C demande plus de mémoire qu'il n'y en a de contiguë donc celle-ci reste inutilisée

Page 164: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

164

Les défauts de pages

Gestion de la mémoire

Si une page virtuelle n'est pas présente en mémoire physique, il se produitun défaut de page

Si la mémoire physique est pleine :

il faut retirer de la mémoire physique une page (remplacement)

choisir une page « victime »

si elle a été modifiée, la réécrire sur le disque

modifier les indicateurs de présence dans la TPV

Puis, dans tous les cas :

charger la page référencée en mémoire physique (placement)

modifier les indicateurs de présence dans la TPV

Le système d'exploitation doit alors recharger la page manquante depuisle disque en plaçant éventuellement une autre page physique en mémoire secondaire

Page 165: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

165

Les algorithmes de remplacement de page

Gestion de la mémoire

Objectif : choisir la page à retirer de manière à minimiser le nombre de défauts de page

Algorithmes existants :

algorithme de remplacement aléatoire

algorithme de Belady (optimal)

algorithme FIFO

algorithme FINUFO

algorithme LRU

algorithme NRU

Page 166: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

166

L'algorithme de Belady

Gestion de la mémoire

Principe : choisir la page qui sera référencée le plus tard possible dans le futur

Stratégie théorique et impossible à mettre en oeuvre dans la réalité

Algorithme optimal

Algorithme servant de base de référence pour les autres stratégies

temps

Pagesdemandées

3 cadres demémoire physique

Page 167: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

167

L'algorithme FIFO

Gestion de la mémoire

Principe : choisir la page la plus ancienne en mémoire

Stratégie qui ne tient pas compte de l'utilisation de chaque page

Algorithme rarement utilisé car il génère beaucoup de défauts de page

3 cadres demémoire physique

temps

Pagesdemandées

3 cadres demémoire physique

Page 168: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

168

L'algorithme FINUFO

Gestion de la mémoire

Principe : algorithme FIFO + examen du bit de référence

Les pages en mémoire sont mémorisées dans une liste circulaire en forme d'horloge

bit de référence à 0 : choix de la page

bit de référence à 1 : on donne une seconde chance à la page

FBJDKAGHICEL

Page 169: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

169

L'algorithme FINUFO

Gestion de la mémoire

Exemple :

3 cadres demémoire physique

temps

Pagesdemandées

3 cadres demémoire physique

Page 170: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

170

L'algorithme LRU

Gestion de la mémoire

Principe : choisir la page la moins récemment utilisée

Stratégie plus complexe à implémenter

Algorithme coûteux mais efficace

temps

Pagesdemandées

3 cadres demémoire physique

Page 171: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

171

L'algorithme NRU

Gestion de la mémoire

Principe : examiner les bits de référence (R) et de modification (M)

(R,M)=(0,0)

(R,M)=(0,1)

(R,M)=(1,0)

(R,M)=(1,1)

Algorithme utilisé dans Mac OS

Page 172: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

172

L'anomalie de Belady

Gestion de la mémoire

L'augmentation du nombre de cadres peut se traduire par un incrément du nombre de défauts de page

L'algorithme LRU ne rencontre pas ce problème

Algorithme FIFOavec 3 cadres de pages

Algorithme FIFO avec 4 cadres de pages

9 défauts de page

10 défauts de page !

Page 173: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

173

La mémoire sous Linux (1)

Gestion de la mémoire

Le format des fichiers exécutables est divisé en régions (ou zones) :

Type du fichier (les 2 premiers octets)

Zone de code (.text)

Zone des données (.data)

Zone des données non initialisées (.bss)

Zone de la pile

Chaque région est constitué d'un ensemble de pages de 4Ko

Le gestionnaire de mémoire est un système de segmentation paginée

Page 174: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

174

La mémoire sous Linux (2)

Gestion de la mémoire

L'espace d'adressage mémoire d'un processus est organisé comme suit :

BSS

Noyau OS

TEXT

DATA

pile

données non initialisées

données initialisées

instructions

+

-pile

tas

espace d'adressagede l'utilisateur

espace d'adressagedu noyau

Page 175: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

175

La mémoire sous Linux (3)

Gestion de la mémoire

Cartographie mémoire d'un processus

affichage du fichier maps

cat /proc/pid_process/maps

cat /proc/1/maps08048000-0805e000 r-xp 00000000 08:05 1212502 /sbin/init0805e000-0805f000 rw-p 00015000 08:05 1212502 /sbin/init0805f000-0818b000 rw-p 0805f000 00:00 0 [heap]b7e7a000-b7e7b000 rw-p b7e7a000 00:00 0b7e7b000-b7fc4000 r-xp 00000000 08:05 169844 /lib/tls/i686/cmov/libc-2.7.sob7fc4000-b7fc5000 r--p 00149000 08:05 169844 /lib/tls/i686/cmov/libc-2.7.sob7fc5000-b7fc7000 rw-p 0014a000 08:05 169844 /lib/tls/i686/cmov/libc-2.7.sob7fc7000-b7fca000 rw-p b7fc7000 00:00 0b7fd7000-b7fd9000 rw-p b7fd7000 00:00 0b7fd9000-b7fda000 r-xp b7fd9000 00:00 0 [vdso]b7fda000-b7ff4000 r-xp 00000000 08:05 1114565 /lib/ld-2.7.sob7ff4000-b7ff6000 rw-p 00019000 08:05 1114565 /lib/ld-2.7.sobfd18000-bfd2d000 rw-p bffeb000 00:00 0 [stack]

Page 176: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

176

La mémoire sous Linux (4)

Gestion de la mémoire

Informations sur l'état de la mémoire utilisée par le processus

affichage du fichier statm

cat /proc/pid_process/statm

cat /proc/self/statm734 148 126 7 0 61 0

Exemple :

Page 177: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

177

La mémoire sous Linux (5)

Gestion de la mémoire

Etat actuel d'un processus (affichage du fichier status) :

cat /proc/pid_process/status

cat /proc/6252/statusName: bashState: S (sleeping)Tgid: 6252Pid: 6252PPid: 6248[...]VmPeak: 5956 kBVmSize: 5956 kBVmLck: 0 kBVmHWM: 3196 kBVmRSS: 3196 kBVmData: 1840 kBVmStk: 84 kBVmExe: 668 kBVmLib: 1784 kBVmPTE: 12 kBThreads: 1[...]

Page 178: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

178

La mémoire sous Linux (6)

Gestion de la mémoire

Statistiques sur l'usage global de la mémoire virtuelle du système :

appel système vmstat

Exemple :

vmstat nb_secondes nb_fois

vmstat 5 10 procs ---------memory---------- --swap-- --io--- --system- ---cpu----r b swpd free buff cache si so bi bo in cs us sy id. . .1 0 13344 1444 1308 19692 0 168 129 42 1505 713 20 11 691 0 13856 1640 1308 18524 64 516 379 129 4341 646 24 34 423 0 13856 1084 1308 18316 56 64 14 0 320 1022 84 9 8

Page 179: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

179

La mémoire sous Linux (7)

Gestion de la mémoire

Autres appels système relatifs à la gestion de mémoire :

brk(adr)

modifie la taille d'un segment de données

mmap(adr, lg, prot, flags, df, offset)

mappe un fichier en mémoire

munmap(adr, lg)

supprime le mappage d'un fichier

Page 180: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

180

Plan du cours

Introduction aux systèmes d'exploitation

Présentation générale d'UNIX

Programmation shell

Processus et parallélisme

Communication et synchronisation

Ordonnancement

Gestion de la mémoire

Gestion de E/S

Page 181: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

181

Gestion des E/S

Enjeux liés à la gestion des E/S (1)

rapidité du périphérique

volume des informations

service proposé

direction du flux d'informations

protocole de communication

La gestion des E/S par le système d'exploitation est un véritable défi liéaux différences multidimensionnelles des périphériques :

Page 182: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

182

Gestion des E/S

Enjeux liés à la gestion des E/S (2)

Débits de données de certains périphériques courants (2003) :

Périphérique Débit de données

Clavier 10 octets/s

Souris 100 octets/s

Modem 56K 7 ko/s

Imprimante laser 100 ko/s

Scanner 400 ko/s

USB 1.5 Mo/s

CD-Rom 40x 6 Mo/s

Ecran XGA 60 Mo/s

Disque IDE 5 Mo/s

Disque SCSI Ultra 2 80 Mo/s

Page 183: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

183

Gestion des E/S

Enjeux liés à la gestion des E/S (3)

offrir de bonnes abstractions aux programmes

gouverner leur utilisation par les processus

coordonner efficacement les périphériques

Le système d'exploitation doit :

Soucis d'uniformisation de l'interface offerte par le SE pour les E/S

Page 184: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

184

Gestion des E/S

Les périphériques d'E/S (1)

Un périphérique d'E/S est un matériel informatique assurant unecommunication entre l'unité centrale de l'ordinateur et le monde extérieur

On distingue 3 types de périphériques :

les périphériques d'entrée

les périphériques de sortie

les périphériques d'entrée/sortie

Les périphériques peuvent être internes ou externes

Page 185: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

185

Gestion des E/S

Exemples de périphériques d'entrée

Dispositifs de pointage

Dispositifs d'acquisition

Page 186: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

186

Gestion des E/S

Exemples de périphériques de sortie

Page 187: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

187

Gestion des E/S

Exemples de périphériques d'entrée/sortie

Page 188: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

188

Gestion des E/S

Les périphériques d'E/S (2)

les périphériques par blocs

les périphériques par caractères

Les périphériques d'E/S se répartissent en 2 catégories :

stockent des informations dans des blocs de taille fixe

acceptent et fournissent un flot de caractères

chaque bloc possède une adresse propre

ne sont pas adressables

exemples : disques, bandes magnétiques, etc.

exemples : imprimantes, interfaces réseaux, souris, etc.

Page 189: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

189

Gestion des E/S

Les périphériques d'E/S (3)

Les périphériques d'E/S sont généralement constitué :

d'un composant mécanique

d'un composant électronique

ex : un moniteur

ex : une carte graphique

Les 2 composants peuvent être intégrés

contrôleurs de périphérique

Page 190: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

190

Gestion des E/S

Les périphériques d'E/S (4)

Chaque périphérique d'E/S connecté à un ordinateur doit disposer d'unprogramme spécifique pour le contrôler : le pilote de périphérique

Rôles d'un pilote d'E/S :

envoi des commandes au contrôleur de périphérique

vérification de leur bon acheminement

traitement des requêtes émanant du logiciel

Interface entre le matériel et le système d'exploitation (traducteurs)

Page 191: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

191

Gestion des E/S

Les périphériques d'E/S (5)

l'attente active

la scrutation

les interruptions

l'accès direct à la mémoire (DMA)

Les pilotes d'E/S assure la communication avec les périphériques selonl'un des 4 protocoles élémentaires suivants :

Les pilotes d'E/S doivent :

être indépendants par rapport au matériel

posséder une désignation universelle

gérer les erreurs non résolues par le contrôleur

Page 192: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

192

Gestion des E/S

Architecture de contrôle des E/S

Contrôleur vidéo

Contrôleurd'imprimante

Contrôleurde son

Pilotevidéo

Piloted'imprimante

Pilotede son

Partie du système d'exploitation indépendante du matériel

Programmeutilisateur

Périphériques

Matériel

Espacenoyau

Espaceutilisateur

Page 193: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

193

Gestion des E/S

Les disques

Grande variété de types de disques :

les disques optiques

CD-ROM

CD enregistrables

DVD

DVD enregistrables

les disques magnétiques

disquettes

disques durs

Page 194: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

194

Gestion des E/S

Les disques optiques

Principe des disques optiques (rappels) :

Alternance de creux et de méplats disposés en une spirale continue

Sillon en spirale

Secteur

Page 195: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

195

Gestion des E/S

Les disques magnétiques (1)

Principe des disques magnétiques (rappels) :

Piste

Segment

Secteur

Piste

Secteur Tête

Bras

Cylindre

Page 196: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

196

Gestion des E/S

Les disques magnétiques (2)

Quelques chiffres :

Paramètres Disquette IBM Disque dur WD

Nb de cylindres 40 10.601

Pistes par cylindre 2 12

Secteurs par piste 9 281

Secteurs par disque 720 35.742.000

Octets par secteurs 512 512

Capacité du disque 360 ko 18,3 Go

Page 197: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

197

Gestion des E/S

Cas du disque dur (1)

Facteurs clés des performances d'un disque dur :

temps de positionnement S

temps de rotation R

temps de transfert T

Temps d'accès total A :

A = S + R + T

Page 198: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

198

Gestion des E/S

Cas du disque dur (2)

Objectif : réduire au maximum le temps d'accès moyen au disque

reçoit les requêtes émanant du logiciel

détermine les opérations que le contrôleur doit exécuter

traduit les requêtes d'E/S en termes concrets

choisit la prochaine requête à traiter

Comportement du pilote de périphérique :

vérifie la validité des paramètres de la requête

Page 199: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

199

Gestion des E/S

Algorithmes d'ordonnancement du bras du disque (1)

Principaux algorithmes existants :

FIFO

LOOK et C-LOOK

SSTF

SCAN et C-SCAN

F-SCAN

N-step SCAN

Page 200: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

200

Gestion des E/S

Algorithmes d'ordonnancement du bras du disque (2)

FIFO : First In First Out

Requêtes : 1, 36, 16, 34, 9, 12

0 9 11 12 16 34 36

10

35

20

18

25

3

1

Ordre de service : 1, 36, 16, 34, 9, 12

Nb total de cylindres parcourus : 111

Page 201: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

201

Gestion des E/S

Algorithmes d'ordonnancement du bras du disque (3)

SSTF : Shortest Seek Time First

0 9 11 12 16 34 361

1

3

7

15

33

2

Requêtes : 1, 36, 16, 34, 9, 12

Ordre de service : 12, 9, 16, 1, 34, 36

Nb total de cylindres parcourus : 61

Page 202: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

202

Gestion des E/S

Algorithmes d'ordonnancement du bras du disque (4)

SCAN : algorithme de l'ascenseur

0 9 11 12 16 34 361 49

1

4

18

2

13

40

8

Nb total de cylindres parcourus : 86

Requêtes : 1, 36, 16, 34, 9, 12

Ordre de service : 12, 16, 34, 36, 9, 1

Page 203: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

203

Gestion des E/S

Algorithmes d'ordonnancement du bras du disque (5)

C-SCAN : Circular SCAN

0 9 11 12 16 34 361 49

1

4

18

2

13

49

1

Nb total de cylindres parcourus : 96

Requêtes : 1, 36, 16, 34, 9, 12

Ordre de service : 12, 16, 34, 36, 1, 9

8

Page 204: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

204

Gestion des E/S

Algorithmes d'ordonnancement du bras du disque (6)

LOOK : SCAN avec changement de direction lorsqu'il n'y a plus de requêtes en avant de la tête

0 9 11 12 16 34 361

1

4

18

2

27

8

Nb total de cylindres parcourus : 60

Requêtes : 1, 36, 16, 34, 9, 12

Ordre de service : 12, 16, 34, 36, 9, 1

Page 205: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

205

Gestion des E/S

Algorithmes d'ordonnancement du bras du disque (7)

C-LOOK : Circular LOOK

0 9 11 12 16 34 361

1

4

18

2

35

8

Nb total de cylindres parcourus : 68

Requêtes : 1, 36, 16, 34, 9, 12

Ordre de service : 12, 16, 34, 36, 1, 9

Page 206: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

206

Gestion des E/S

Algorithmes d'ordonnancement du bras du disque (8)

F-SCAN

2 sous-files de requêtes de longueur illimitée

lorsqu'une sous-file est en cours de traitement, les nouvelles requêtes sont stockées dans l'autre sous-file

lorsque toutes les requêtes de la sous-file courante ont été traitées, l'algorithme bascule sur l'autre sous-file

dans chaque sous-file les requêtes sont servies selon l'algorithme SCAN

Page 207: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

207

Gestion des E/S

Algorithmes d'ordonnancement du bras du disque (9)

N-step SCAN

plusieurs sous-files de requêtes de taille maximale égale à N

traite uniquement le N premières requêtes d'une sous-file

les sous-files sont traitées entre elles dans l'ordre FIFO

dans chaque sous-file les requêtes sont servies selon l'algorithme SCAN

lorsqu'une sous-file est en cours de traitement, les nouvelles requêtessont placées das la prochaine sous-file non remplie

Page 208: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

208

Gestion des E/S

Algorithmes d'ordonnancement du bras du disque (10)

Comment choisir le « bon » algorithme ?

SSTF est d'un usage courant du fait de sa simplicité

SCAN et C-SCAN sont d'autant plus intéressants que le nombre de requêtes est élevé (charge disque importante)

SSTF et LOOK sont tous deux des compromis intéressants en tantqu'algorithmes par défaut

La performance dépend du nombre et du type des requêtes

Les disques durs modernes assurent souvent eux-mêmes l'ordonnancement

Page 209: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

209

Gestion des E/S

En résumé...

Le système d'exploitation fournit (à travers les pilotes de périphériques)une abstraction du matériel d'E/S

L'interface fournie doit être simple et identique (si possible) pour tous les périphériques

Sous Linux, tous les périphériques sont vus comme des fichiers spéciauxdans l'arborescence :

/dev/cdrom : accès au CD-ROM

/dev/fd0 : accès au lecteur de disquette

/dev/hda : accès au premier disque dur

/dev/sda : accès à une clé usb

/dev/mouse : accès à la souris

Page 210: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

210

Gestion des E/S

Pilotage logiciel des E/S

Primitives C de gestion des périphériques :

open() : ouvre l'accès à un périphérique

close() : ferme de l'accès à un périphérique

startio() : vérifie si un périphérique est actif

interrupt() : routine exécutée lorsque le périphérique envoie une interruption

ioctl() : met en oeuvre toute fonction spéciale pouvant être appliquée au périphérique

Page 211: Systèmes d'exploitation - Université de Nantesmiage.univ-nantes.fr/miage/DVD-MIAGE-SystemeEtArchitecture/syste… · Rôle d'un système d'exploitation (3) Le SE gère les ressources

Projet soutenu par le Conseil Régional Des Pays de La Loire dans le cadre des projets ENRC 2008-2009

211

Références

A. Tanenbaum, Systèmes d'exploitation, 2ème édition, Pearson Education, 2003.

M. Divay, UNIX, Linux et les systèmes d'exploitation, 2ème édition, Dunod, 2004.

J. Archer Harris, Systèmes d'exploitation, EdiScience, 2002.

A. Silberschatz, P.-B. Galvin, Operating System Concepts, 4ème édition, Addison-Wesley, 1994.

C.-J. Theaker, G.-R. Brookes, Introduction aux systèmes d'exploitation : Théorie et pratique, Eyrolles, 1987.

W. Stallings, Operating systems, Maxwell Macmillan International Editions, 1992.

J. Beauquier, B. Bérard, Systèmes d'exploitation : Concepts et algorithmes, EdiScience, 1994.