Chapitre 2 Les principes de base des excutifs multitches - PowerPoint PPT Presentation

1 / 56
About This Presentation
Title:

Chapitre 2 Les principes de base des excutifs multitches

Description:

Architecture des Syst mes S rs Module SI144. Ecole des Mines de ... la t che ' attend activement ' : occupation du processeur pour tester cycliquement que la ... – PowerPoint PPT presentation

Number of Views:166
Avg rating:3.0/5.0
Slides: 57
Provided by: frano1
Category:

less

Transcript and Presenter's Notes

Title: Chapitre 2 Les principes de base des excutifs multitches


1
Chapitre 2Les principes de base des exécutifs
multi-tâches
Ingénieur Civil des Mines 2ème
année Architecture des Systèmes Sûrs Module
SI144
  • 2008-2009
  • Françoise Simonot-Lion (simonot_at_loria.fr)

2
Plan
  • Les principes de base des exécutifs multi-tâches
    temps réel
  • Tâches et Coopération de tâches (problèmes et
    solutions)
  • Gestion du temps
  • Le type  tâche  dans un exécutif Temps Réel
  • Les problèmes posés par les exécutifs multi-tâches

3
Plan
  • Les principes de base des exécutifs multi-tâches
    temps réel
  • Tâches et Coopération de tâches (problèmes et
    solutions)
  • Gestion du temps
  • Le type  tâche  dans un exécutif Temps Réel
  • Les problèmes posés par les exécutifs
    multi-tâches

?
4
Tâches
  • Tâche
  • agent responsable de lexécution dun programme
    (tâche vs processus)
  • Tâche immédiate
  • tâche  démarrée  par un signal apparaissant à
    linterface de lapplication (interruption)
  • Tâche différée
  • tâche  démarrée  par une autre tâche
  • Priorité

5
Coopération de tâches
  • Relations entre les tâches
  • tâches dépendantes
  • partage de ressources entre tâches
  • synchronisation entre tâches
  • communication entre tâches
  • tâches indépendantes

6
Partage de ressources - exclusion mutuelle -
section critique
  • Ressources
  • matérielles processeur - périphérique
    (imprimante, ) - disque
  • logicielles un mot de données en mémoire - un
    buffer de données - sous-programme fichier
  • Ressources partageables simultanément
  • Ressources partageables séquentiellement
  • Capacité dune ressource nombre daccès
    simultanés

7
Partage de ressources
  • Quel est le problème ?
  • Exemple

8
Partage de ressources
  • N est une ressource partageable séquentiellement
  • La capacité de N est 1 (ressource critique)

9
Partage de ressources
Suite dinstructions de la section critique
10
Partage de ressources
  • 3 classes de solutions
  • masquage / démasquage dinterruptions
  • attente active
  • verrous et sémaphores

11
Partage de ressources
  • Solution 1 masquage / démasquage des
    interruptions
  • Programmation de lexclusion mutuelle
  • conditions initiales
  • les interruptions sont démasquées
  • protection de la section critique
  • masquer les interruptions / entrée en SC
  • ... les instructions de la SC ...
  • démasquer les interruptions / sortie de SC

12
Partage de ressources
  • Solution 1 masquage / démasquage des
    interruptions
  • Avantage
  • ne nécessite que les services matériels de la
    machine
  • Problème
  • paralyse le système dentrées / sorties
  • inopérant dans un contexte multi-processeurs

processeur 1 accumulateur A1
processeur 2 accumulateur A2
mémoire commune variable N
13
Partage de ressources
  • Solution 2 attente active
  • il faut un mot accessible par toutes les
    tâches
  • une instruction  Test Set  (TAS)
  • typedef enum libre,occupe etat
  • etat TAS (etat rp)
  • etat aux
  • aux rp rp occupe
  • return (aux)

instruction non interruptible
14
Partage de ressources
  • Solution 2 attente active
  • Programmation de lexclusion mutuelle
  • conditions initiales
  • etat r libre
  • protection de la section critique
  • do / entrée en SC
  • while ( TAS(r) occupe )
  • ... les instructions de la SC ...
  • r libre / sortie de SC

15
Partage de ressources
  • Solution 2 attente active
  • Avantage
  • ne nécessite que les services matériels de la
    machine (instruction TAS)
  • Problème
  • la tâche  attend activement  occupation du
    processeur pour tester cycliquement que la
    ressource soit libre
  • insertion dans le code de lapplication des
    mécanismes de protection de la ressource

16
Partage de ressources
  • Solution 3 verrou
  • un type  verrou 
  • des fonctions daccès

17
Partage de ressources
  • Solution 3 verrou
  • Programmation de lexclusion mutuelle
  • conditions initiales
  • struct verrou v ouvert , ?
  • protection de la section critique
  • verrouiller (v) / entrée en SC
  • ... les instructions de la SC ...
  • deverrouiller (v) / sortie de SC

18
Partage de ressources
  • Solution 3 verrou
  • Avantage
  • efficace quelque soit la structure de la machine
  • Problème
  • les services  verrouiller  et  deverrouiller 
    doivent être disponibles pour lapplication
    exécutif temps réel
  • difficile à utiliser pour des ressources de
    capacité gt 1

19
Partage de ressources
  • Solution 4 sémaphore
  • un type  semaphore 
  • des fonctions daccès

20
Partage de ressources
Sémaphore à compte
  • Solution 4 sémaphore
  • Programmation de lexclusion mutuelle
  • conditions initiales (n est la capacité de la
    ressource)
  • struct semaphore s n , ?
  • protection de la section critique
  • P (s) / entrée en SC
  • ... les instructions de la SC ...
  • V (s) / sortie de SC

21
Partage de ressources
  • Solution 4 sémaphore
  • Avantage
  • efficace quelque soit la structure de la machine
  • utilisable pour protéger laccès à une ressource
    de capacité gt 1
  • Problème
  • les services  P  et  S  doivent être
    disponibles pour lapplication exécutif temps
    réel

22
Synchronisation entre tâches
  • Exprime le contrôle dune tâche sur une autre
    tâche.
  • action directe
  • une tâche agit directement sur une autre tâche
    en la désignant explicitement
  • action indirecte
  • une tâche agit sur un objet - cette action
    pourra avoir un effet sur une ou plusieurs autres
    tâches

23
Synchronisation entre tâches
  • action directe
  • services

24
Synchronisation entre tâches
  • action indirecte
  • exemple
  • C avant B

25
Synchronisation entre tâches
  • 3 classes de solutions (exécutif multi-tâche)
  • sémaphores et événements
  • boîtes aux lettres

communication
  • rendez-vous

26
Synchronisation entre tâches
  • Solution 1 sémaphore
  • Programmation de la synchronisation
  • conditions initiales
  • struct semaphore sync 0 , ?
  • expression de la synchronisation

P(sync)
Sémaphore booléen
V(sync)
27
Synchronisation entre tâches
  • Solution 2 événements
  • un type  événement 
  • des fonctions daccès

typedef enum arrive, non_arrive
etat struct evenement e_etat e
e_liste f
  • attendre
  • signaler
  • effacer

28
Synchronisation entre tâches
  • Solution 2 événements
  • fonctions daccès

29
Synchronisation entre tâches
  • Solution 2 événement
  • Programmation de la synchronisation
  • conditions initiales
  • struct evenement EVT effacer(EVT)
  • expression
  • de la synchronisation

attendre(EVT)
signaler(EVT)
30
Synchronisation entre tâches
  • Solution 3 boîtes aux lettres
  • synchronisation communication

struct boite_aux_lettres b_buffer buf b_file
f
  • un type  boîte aux lettres 
  • des fonctions daccès
  • pour stocker les tâches  en attente 

pour stocker les messages
  • envoyer
  • retirer
  • constructeur de boîte aux lettres

31
Synchronisation entre tâches
  • Solution 3 boîte aux lettres

void envoyer (message m, struct boite_aux_lettres
bp) tache t_c , t if ( pleine(bp) )
t_ctache_courante()
bp-gtfajouter(t_c,bp-gtf) ... / t passe en
attente de place / ranger(m,bp-gtbuf)
if ( ! vide(bp-gtf) ) tchoisir(bp-gtf)
bp-gtfoter(t,bp-gtf) ... / t passe prête
/
fonction daccès  envoyer 
32
Synchronisation entre tâches
  • Solution 3 boîte aux lettres

void retirer (message mp, struct
boite_aux_lettres bp) tache t_c , t
if ( vide(bp-gtf) ) t_ctache_courante()
bp-gtfajouter(t_c,bp-gtf) ... /t_c passe
en attente de message / (mp)
extraire(b-gtbuf) if ( ! vide(bp-gtf) )
tchoisir(bp-gtf) bp-gtfoter(t,bp-gtf)
... / t passe prête /
fonction daccès  retirer 
33
Synchronisation entre tâches
  • Solution 3 boîte aux lettres
  • Programmation de la synchronisation
  • conditions initiales
  • struct boite_aux_lettres BAL /
    construction /
  • expression
  • de la synchronisation

retirer(M1,BAL)
envoyer(M2,BAL)
34
Synchronisation entre tâches
  • Solution 4 rendez-vous
  • synchronisation forte communication
  • Définition
  • Un rendez-vous est un objet qui permet à 2 tâches
    de se synchroniser en un point de leur exécution
  • la première des tâches, arrivée en ce point,
    attend lautre
  • lorsque les 2 tâches ont atteint ce point, une
    séquence de code unique est exécutée
  • puis les tâches continuent chacune leur exécution
    propre.
  • Exemple les  rendez-vous  sont implantés dans
    le langage Ada

35
Synchronisation entre tâches
  • Solution 4 rendez-vous
  • synchronisation forte communication

implémenté sous forme de file
  • un type  rendez-vous 
  • des fonctions daccès - syntaxe Ada
  • - symétrie du comportement
  • - dissymétrie dans lexpression

36
Synchronisation entre tâches
  • Solution 4 rendez-vous
  • synchronisation forte communication

37
Synchronisation entre tâches
  • Solution 4 rendez-vous (syntaxe Ada)
  • Programmation de la synchronisation
  • conditions initiales
  • entry RV -- construction
  • expression
  • de la synchronisation

entry RV
T2.RV
accept RV
38
Synchronisation entre tâches
  • Solution 4 rendez-vous (syntaxe Ada)
  • Programmation de la synchronisation
  • conditions initiales
  • entry RV -- construction
  • expression
  • de la synchronisation

entry RV
accept RV
T1.RV
39
Plan
  • Les principes de base des exécutifs multi-tâches
    temps réel
  • Tâches et Coopération de tâches (problèmes et
    solutions)
  • Gestion du temps
  • Le type  tâche  dans un exécutif Temps Réel
  • Les problèmes posés par les exécutifs
    multi-tâches

?
40
Gestion du temps
  • Françoise Simonot-Lion
  • le temps qui passe
  • un objet en mémoire pour mémoriser la  date
    courante 

Variable heure_courante
  • des services daccès à cet objet (exécutif temps
    réel)

typedef struct int jour,mois,annee
int heures,minutes,secondes int ms,us
heure heure get_heure_courante (
) void set_heure_courante (heure h)
41
Gestion du temps
  • Françoise Simonot-Lion
  • le temps qui passe (mécanismes internes)
  • un dispositif signalant lécoulement dun
    intervalle de temps
  •  timer 
  • interruption associée
  • résolution dhorloge dt
  • une tâche immédiate de gestion de linterruption
    associée au timer

42
Gestion du temps
  • Françoise Simonot-Lion
  • planifier lavenir ...
  • un objet mémorisant les actions à faire et la
    date prévue
  • échéancier liste de fiches ordonnées par date
    croissante

début
. . .
nil
A1 action D1 heure
A2 action D2 heure
Ai action Di heure
une fiche
Propriété get_heure_courante( ) ? D1 ? D2 ? . .
. ? Di
43
Gestion du temps
  • Françoise Simonot-Lion
  • planifier lavenir ...
  • des informations
  • typedef struct
  • int jour,mois,annee
  • int heures,minutes,secondes
  • int ms,us
  • heure
  • typedef enum . . . action
  • typedef struct fiche_
  • action A
  • heure D
  • struct fiche_ S fiche
  • struct fiche debut
  • des services daccès à léchéancier

fiche planifier_action(action a, heure
date) void decommander_action(fiche f)
44
Gestion du temps
  • Françoise Simonot-Lion
  • planifier lavenir ... (mécanismes internes)
  • fiche planifier_action(action a,heure date)
  • insertion dune information à sa place dans une
    liste ordonnée
  • décommander_action(fiche f)
  • suppression dun élément dans une liste ordonnée

action, heure
ordre dates des fiches croissantes
une fiche
45
Gestion du temps
  • Françoise Simonot-Lion
  • traiter une action planifiée à la date prévue ...
    (mécanisme interne)

timer
  • tâche immédiate de gestion du timer
  • void ssp_timer ( )
  • heure dc
  • incrémenter_heure_courante ( )
  • dc get_date_courante()
  • while ((debut ! null) (debut-gtD dc))
  • traiter(debut-gtA)
  • debut oter_premier(debut)

46
Gestion du temps
  • Françoise Simonot-Lion
  • traiter une action planifiée à la date prévue ...
    (mécanisme interne) - exemple

47
Plan
  • Les principes de base des exécutifs multi-tâches
    temps réel
  • Tâches et Coopération de tâches (problèmes et
    solutions)
  • Gestion du temps
  • Le type  tâche  dans un exécutif Temps Réel
  • Les problèmes posés par les exécutifs
    multi-tâches

?
48
Le type tâche dans les exécutifs temps réel
  • Françoise Simonot-Lion
  • une tâche est un objet caractérisé par

- priorité (calculée hors ligne ou en ligne)
- état courant
49
Le type tâche dans les exécutifs temps réel
  • Françoise Simonot-Lion
  • priorité dune tâche
  • caractéristique utilisée par lordonnanceur pour
    lattribution du processeur à des tâches
    concurrentes (voir chapitre Ordonnancement)
  • ordonnanceur des tâches immédiates
  • (niveaux dinterruption)
  • ordonnanceur des tâches différées

50
Le type tâche dans les exécutifs temps réel
  • Françoise Simonot-Lion
  • Etats dune tâche

Tâche crée
Tâche participant à lordonnancement
51
Le type tâche dans les exécutifs temps réel
  • Françoise Simonot-Lion
  • Transition détats des tâches

inexistante
52
Plan
  • Les principes de base des exécutifs multi-tâches
    temps réel
  • Tâches et Coopération de tâches (problèmes et
    solutions)
  • Gestion du temps
  • Le type  tâche  dans un exécutif Temps Réel
  • Les problèmes posés par les exécutifs
    multi-tâches

?
53
Les problèmes posés par les exécutifs temps réel
  • Françoise Simonot-Lion
  • Propriétés requises par une application temps
    réel
  • safety (sûreté) something bad will not happen
    (rien de mauvais narrivera)
  • liveness (vivacité ) something good will happen
    (il se passera quelque chose de bon)

54
Les problèmes posés par les exécutifs temps réel
  • Françoise Simonot-Lion
  • Interblocage (deadlock)

Tâche 1 P(S1) P(S2) V(S2) V(S1)
Tâche 2 P(S2) P(S1) V(S1) V(S2)
t
55
Les problèmes posés par les exécutifs temps réel
  • Françoise Simonot-Lion
  • Famine (starvation - lockout)
  • Une famine se produit lorsquune tâche qui veut
    accéder à une ressource ne peut jamais le faire
    car cette ressource est indéfiniment détenue par
    dautres tâches.
  • Exemple tâche de forte priorité et occupant
    indéfiniment le processeur

56
Les problèmes posés par les exécutifs temps réel
  • Françoise Simonot-Lion
  • Exemple famine de rédacteurs dans un modèle
     lecteur/rédacteur  (les lecteurs sont
    prioritaires sur les rédacteurs)
  • Les lecteurs excluent les rédacteurs
  • Les lecteurs ne sexcluent pas entre eux
  • Les rédacteurs sexcluent entre eux
  • Les rédacteurs excluent les lecteurs

R2requête écriture!
R1requête écriture!
L2requête lecture
L4requête lecture
L4requête lecture
L1requête lecture
L3requête lecture
t
L1
L2
L3
L4
R1
R2
Accès à la ressource
Write a Comment
User Comments (0)
About PowerShow.com