• Aucun résultat trouvé

Syst`emes temps r´eel et syst`emes embarqu´es Syst`emes d’exploitation

N/A
N/A
Protected

Academic year: 2022

Partager "Syst`emes temps r´eel et syst`emes embarqu´es Syst`emes d’exploitation"

Copied!
56
0
0

Texte intégral

(1)

Syst `emes temps r ´eel et syst `emes embarqu ´es

Syst `emes d’exploitation

Jacques Gangloff, Lo¨ıc Cuvillon

Ecole Nationale Sup ´erieure de Physique de Strasbourg

8 janvier 2008

Jacques Gangloff (ENSPS) Syst `emes temps r ´eel et syst `emes embarqu ´es Ann ´ee scolaire 2007-2008 1 / 56

(2)

Plan

Plan

1 Introduction Plan du cours Bibliographie D ´efinition Historique

Concepts de base

Architectures de syst `emes d’exploitation

2 Processus Introduction

Communication inter-processus (IPC) Ordonnancement (scheduling)

(3)

Introduction

Plan

1 Introduction Plan du cours Bibliographie D ´efinition Historique

Concepts de base

Architectures de syst `emes d’exploitation

2 Processus Introduction

Communication inter-processus (IPC) Ordonnancement (scheduling)

Jacques Gangloff (ENSPS) Syst `emes temps r ´eel et syst `emes embarqu ´es Ann ´ee scolaire 2007-2008 3 / 56

(4)

Introduction Plan du cours

Introduction

D ´efinition Historique

Concepts de base Appels syst `eme Architectures

Processus

Introduction IPC

Ordonnancement

(5)

Introduction Plan du cours

Entr ´ees-sorties

Acc `es au mat ´eriel

Gestionnaire de p ´eriph ´erique Situations de blocage

Gestion de la m ´emoire

Notions de base M ´emoire virtuelle Segmentation

Syst `eme de fichiers

Fichiers et r ´epertoires Architecture

S ´ecurit ´e et protection

Jacques Gangloff (ENSPS) Syst `emes temps r ´eel et syst `emes embarqu ´es Ann ´ee scolaire 2007-2008 5 / 56

(6)

Introduction Bibliographie

A. Tannenbaum et A. Woodhull

Operating systems – Design and implementation Prentice Hall 2006, troisi `eme ´edition.

A. Tannenbaum

Modern operating systems Prentice Hall, deuxi `eme ´edition.

(7)

Introduction D ´efinition

D ´efinition

Un syst `eme d’exploitation (Operating System ou OS en anglais) est un programme r ´ealisant les fonctions ´el ´ementaires suivantes :

Gestion des ressources physiques de l’ordinateur (temps cpu, m ´emoire, p ´eriph ´eriques)

Protection de l’int ´egrit ´e des donn ´ees stock ´ees et ex ´ecut ´ees (en m ´emoire, sur les unit ´es de stockage)

Assurer un niveau d’abstraction du mat ´eriel pour l’utilisateur

Jacques Gangloff (ENSPS) Syst `emes temps r ´eel et syst `emes embarqu ´es Ann ´ee scolaire 2007-2008 7 / 56

(8)

Introduction Historique

La pr ´ehistoire

1642 – La Pascaline

Blaise Pascal invente en 1642 une machine `a calculer m ´ecanique r ´ealis ´ee `a l’aide d’engrenages. Elle permettait de r ´ealiser des additions et des soustrac- tions. Environ 50 exemplaires furent fabriqu ´es mais ce fut un ´echec commercial en raison d’un prix de revient ´elev ´e. En m ´emoire de sa contribution `a l’histoire de l’informatique, Pascal donna son nom `a un langage de programmation.

La pascaline – mus ´ee des arts et m ´etiers – Paris

(9)

Introduction Historique

1822 – Babbage & Lovelace

Charles Babbage invente la machine `a diff ´erence destin ´ee `a faire des calculs polyn ˆomiaux `a l’aide de diff ´erences finies, puis la machine analytique qui jette les bases de l’informatique moderne. Il invente ainsi les concepts de machine s ´equentielle, de s ´eparation des donn ´ees et des codes d’ex ´ecution, de bran- chement conditionnel, de boucles d’ex ´ecution et de p ´eriph ´erique d’impression.

Il collabore avec la math ´ematicienne Ada Lovelace qui ´ecrit pour sa machine ce qui est consid ´er ´e comme le tout premier programme informatique : un algo- rithme de calcul des nombres de Bernoulli. Pour des raisons technologiques (elle devait peser 13 tonnes et ´etait constitu ´ee de 25000 pi `eces), il ne pourra jamais terminer sa machine. Elle fut n ´eanmoins achev ´ee apr `es sa mort et per- mis de r ´ealiser des calculs avec une pr ´ecision de 31 chiffres significatifs.

La machine de Babbage Ada Lovelace

Jacques Gangloff (ENSPS) Syst `emes temps r ´eel et syst `emes embarqu ´es Ann ´ee scolaire 2007-2008 9 / 56

(10)

Introduction Historique

L’antiquit ´e

1945-1955 – Relais et tubes `a vide

A cette ´epoque les ordinateurs sont constitu ´es de relais et/ou d’amplificateurs

`a base de tubes `a vide (par exemple l’ENIAC, 30 tonnes, 17500 tubes `a vide, 1500 relais, maximum 5 jours sans panne). Alan turing invente la machine qui porte son nom et avec elle la notion d’algorithme. John Von Neumann donne son nom `a l’architecture moderne des ordinateurs : une unit ´e de contr ˆole, une unit ´e arithm ´etique et logique, une m ´emoire, des entr ´ees-sorties. La notion de syst `eme d’exploitation est toujours inconnue `a cette ´epoque.

ENIAC – U.S. Army’s Ballistic Research Laboratory

(11)

Introduction Historique

La renaissance

1955-1965 – La r ´evolution du transistor

L’utilisation du transistor en informatique `a partir de 1955 fut une v ´eritable r ´evolution. Le prix et surtout la fiabilit ´e des ordinateurs s’am ´eliora de mani `ere drastique. Les ordinateurs de cette ´epoque se nommaient mainframes et

´etaient encore r ´eserv ´es aux institutions (par exemple l’IBM 7094 avec en- viron 128 Ko de m ´emoire et une fr ´equence d’horloge inf ´erieure `a 1 MHz).

Ils n ´ecessitaient un personnel pl ´ethorique pour sa maintenance. On assiste au d ´eveloppement d’un embryon de syst `eme d’exploitation : les syst `emes de batch.

Dual IBM 7090 – NASA – Projet mercury

Jacques Gangloff (ENSPS) Syst `emes temps r ´eel et syst `emes embarqu ´es Ann ´ee scolaire 2007-2008 11 / 56

(12)

Introduction Historique

L’ ´epoque moderne

1965-1980 – La naissance des syst `emes d’exploitation

Apparition des circuits int ´egr ´es (IBM 360)

Apparition de la notion de multiprogramming (OS/360)

Apparition de l’un des premiers syst `emes d’exploitation `a temps partag ´e : CTSS (Compatible Time-Sharing System). Invention du concept de shell.

IBM 360

(13)

Introduction Historique

1965-1980 – La naissance des syst `emes d’exploitation

Invention de l’anc ˆetre de tous les syst `emes d’exploitation : MULTICS (MULTiplexed Information and Computing Service) par le MIT, les Laboratoires Bell et General Electrics. Apports de MULTICS :

Multi-t ˆaches, multi-utilisateurs

Syst `eme d’invite de commande `a la base du shell actuel

Notion d’anneaux permettant d’isoler l’ex ´ecution du code entre utilisateurs

Segmentation et m ´emoire virtuelle

Syst `eme de fichiers hi ´erarchis ´e, nom longs, liens symboliques, fichiers p ´eriph ´eriques

Apparition d’UNIX : 2 principales versions, System V et BSD. Plus tard, IEEE a d ´evelopp ´e une norme pour rendre le d ´eveloppement sous UNIX compatible : POSIX.

Jacques Gangloff (ENSPS) Syst `emes temps r ´eel et syst `emes embarqu ´es Ann ´ee scolaire 2007-2008 13 / 56

(14)

Introduction Historique

L’ ´epoque contemporaine

1980-nos jours – La d ´emocratisation

Miniaturisation des circuits int ´egr ´es

INTEL commercialise le 8086 en 1980 tandis que Motorola sort le 6502 Apparition de l’IBM PC (Personal Computer) ´equip ´e du syst `eme

d’exploitation MS/DOS et du langage de programmation Microsoft BASIC Apparition du Macintosh : interface graphique utilisant des fen ˆetres et la souris comme pointeur

Windows 1.0 : p ˆale tentative de copie de l’interface d’Apple par Microsoft

IBM PC

(15)

Introduction Historique

1980-nos jours – La d ´emocratisation

Invention de Xwindows par le MIT en 1984

D ´eveloppement de Windows NT (partenariat Microsoft-IBM initi ´e en 1990) qui a conduit `a Windows XP (NT 5.1) et Windows Vista (NT 6.0).

Naissance de Linux en 1991, UNIX-like compatible POSIX, open-source, multi-plateformes

Apparition de MAC OSX d ´eriv ´e d’un UNIX BSD 4.4 compatible POSIX Invention du concept de syst `emes d’exploitation distribu ´es

Ordinateur XO du projet OLPC

Jacques Gangloff (ENSPS) Syst `emes temps r ´eel et syst `emes embarqu ´es Ann ´ee scolaire 2007-2008 15 / 56

(16)

Introduction Concepts de base

Concepts de base

Le Noyau (Kernel)

Programme r ´ealisant toutes les fonctions du syst `emes d’exploitation En g ´en ´eral, le noyau a le degr ´e de privil `ege maximum pour l’acc `es aux ressources mat ´erielles

Le syst `eme d’exploitation (Operating Systems ou OS) est constitu ´e du noyau et de diverses applications p ´eriph ´eriques

(17)

Introduction Concepts de base

Les processus (processes)

Programme en ex ´ecution Contexte d’un processus :

Espace d’adressage propre contenant le code ex ´ecutable, les donn ´ees, une pile

Liste de zones m ´emoire accessibles

Registres : compteur d’instruction, compteur de pile, indexes, registres de calcul en virgule flottante (Floating Point Unit ou FPU), ...

Dans la plupart des syst `emes d’exploitation, les informations relatives `a la gestion du processus sont stock ´ees dans la table des processus (process table)

Les processus sont lanc ´es par exemple au moyen d’un interpr ´eteur de commande (shell). Sous UNIX, le premier processus lanc ´e au moment du d ´emarrage est un script nomm ´einit

Un processus peut cr ´eer un ou plusieurs processus enfant(s) (child process)

Les processus peuvent communiquer ou se synchroniser entre eux : on parle de communication inter-processus (Inter-Process Communication ou IPC)

Le syst `eme d’exploitation peut envoyer des signaux aux processus

Jacques Gangloff (ENSPS) Syst `emes temps r ´eel et syst `emes embarqu ´es Ann ´ee scolaire 2007-2008 17 / 56

(18)

Introduction Concepts de base

Le mode utilisateur (user) et le mode noyau (kernel)

Un processeur moderne a plusieurs modes de fonctionnement (rings) Dans le mode superviseur ou mode noyau ou mode kernel (ring 0) le processeur a acc `es `a toutes les ressources sans restriction. Le code du noyau d’un syst `eme d’exploitation est ex ´ecut ´e dans ce mode.

Dans le mode utilisateur ou user (ring>0, d ´epend de l’OS), le

processeur teste en permanence les permissions de ce qu’il ex ´ecute et g ´en `ere des interruptions logicielles (exceptions) en cas d’infraction. Les processus utilisateur sont ex ´ecut ´es dans ce mode.

Les niveaux de protection d’un processeur

(19)

Introduction Concepts de base

Les fichiers (files)

Syst `eme de rangement et labelisation des donn ´ees ind ´ependant du mat ´eriel.

Rangement dans une arborescence de r ´epertoires (directories)

Association d’un nom de fichier et d’attributs (type de fichier, propri ´etaire, groupe d’utilisateur, droits en lecture/ ´ecriture, attributs sp ´eciaux)

Le syst `eme de fichier (filesystem) g `ere le stockage physique des fichiers en maximisant la robustesse et la performance

Les fichiers sp ´eciaux permettent un interfac¸age simple avec le syst `eme d’exploitation ou le mat ´eriel

Les tuyaux (pipes) sont des fichiers sp ´eciaux permettant l’ ´echange d’information entre processus

Jacques Gangloff (ENSPS) Syst `emes temps r ´eel et syst `emes embarqu ´es Ann ´ee scolaire 2007-2008 19 / 56

(20)

Introduction Concepts de base

Les appels syst `eme (system calls)

Interface entre le noyau et les processus

M ´ecanisme de tr `es bas niveau souvent en langage machine (assembly code) : int ´egr ´e dans une biblioth `eque de fonctions (library)

Le m ´ecanisme des interruptions logicielles est utilis ´e pour passer le contr ˆole au noyau.

Les diff ´erentes cat ´egories d’appels syst `eme (liste non exhaustive) :

Gestion des processus (r ´eplication de processus (fork), attente passive de fin d’ex ´ecution d’un processus enfant (waitpid), lancement de nouveau processus (exec), ...

Gestion des signaux (sigaction)

Gestion du syst `eme de fichier (cr ´eation de fichier (creat), lecture (read),

´ecriture (write), ...

Gestion des volumes de stockage (association (mount), dissociation (unmount), ...

Gestion des gestionnaires de p ´eriph ´erique (ioctl)

...

(21)

Introduction Concepts de base

L’interpr ´eteur de commandes (shell)

Interface primaire entre un utilisateur et le syst `eme

L’utilisateur saisit la commande au clavier apr `es l’invite de commande (prompt)

La sortie par d ´efault (stdout) de la commande se fait sous forme de texte dans la fen ˆetre du shell

Les sorties peuvent ˆetre redirig ´ees soit vers un fichier ou en entr ´ee d’un autre processus (stdin)

Jacques Gangloff (ENSPS) Syst `emes temps r ´eel et syst `emes embarqu ´es Ann ´ee scolaire 2007-2008 21 / 56

(22)

Introduction Architectures de syst `emes d’exploitation

Architectures de syst `emes d’exploitation

Syst `emes monolithiques

Tout le code du noyau tourne dans le ring 0, gestionnaires de p ´eriph ´eriques (drivers) compris

Ces syst `emes n’utilisent que 2 modes de fonctionnement (ring) du processeur : le ring 0 pour le noyau et le ring 1 pour les processus utilisateur.

Le code du noyau est tr `es volumineux

Robustesse moindre : plus de code tourne en mode superviseur R ´eactivit ´e meilleure : le protocole d’acc `es au mat ´eriel est le plus simple possible

Exemple : linux du type monolithique modulaire (les drivers peuvent ˆetre charg ´es `a la demande).

(23)

Introduction Architectures de syst `emes d’exploitation

Syst `emes `a couches (layered systems)

Ce syst `eme est organis ´e en plusieurs niveaux imbriqu ´es qui correspondent `a plusieurs rings du processuer

Dans le sens du plus au moins privil ´egi ´e : distribution du temps

processeur (Computer Processing Unit ou CPU), gestion de la m ´emoire, communication homme-processus, gestion des entr ´ees-sorties

(Inputs/Outputs ou IOs), programmes utilisateurs

Cette architecture logicielle est renforc ´ee par le mat ´eriel : le pentium supporte au moins 4 rings

MULTICS est la seule impl ´ementation de cette architecture `a l’heure actuelle

Jacques Gangloff (ENSPS) Syst `emes temps r ´eel et syst `emes embarqu ´es Ann ´ee scolaire 2007-2008 23 / 56

(24)

Introduction Architectures de syst `emes d’exploitation

Machines virtuelles (virtual machines)

Id ´ee : faire tourner plusieurs syst `emes d’exploitation sur la m ˆeme machine

Un nano-noyau assure l’interfac¸age entre le mat ´eriel et les syst `emes d’exploitation h ˆotes

On parle d’exo-noyau (exokernel) lorsque seule une partie des ressources est partag ´ee. Un exo-kernel ne tourne pas forc ´ement en mode superviseur.

(25)

Introduction Architectures de syst `emes d’exploitation

Exemples de machines virtuelles

Machine virtuelle MSDOS sous Windows (exokernel) : le partage des ressources est g ´er ´e au niveau du noyau de Windows

VMWare (exokernel) : un module noyau doit ˆetre charg ´e pour g ´erer le partage des ressources

Dosbox sous linux : on parle plut ˆot d’ ´emulation car le mat ´eriel est acc ´ed ´e au moyen des m ´ecanismes classiques disponibles dans l’espace user.

Xen (paravirtualiseur ou hyperviseur) : c’est un nano-noyau qui permet d’offrir aux syst `emes d’exploitation h ˆotes une interface avec le mat ´eriel qui est normalis ´ee.

Adeos (nanokernel) : couche logicielle permettant le partage de

ressources mat ´erielles par plusieurs syst `emes d’exploitation concurrents, y compris plusieurs instances d’un m ˆeme syst `eme. Xenomai et RTAI, 2 syst `emes temps-r ´eel bas ´es sur linux sont des clients de adeos.

Jacques Gangloff (ENSPS) Syst `emes temps r ´eel et syst `emes embarqu ´es Ann ´ee scolaire 2007-2008 25 / 56

(26)

Introduction Architectures de syst `emes d’exploitation

Micro-noyau

Id ´ee : mettre le moins de code possible dans le noyau et d ´eporter le maximum de code en mode prot ´eg ´e. Cette architecture est aussi appel ´ee micro-noyau (microkernel)

Ce syst `eme est beaucoup plus robuste qu’un syst `eme monolithique car le nombre de ligne de code en mode supervisuer est tr `es r ´eduit

Les drivers sont d ´eport ´es en mode utilisateur. Si ils commettent une action interdite ils peuvent ˆetre tu ´es (killed) et relanc ´es. Ce syst `eme est donc tol ´erant aux fautes

Les drivers acc `edent au mat ´eriel via un m ´ecanisme logiciel de protection d’o `u une perte de r ´eactivit ´e

Exemple : Mach, Minix, Windows (de type micro-noyau enrichi car certaines fonctions tr `es sollicit ´ees sont mises dans le noyau)

(27)

Introduction Architectures de syst `emes d’exploitation

Syst `emes temps-r ´eel

Le noyau permet de respecter des contraintes temporelles fortes R ´eactivit ´e par rapport aux interruptions mat ´erielles

Cr ´eation de t ˆaches p ´eriodiques avec une fluctuation de la p ´eriode (jitter) minimale

Exemples : VXWorks (micro-noyau temps-r ´eel), QNX (micro-noyau temps-r ´eel UNIX-like), Xenomai (monolithique modifi ´e avec micro-noyau sous-jacent tournant sur une machine virtuelle nano-noyau adeos)

Jacques Gangloff (ENSPS) Syst `emes temps r ´eel et syst `emes embarqu ´es Ann ´ee scolaire 2007-2008 27 / 56

(28)

Processus

Plan

1 Introduction Plan du cours Bibliographie D ´efinition Historique

Concepts de base

Architectures de syst `emes d’exploitation

2 Processus Introduction

Communication inter-processus (IPC) Ordonnancement (scheduling)

(29)

Processus Introduction

Introduction

D ´efinitions

Processus : s ´equence d’instructions ex ´ecut ´ees par le processeur.

Sur un syst `eme multit ˆaches, l’illusion du parall ´elisme est donn ´ee en r ´ealisant un multiplexage temporel de la ressource CPU et en la distribuant entre les diff ´erents processus suivant une loi appel ´ee ordonnancement (scheduling).

Les processus ne sont pas tous ´egaux. Certains sont prioritaires et doivent ˆetre trait ´es rapidement car ils servent par exemple au bon fonctionnement du syst `eme d’exploitation.

Chaque processus fonctionne de mani `ere cloisonn ´ee par rapport aux autres. Le contexte d’un processus est l’ ´etat courant du mat ´eriel (processeur principalement) lorsque ce processus est en cours d’ex ´ecution.

Le d ´ecoupage temporel du temps CPU entre les diff ´erents processus implique une commutation de contexte du mat ´eriel pour sauvegarder le contexte courant du processus en cours de suspension et la restauration du contexte du processus sur le point d’ ˆetre r ´eveill ´e.

Jacques Gangloff (ENSPS) Syst `emes temps r ´eel et syst `emes embarqu ´es Ann ´ee scolaire 2007-2008 29 / 56

(30)

Processus Introduction

Cr ´eation d’un processus

Les 3 situations de cr ´eation d’un processus :

Initialisation du syst `eme

Cr ´eation d’un processus enfant par un processus existant

Cr ´eation d’un processus par un utilisateur

Lors du d ´emarrage d’un syst `eme, un programme bien pr ´ecis est lanc ´e qui est charg ´e du lancement de tous les processus n ´ecessaires au bon fonctionnement du syst `eme. Sous UNIX, ce programme s’appelleinit.

Certains processus actifs en permanence lorsque le syst `eme est en marche s’appellent des d ´emons (daemons). Ils servent `a effectuer des t ˆaches de service telles que la gestion des t ˆaches d’impression, la gestion des connexions externes, la gestion de la fen ˆetre de login sous Xwindows, ...

(31)

Processus Introduction

Fin d’un processus

Les 4 situations d’arr ˆet d’un processus :

Sortie normale sans erreur (volontaire)

Sortie normale avec erreur (volontaire)

Le processus commet une erreur fatale (involontaire)

Le processus est tu ´e par un autre processus (involontaire)

Les 2 premi `eres situations de sortie volontaire sont provoqu ´ees par une instruction sp ´ecifique du processus (exitsous UNIX) avec un code de sortie qui correspond soit `a une sortie normale soit `a une sortie avec erreur.

Les 2 derni `eres situations sont provoqu ´ees par le syst `eme d’exploitation qui arr ˆete imm ´ediatement le processus en cours soit parce qu’il a commis une infraction soit parce qu’un autre utilisateur ayant des droits plus ´elev ´es a envoy ´e un appel syst `eme de type kill.

Jacques Gangloff (ENSPS) Syst `emes temps r ´eel et syst `emes embarqu ´es Ann ´ee scolaire 2007-2008 31 / 56

(32)

Processus Introduction

Hi ´erarchie des processus

Lorsqu’un processus parent cr ´e ´e un ou plusieurs processus enfant(s), les enfants restent li ´es d’une certaine mani `ere aux parents.

Comme les enfants peuvent eux-m ˆemes donner naissance `a des enfants, on peut avoir toute une arborescence ou hi ´erarchie de processus li ´es entre eux.

Il est possible d’envoyer un signal `a une hi ´erarchie de processus.

Lorsqu’un processus enfant s’arr ˆete, le parent en est inform ´e.

Exemple : commandepstreesous UNIX.

(33)

Processus Introduction

Etat des processus

En cours d’ex ´ecution (running) : le CPU ex ´ecute le processus `a cet instant

Pr ˆet (ready) : le processus attend que le CPU ait finit d’ex ´ecuter d’autres processus

Bloqu ´e (blocked) : le processus est en attente d’un ´ev ´enement externe

Jacques Gangloff (ENSPS) Syst `emes temps r ´eel et syst `emes embarqu ´es Ann ´ee scolaire 2007-2008 33 / 56

(34)

Processus Introduction

Les processus l ´egers (threads)

Les threads partagent le m ˆeme espace d’adressage, donc les m ˆemes variables et le m ˆeme code. Seuls les registres du processeur diff `erent.

Les threads peuvent ˆetre g ´er ´ees dans l’espace user ou par le kernel.

Les threads impliquent de g ´erer certains nouveaux probl `emes :

Acc `es simultan ´e `a un m ˆeme fichier : que se passe t’il si un thread ferme le fichier alors que l’autre est en train de le lire ?

Allocation dynamique : si un thread a besoin de plus de m ´emoire en m ˆeme temps qu’un autre ?

Si un thread commet une erreur, affiche la valeur deerrnoet qu’ `a ce moment-l `a un autre thread commet une erreur.

...

(35)

Processus Communication inter-processus (IPC)

Communication inter-processus

Introduction

Comment communiquer des donn ´ees entre processus ? Comment synchroniser la transmission des donn ´ees ? Comment ´eviter les situations de blocage ?

Comment g ´erer l’acc `es concurrent `a des ressources communes ?

Jacques Gangloff (ENSPS) Syst `emes temps r ´eel et syst `emes embarqu ´es Ann ´ee scolaire 2007-2008 35 / 56

(36)

Processus Communication inter-processus (IPC)

Situation de comp ´etition (race condition)

Deux processus ou plus ´ecrivent puis lisent des donn ´ees et le r ´esultat d ´epend de quel processus a ´et ´e le premier.

Exemple : competition entre 2 threads

(37)

Processus Communication inter-processus (IPC)

Section critique (critical section)

Pour ´eviter les situations de comp ´etition, il faut d ´efinir une section critique Les conditions pour r ´ealiser une section critique :

Il ne peut y avoir plus d’un processus dans sa section critique en m ˆeme temps

Un processus en dehors de sa section critique ne peut bloquer un autre processus

Aucun processus ne peut bloquer en permanence pour entrer dans sa section critique

Jacques Gangloff (ENSPS) Syst `emes temps r ´eel et syst `emes embarqu ´es Ann ´ee scolaire 2007-2008 37 / 56

(38)

Processus Communication inter-processus (IPC)

Exclusion mutuelle avec attente active (mutual exclusion with busy waiting)

Alternance stricte r ´esoulue avec un verrou rotatif (spin lock)

Algorithme de Peterson (attente active) : r ´esolution de la comp ´etition entre 2 threads

Instruction processeur

(39)

Processus Communication inter-processus (IPC)

Alternance stricte

while( 1 ) {

while( turn != 0 );

/* section critique */

/* ... */

turn = 1;

/* section non critique */

/* ... */

}

while( 1 ) {

while( turn != 1 );

/* section critique */

/* ... */

turn = 0;

/* section non critique */

/* ... */

}

Jacques Gangloff (ENSPS) Syst `emes temps r ´eel et syst `emes embarqu ´es Ann ´ee scolaire 2007-2008 39 / 56

(40)

Processus Communication inter-processus (IPC)

Algorithme de Peterson

flag[0] = flag[1] = turn = 0;

P0: flag[0] = 1;

turn = 1;

while( flag[1] && turn == 1 );

// do nothing // critical section ...

// end of critical section flag[0] = 0;

P1: flag[1] = 1;

turn = 0;

while( flag[0] && turn == 0 );

// do nothing // critical section ...

// end of critical section flag[1] = 0;

(41)

Processus Communication inter-processus (IPC)

Instruction processeur i86 : XCHG

LOCK: ; mutex pointer is in EBX; clobbers EAX XOR EAX, EAX ; EAX = 0

XCHG EAX, [EBX] ; atomic exchange AND EAX, EAX ; test if EAX = 0

JZ LOCK ; if we got a zero, spin-wait RET

UNLOCK: ; mutex pointer is in EBX MOV [EBX], 1 ; release the lock RET

Jacques Gangloff (ENSPS) Syst `emes temps r ´eel et syst `emes embarqu ´es Ann ´ee scolaire 2007-2008 41 / 56

(42)

Processus Communication inter-processus (IPC)

Probl `eme d’inversion de priorit ´e

Consid ´erons 2 processus H de priorit ´e haute et B de priorit ´e basse qui partagent un acc `es `a une ressource commune

La strat ´egie d’ordonnancement fait que H est plac ´e en mode((running)) d `es qu’il est((ready))

Supposont que B soit dans une section critique et qu’ `a ce moment H passe du mode((blocked))au mode((ready)).

H est donc mis en mode((running))et B est mis en mode((ready)). Or H veut acc ´eder `a la section critique et bloque donc sur le m ´ecanisme d’exclusion mutuelle sans aucun espoir que B passe en mode((running)) et lib `ere le verrou.

Sommeil et r ´eveil d’un processus (Sleep and wakeup)

Pour ´eviter les attentes actives, utilisation desleepetwakeup.

(43)

Processus Communication inter-processus (IPC)

S ´emaphore

Methode classique pour acc ´eder `a une ressource commune

Le s ´emaphore est un compteur qui est initialis ´e `a la valeur du nombre de ressources partag ´ees `a prot ´eger

Lorsqu’il n’y a qu’une seule ressource `a partager, on parle de s ´emaphore binaire ou mutex

Jacques Gangloff (ENSPS) Syst `emes temps r ´eel et syst `emes embarqu ´es Ann ´ee scolaire 2007-2008 43 / 56

(44)

Processus Communication inter-processus (IPC)

S ´emaphores : exemple du producteur-consommateur

BufferSize = 3;

semaphore mutex = 1; // access to critical section semaphore empty = BufferSize; // number of empty slots semaphore full = 0; // number of full buffer slots Producer() {

int widget;

while (TRUE) { // loop forever

make_new(widget); // create a new widge

down(empty); // decrement the empty semaphore down(&mutex); // enter critical section

put_item(widget); // put widget in buffer up(&mutex); // leave critical section

up(&full); // increment the full semaphore }

}

(45)

Processus Communication inter-processus (IPC)

S ´emaphores : exemple du producteur-consommateur

Consumer() { int widget;

while (TRUE) { // loop forever

down(&full); // decrement the full semaphore down(&mutex); // enter critical section

remove_item(widget);// take a widget

up(&mutex); // leave critical section

up(empty); // increment the empty semaphore consume_item(widget);// consume the item

} }

Jacques Gangloff (ENSPS) Syst `emes temps r ´eel et syst `emes embarqu ´es Ann ´ee scolaire 2007-2008 45 / 56

(46)

Processus Communication inter-processus (IPC)

Mutex

Un mutex est un cas particulier d’un s ´emaphore qui n’aurait que 2 ´etats : 0 ou 1

Un mutex est typiquement utilis ´e lorsqu’il faut prot ´eger une section critique

(47)

Processus Communication inter-processus (IPC)

Moniteurs (monitors)

Ensemble de proc ´edure, variables, structures de donn ´ees regroup ´ees dans un objet sp ´ecial appel ´e moniteur

Les processus externes au moniteur peuvent appeler les proc ´edures du moniteur mais une seule proc ´edure du moniteur ne peut ˆetre active `a la fois

La synchronisation est g ´er ´ee par le compilateur qui sait que le moniteur est une structure sp ´eciale. C’est le compilateur qui rajoute les

m ´ecanismes de synchronisation ad ´equats.

Jacques Gangloff (ENSPS) Syst `emes temps r ´eel et syst `emes embarqu ´es Ann ´ee scolaire 2007-2008 47 / 56

(48)

Processus Communication inter-processus (IPC)

Transmission de message (message passing)

Transmission de messages inter-processus

Les fonctionsendetreceivepermettent de passer des messages en garantissant l’int ´egrit ´e des donn ´ees

(49)

Processus Ordonnancement (scheduling)

Ordonnancement

Introduction

Partage du temps CPU entre les processus. Le passage d’un processus

`a un autre s’appelle la commutation de processus. C’est l’ordonnanceur du noyau qui effectue cette commutation.

La prise de d ´ecision des commutations s’effectue de mani `ere p ´eriodique (”tic” du syst `eme)

Deux principaux types de comportement des processus : processus d ´edi ´es aux entr ´ees-sorties et processus d ´edi ´es aux calculs

Quand commuter les processus : quand un processus se termine, quand un processus bloque sur une entr ´ee/sortie, un s ´epaphore, ...

Eventuellement : quand un nouveau processus est cr ´e ´e, quand une interruption mat ´erielle intervient.

Diff ´erents objectifs d’ordonnancement : ´equit ´e, veiller `a ce qui la politique d’ordonnencement soit respect ´ee, ´equilibre. Pour les syst `emes

interactifs : temps de r ´eponse court, ergonomie adapt ´ee aux attentes des utilisateurs. Pour les syst `emes temps-r ´eel : respect strict des d ´elais, d ´eterminisme.

Jacques Gangloff (ENSPS) Syst `emes temps r ´eel et syst `emes embarqu ´es Ann ´ee scolaire 2007-2008 49 / 56

(50)

Processus Ordonnancement (scheduling)

Ordonnancement FCFS ou FIFO

First Come First Served : les processus sont d ´emarr ´es dans l’ordre o `u ils sont lanc ´es et tournent jusqu’ `a ce qu’ils bloquent

Inconv ´enient : pas adapt ´e aux syst `emes interactifs

(51)

Processus Ordonnancement (scheduling)

Ordonnancement round robin

Chaque processus obtient un quantum de temps CPU. L’ordonnanceur distribue de mani `ere cyclique ces quantums aux processus.

Exemple de Pb : avec un quantum de 100ms, si 10 utilisateur appuient simultan ´ement sur une touche du clavier, les 10 processus

correspondants vont ˆetre r ´eveill ´es successivemnt et consommer leur quantum. Le dernier utilisateur servi devra attendre 1s.

Jacques Gangloff (ENSPS) Syst `emes temps r ´eel et syst `emes embarqu ´es Ann ´ee scolaire 2007-2008 51 / 56

(52)

Processus Ordonnancement (scheduling)

Ordonnancement par priorit ´e (priority scheduling)

Tout les processus ne sont pas ´egaux : certains doivent ˆetre trait ´es prioritairement

Avec un ordonnancement par priorit ´e, le syst `eme donne toujours la main

`a la t ˆache de plus haute priorit ´e

La priorit ´e peut ˆetre modifi ´ee dynamiquement `a chaque periode de l’ordonnanceur pour ´eviter qu’un seul processus n’occupe tout le temps CPU

(53)

Processus Ordonnancement (scheduling)

Ordonnancement garanti (guaranteed scheduling)

Garanti un partage ´equitable du temps CPU entre utilisateur ayant une m ˆeme priorit ´e

Le syst `eme conserve un historique du temps CPU cumul ´e de tous les processus afin de r ´ealiser l’ ´equilibre

Jacques Gangloff (ENSPS) Syst `emes temps r ´eel et syst `emes embarqu ´es Ann ´ee scolaire 2007-2008 53 / 56

(54)

Processus Ordonnancement (scheduling)

Ordonnancement par lotterie (lottery scheduling)

L’ordonnancement garanti est difficile `a impl ´ementer.

Une des solutions consiste `a tirer au sort quel processus a droit au CPU Plus un processus est prioritaire, plus il dispose de tickets parmis l’ensemble des tickets soumis au tirage al ´eatoire

(55)

Processus Ordonnancement (scheduling)

Ordonnancement de processus l ´eger (thread scheduling)

L’ordonnancement des threads n’est possible que pour les threads noyau Il est possible de d ´efinir un politique d’ordonnancement des threads diff ´erente de celle des processus

Jacques Gangloff (ENSPS) Syst `emes temps r ´eel et syst `emes embarqu ´es Ann ´ee scolaire 2007-2008 55 / 56

(56)

Processus Ordonnancement (scheduling)

Ordonnancement temps-r ´eel (real-time scheduling)

Doit ˆetre d ´eterministe en temps

Les t ˆaches p ´eriodiques doivent ˆetre r ´eveill ´ees avec une p ´eriodicit ´e parfaite (erreur<100 micro-secondes)

Le temps de r ´eponse aux interruptions doit ˆetre le plus court possible.

Références

Documents relatifs

timers : expiration d’un timer ou un tick (p ´eriode) d’horloge syst `eme autres p ´eriph ´eriques : touche clavier, clic souris, paquet ethernet,.. Exceptions et Interruptions

– Il ne peut y avoir plus d’un processus dans sa section critique en mˆeme temps – Un processus en dehors de sa section critique ne peut bloquer un autre

3 Proposer un exemple dans lequel la valeur renvoy´ ee par une lecture est celle transmise au cours d’une ´ ecriture : penser ` a prot´ eger lecture et ´ ecriture par un mutex.

Modifier le pilote afin que lors d’une ´ ecriture dans ce pseudo-fichier, la valeur ´ ecrite dans un premier temps (echo &#34;valeur&#34; &gt; fichier) soit m´ emoris´ ee,

• Alternative au temps r´ eel : le mat´ eriel reconfigurable se charge des op´ erations rapides et d´ echarge le processeur de tˆ aches imm´ ediates (UART, FIFO, ADC du coldfire

• Partant de l’exemple de module avec timer en /dev, impl´ ementer une m´ ethode read qui se d´ ebloque ` a intervalles de temps r´ eguliers (utiliser un mutex). • Proposer

• depuis le CPU (Linux) : pilote noyau pour communiquer avec les p´ eriph´ eriques. • description de la configuration mat´ erielle par le m´ ecanisme des devicetree consult´ e par

Notion de syst` eme embarqu´ e Architecture des processeurs Mat´ eriel v.s logiciel Rappels de C Les microcontrˆ oleurs 8 bits G´ en´ eralit´ es sur les syst` emes num´ eriques