Scientifique
École Nationale Supérieure d’Informatique (ESI)
Oued-Smar Alger
É cole Doctorale
Sciences et Technologies de l’Information et de la Communication
MÉMOIRE
Présenté pour l’obtention du diplôme de
MAGISTER
Spécialité : Informatique
Thème
Mohamed BERKOUK
Table de Matières
Introduction Générale 13
I.1- Introduction 15
I.10.1- Introduction 20
I.10.2.1- Périodique 21
I.13- Conclusion 30
II.1- Introduction 32
II.9- Conclusion 45
III.1- Introduction 47
III.8- Conclusion 56
IV.1- Introduction 59
IV.3- Conclusion 67
V.1- Introduction 69
V.2- La simulation 69
V.9- Conclusion 99
Bibliographie 102
Réel 48
TR 96
V.30 Résultats d’exécution avec changement de nombre de dépendances des
données temps réel dérivées 97
Résumé :
Les systèmes temps réel sont utilisés de plus en plus dans la vie et dans
plusieurs domaines, tout en respectant l’échéance d’exécution des tâches. Ceci
représente un grand enjeux. Plusieurs applications temps réel utilisent une grande
quantité de données, ce qui nécessite des mécanismes qui ne sont pas fournis par
les systèmes temps réel. Elles sont fournies par les SGBD. Un système temps réel
manipule des données classiques et données temporelles de base ou dérivées . Les
SGBD classiques ne peuvent pas garantir le respect des contraintes temporelles,
ce qui a permis de donner une naissance pour les Système de gestion des bases de
données temps réel (SGBDTR). Les travaux effectués sur le contrôle de
concurrence des transactions dans les SGBDTR s’appuient sur les techniques de
contrôle de concurrence appliquées dans les SGBD classiques et sur les
techniques d’ordonnancement des tâches dans les systèmes temps réel.
Notre travail consiste à la mise en œuvre d’un simulateur pour évaluer les
différents protocoles d’ordonnancement et contrôle de concurrence.
Abstract
Real Time Systems are used more and more in several domains while
respecting the time frame allocated for each task. This is the biggest stake and
challenge. Several applications use a huge amount of data which require a number
of mechanisms that are not made available by Real Time Systems. These are made
available by DBMS. A Real Time System manipulate classical data as well as
database or derived temporal data . Classical DBMSs cannot guarantee the
respect of temporal constraints. This has yielded Real Time DBMS.
Mots clés: Système temps réel , SGBD Temps réel, Données temporelles ,
Protocoles d’ordonnancement et contrôle de concurrence.
Keywords : Real Time System, Real Time DBMS, Temporal Data, Scheduling
Protocols, Concurrency Control
INTRODUCTION
GÈNÈRALE
Introduction générale
Introduction Générale
Plusieurs applications temps réel utilisent des quantités importantes de
données temps réel comme les applications destinées pour le contrôle du trafic
aérien, contrôle des centrales nucléaires, des applications de commerce
électronique, systèmes multimédia etc. Ces applications contrairement aux systèmes
classiques doivent garantir l’attribution des résultats dans des délais limités. Ces
applications doivent manipuler des données temps réel soient des données
sensorielles qui proviennent de l’environnement contrôlé par le système ou des
données dérivées calculées à partir d’autres données. Ce qui signifie que dans les
SGBDTR (Système de Gestion de Bases de Données Temps Réel), les données
représentent la capture de l´état du monde réel.
Vue l’existence des conflits d’accès aux données, les SGBD classiques
utilisent des algorithmes pour le contrôle de concurrence. Les techniques de
transactions sérialisables utilisées par les systèmes de gestion de bases de
données classiques, ne sont pas applicables pour les bases de données temps
réel car les transactions qui ne respectent pas leurs échéances doivent être
rejetées car on ne doit pas seulement respecter les contraintes logiques mais
aussi les contraintes temporelles. Donc, pour pouvoir répondre aux deux
contraintes au même temps, un nouveau type de système de gestion de base
de données a connu le jour c’est les SGBD Temps Réel [RAM93a]. Les SGBD
Temps Réel utilisent des techniques de contrôle de concurrence de bases de
données traditionnelles pour contrôler les accès concurrents au même granule de
donnée d’une part et d’autre part utilisent des techniques d’ordonnancement de
Page 15
Introduction générale
tâches des systèmes temps réel dans le but d’ordonnancer les transactions afin
de garantir leur exécution avant la fin de leurs échéances.
Page 16
CHAPITRE I
1. Introduction :
Ce chapitre traite deux parties. La première présente les données de base sur
les systèmes temps réel et la deuxième concerne les principes d’ordonnancement
des tâches temps réel.
18
Chapitre I Système Temps Réel
type du système est utilisé dans les calculs scientifiques et gestion de bases de
données.
Le domaine médical
Le domaine militaire
Le contrôle aérien
Le domaine de télécommunication
Le contrôle d’équipements
Le domaine aérospatial
Le multimédia
Le domaine industriel
19
Chapitre I Système Temps Réel
système doit décider des réactions pendant un temps limité (échéance du temps)
pour assurer un état stable du système.
Capteurs Système
Procédé informatiqu
Actionneurs e
Figure I.1 : Représentation schématique d’un système temps réel [COT 05]
Attribution des ordres de commande aux actionneurs pour agir sur le procédé
physique (modification de l’état physique du système) ou attribution des
ordres d’affichage uniquement.
20
Chapitre I Système Temps Réel
[COT 05].
Les applications mixtes (Firm), où on trouve des tâches avec des contraintes
strictes et d’autre souple. La réponse du système dans les délais est
essentielle. Le résultat ne sert plus à rien une fois le délai est dépassé comme
par exemple les transactions en bourse.
21
Chapitre I Système Temps Réel
La prévisibilité : un STR doit être conçu tel que ses performances soient
définies dans le pire des cas. Contrairement aux systèmes classiques où les
performances sont définies en termes de moyenne.
Une autre caractéristique importante est que la majorité des systèmes temps
réel sont embarqués : ils sont des composants d’un grand système qui interagit avec
le monde physique. Ceci peut être la source primaire de la complexité de ces
systèmes, car le monde physique se comporte d’une manière indéterminée avec des
événements concurrents qui arrivent d’une manière asynchrones. Donc les systèmes
doivent aussi être concurrents et résoudre les problèmes de synchronisation. Les
systèmes embarqués sont utilisés dans plusieurs domaines soit militaire, médicale
ou d’autre et la majorité sont distribués.
Une tâche est une activité qui consomme des ressources de la machine
informatique (RAM, CPU). Une tâche temps réel représente l’unité de base des
programmes temps réel. Les taches temps réel sont des entités qui composent un
programme d’un système temps réel.
Les tâches temps réel sont associées à des traitements d’entrées sorties ou
des calculs.
une tâche temps réel est caractérisée par un ensemble de critères temporels
caractérisé par la date de réveil qui représente le moment de déclenchement de la
requête d’exécution dans laquelle la tâche devient ordonnançable. Le
déclenchement de la tâche peut être interne selon une période d’horloge ou externe
(interruption ou déclenchée à partir d’une autre tâche). Sa durée maximale
d’exécution qui représente le délai d’occupation du micro processeur (Figure I.2) ,
cette période est caractérisée par C et son délai maximal acceptable pour son
exécution D (temps de réponse maximal réservé à la tâche pour se terminer). La
figure suivante résume ces différentes propriétés temporelles. Des relations de
précédences peuvent être définies pour indiquer des restrictions sur l'ordre
d'exécution des tâches. Les tâches peuvent aussi partager des ressources (autre
que le processeur) et ces contraintes doivent être spécifiées et respectées par le
système.
La figure suivante représente un modèle de tâches
C
Temps
r tde tfe d
C (temps d’exécution) = tfe (temps fin d’exécution) - tde (temps début d’exécution).
d (échéance) = r+D
23
Chapitre I Système Temps Réel
I.10.2.1 Périodique :
Une tâche temps réel périodique τi est défini par Le quadruple (ri,Ci,Di,Pi) , le
R concerne le temps de déclenchement , la propriété C concerne la durée
d’exécution , D représente la durée maximal d’exécution et P est la durée entre deux
activations ( Période d’échantillonnage) .
P (Reactivation) P
D D
C C
Temp
r0 d0 r1 d1 r2
24
Chapitre I Système Temps Réel
P1 (Réactivation) Minimum P2
D D
C C
0 Temp
r0 d0 r1 d1 r2
P (Reactivation) Aléatoire P
D D
C C
Temp
r0 d0 r1 d1 r2
Préemptible : est une tâche active qui peut être arrêtée temporairement pour
que le processeur exécute une autre tâche de priorité supérieure.
25
Chapitre I Système Temps Réel
Non Préemptible : Une fois la tâche activée aucune autre tâche même de
priorité supérieure ne peut être interrompue jusqu’à sa fin d’exécution.
Tâche indépendante : c’est une tâche isolée, qui n’a aucune relation de
précédence avec d’autre tâches et ne partage aucune ressources aves les
autre tâches.
Une instance de tâche peut avoir pendant sa durée de vie les états décrits
dans le schéma suivant (Fig I.6) :
Blocage
Déblocage
Bloqué
Figure I.6 : Diagramme état-transition des tâches temps réel [CAZ 08]
26
Chapitre I Système Temps Réel
L’exécution des tâches pour ce type est synchrone car l’ordre d’exécution se
fait en séquence non interrompue.
27
Chapitre I Système Temps Réel
L’exécution des tâches pour ce type peut être asynchrone car on peut avoir
des événements externe non prévus qui engendrent l’interruption des tâches.
Pour ce type d’algorithme, l’ordre de priorité des tâches est fixe durant
l’exécution.
Pour ce type d’algorithmes, on présente les deux algorithmes suivants Rate
Monotinic et Deadline Monotonic.
I.12.1.1 Algorithme Rate Monotonic [LIU 73]:
C’est un algorithme classique qui s’applique pour :
les tâches périodiques.
Les tâches indépendantes (aucune communication entre les tâches).
L'échéance de la tâche est considérée comme la fin de la période.
Les tâches sont préemptibles.
La priorité est affectée selon leurs fréquences, c'est-à-dire la tâche qui
possède le P (périodicité) minimale aura le niveau de priorité maximum.
Pour que le système des tâches soit ordonnaçable, on doit vérifier la
condition suivante :
n
∑ Ci /Pi ≤n (21/n-1)
I=0
Exemple
28
Chapitre I Système Temps Réel
Tâche C P D Priorité
1 3 10 10 2
2 2 6 6 3
3 2 20 20 1
Pour que cette liste de trois tâches soit ordonnançable par cet algorithme on doit
vérifier la condition précédente
D’après ce tableau, la tâche 2 est la plus prioritaire car son P est le minimum.
T1
T2
T3
Temps 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
29
Chapitre I Système Temps Réel
Pour que le système des tâches soit ordonnaçable, on doit vérifier la condition
suivante :
n
∑ Ci /Di ≤n (21/n-1)
I=1
Exemple :
Tâche C P D Priorité
1 2 8 6 3
2 3 10 10 2
3 2 20 20 1
Alors 1ère tâche (D=6) plus prioritaire que la 2ème tâche (D= 10) et cette
dernière plus prioritaire que la 3ème tâche (D=20).
Ainsi cette liste est ordonnaçable car (2/6) + (3/10) + (2/20) ≤ 3(21/3-1)
T1
T2
T3
Période 0 1 2 3 4 5 6 7 8 9 10 11 12 13
Pour ce type d’algorithme, l’ordre de priorité des tâches est variable selon
l’urgence des tâches.
Dans cette classe d'algorithmes, l'ordre de priorités des tâches peut changer
durant l'exécution en assurant chaque fois que la tâche la plus urgente qui sera
exécutée le plutôt.
30
Chapitre I Système Temps Réel
Pour des tâches à échéance sur requête, une condition nécessaire et suffisante
d’ordonnancement est :
n
∑ Ci /Pi ≤1
I=1
Exemple
Tâche C P D
1 2 6 6
2 2 8 8
3 3 12 12
Ainsi cette liste est ordonnaçable car (2/6)+(2/8)+(3/12) ≤ 1,Ce qui donne
0.83 ≤1
T1
T2
T3
Période 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Tâche C P D
1 2 6 6
2 2 8 8
3 3 12 12
31
Chapitre I Système Temps Réel
T1
T2
T3
Période 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
I.13 Conclusion :
Les systèmes temps réel sont utilisés de plus dans plusieurs domaines. Le
respect d’échéance d’exécution des tâches représente le grand enjeu.
Les tâches temps réel partagent une ressource qui est représentée par le micro
processeur. Ainsi pour garantir l’exécution du maximum de tâches sans dépasser les
délais, plusieurs algorithmes d’ordonnancement sont développés pour mieux
partager le micro processeur.
Il existe d’autres systèmes temps réel, où il y a d’autres ressources que le
processeur représenté par les données.
32
CHAPITRE II
SYSTÈMES DE GESTION
DE
BASES DE DONNÉES
Chapitre II Systèmes de gestion de bases de données
II.1 Introduction :
Vue l’existence des conflits d’accès aux données, les SGBD utilisent des
algorithmes pour la gestion des concurrences. Ce chapitre présente deux points. Le
premier sert à décrire les caractéristiques principales des systèmes de gestion des
bases de données. Le second est la présentation des différentes méthodes
appliquées pour le contrôle des concurrences entre les transactions.
Dans les SGBD classiques, il n’est pas tenu compte des contraintes
temporelles des transactions. Il peut donc arriver que le temps de réponse de
certaines transactions soit très important, ce qui n’est pas acceptable dans une
application temps réel où chaque transaction doit s’exécuter durant un intervalle de
temps précis.Les deux premières générations de SGBD (les modèles hiérarchiques
et réseaux) ont remédié à ces différents problèmes mais ils sont étroitement liés aux
supports physiques.
Dans la fin des années 1970, les SGBDR (relationnel) sont apparus. Cette
génération de SGBD assure l’indépendance entre les données et les traitements.
Ainsi avec leurs langages de manipulation comme SQL (Structured Query Langage),
34
Chapitre II Systèmes de gestion de bases de données
Toutes les transactions figurent dans un fichier que l’on appelle le journal des
transactions. Le SGBD annule les différentes modifications, ce qui rend la base à
l’état cohérent initial.
E1 E2
Transaction validée
T1 T2 Temps
35
Chapitre II Systèmes de gestion de bases de données
Atomicité : cette propriété utilise le principe du tout ou rien, c'est-à-dire toutes les
actions de la transaction s’exécutent avec succès, ou pas du tout, cette propriété
garanti qu'il n'y a que deux résultats possibles pour une transaction qui implique des
changements de multiples ensembles de données interdépendants : soit toutes les
opérations ont été réalisées avec succès et le résultat peut être validé dans la base
comme une seule entité ou, si l'une des opération n'a pas été réalisée avec succès ,
toutes les autres opérations doivent être annulées (Rollback),ce qui engendre de
passer à l’état initial cohérent de la base.
La Cohérence : Une transaction fait passer la base d’un état cohérent dans un
autre état cohérent. Ce qui signifie la capacité du moteur de bases de données à
protéger la base de tous les changements d'état qui pourraient laisser un ensemble
de données désynchronisé par rapport à un autre ensemble de données. Par
exemple, le système doit être capable de reconnaître qu'une clé étrangère est liée à
une clé primaire existante. Il doit être capable d'empêcher la suppression d’une clé
primaire si cette dernière possède des tuples fils.
36
Chapitre II Systèmes de gestion de bases de données
Un des plus grands problèmes pour assurer la cohérence d’une base vient du
fait qu’il doit être possible d’avoir les accès simultanés aux mêmes ressources d’une
base. Ce qui engendre un certain type de problèmes [GAR 84] :
Update compte
Set montant compte=montant compte+20000
Where numero_compte=’X’
On suppose l’exécution suivante :
37
Chapitre II Systèmes de gestion de bases de données
T3 Lire (X)
T4 Annulation Ecrire x=x+20000
T3 Ecrire x=x+val
T4 Lire(x)
38
Chapitre II Systèmes de gestion de bases de données
Sont dites ainsi des protocoles par certification, La vérification des conflits
(sérialisabilité) à la phase de validation d’une transaction c'est-à-dire à la fin
d’exécution, le choix de détection du conflit au plus tard est argumenté sur la base
que l’existence des conflits est rare.
La validation de cette transaction sera réalisée si aucun conflit n’a été détecté
sinon le traitement dépendra selon le protocole optimiste mis en œuvre.
D’après [KUG 81] lorsqu’une transaction arrive à son terme, le test pour
détecter les conflits se fait en deux principales stratégies :
La certification en avant : c’est la vérification de la transaction par rapport aux
transactions en cours.
La certification en arrière : c’est la vérification de la transaction par rapport
des transactions récemment validées.
Ce type de protocole exécute une séquence de trois phases :
39
Chapitre II Systèmes de gestion de bases de données
Lecture
Certificatio
n
Ecriture
Figure II.5 Les phases d’exécution des protocoles par certification [KUG 81]
Le choix des méthodes optimistes se fait pour les transactions avec minimum
de conflit d’accès aux données, ce qui implique un nombre minimum de transactions
à abandonnées, par contre si le critère de nombre de conflit devient nombreux, alors
il est préférable d’utiliser les méthodes pessimistes.
40
Chapitre II Systèmes de gestion de bases de données
Ce type de protocole est nommé pessimiste sur la base que dans le SGBD,
des conflits potentiels sont toujours possibles lors de l’accès simultané aux données
par plusieurs transactions. Ils imposent donc la pose de verrous sur les objets
auxquels accèdent les transactions.
41
Chapitre II Systèmes de gestion de bases de données
Verrou détenu
S X -
Verrou demandé
On voit que chacune des transactions est bloquée, en attendant que l'autre
libère le granule qu'il possède. On dit qu'il y a un interblocage entre les transactions.
42
Chapitre II Systèmes de gestion de bases de données
T1 T2
G1 G2
En fait, tout interblocage est signalé par la présence d'un tel cycle entre les
transactions et les granules.
43
Chapitre II Systèmes de gestion de bases de données
Plusieurs variantes du protocole 2PL ont été proposées pour améliorer les
L’utilisation des estampilles pour le but d’exécuter les transactions dans une
planification sérielle équivalente.
Avec les méthodes par estampillage il n’y a aucune attente car lorsque des
transactions rentrent en conflit d’accès à un granule dans un mode incompatible, la
transaction vainqueur est la transaction de la plus petite estampille (la plus
ancienne), les autres transactions seront annulées et le redémarré de nouveau pour
44
Chapitre II Systèmes de gestion de bases de données
Procédure d’Accès
Alors
Autoriser l’accès ;
E(g) := E(Ti) ;
Sinon
Figure II.7 Algorithme d’ordonnancement total pour l’accès à un granule [DON 02]
45
Chapitre II Systèmes de gestion de bases de données
L’ordonnanceur partiel est doté de deux procédures pour la gestion des accès
aux données, la première concerne le droit en lecture, et la deuxième pour l’écriture.
Procédure de lecture
Lire (G) ;
Sinon Rollback ;
Finsi ;
Figure II.8 Algorithme d’ordonnancement partiel pour l’accès en lecture à un granule [DON 02]
Pour utiliser un granule en lecture selon l’ordonnancement partiel :
Procédure d’écriture
Ècrire (G);
EE (G): =E (Ti) I ;
Sinon Rollback;
Finsi ;
46
Chapitre II Systèmes de gestion de bases de données
Figure II.9 Algorithme d’ordonnancement partiel pour l’accès en écriture à un granule [DON 02]
II.9 Conclusion :
L'ordre d'exécution des transactions est critique. Cet ordre doit assurer
l'intégrité de la base de données dans un système de base de données multi
utilisateurs.
47
CHAPITRE III
SYSTÈME DE GESTION
DE
BASES DE DONNÉES
TEMPS REEL
CONCLUSION GENERALE
III.1 Introduction :
Les SGBD classiques ne tiendront pas en compte l’échéance des données, car
ils n’intègrent pas des mécanismes qui permettent de prendre en compte les
contraintes temporelles. Ceci implique la nécessité d’avoir des systèmes de
gestion de base de données temps réel [RAM93a]. Un système de gestion de base
de données temps réel peut être vu comme un amalgame d'un système temps réel
et un système de gestion de base de données classique.
Ce chapitre présentera les caractéristiques des systèmes de gestion de bases
de données temps réel.
La plupart des applications temps réel ont besoin de stocker et manipuler des
volumes importants d’informations qui proviennent de l’environnement contrôlé par le
système. Ces données peuvent être textuelles comme la position numérique des
objets ou multimédia comme la position graphique des objets captée par les caméras
de surveillance, ce qui indique que dans les SGBDTR, les données représentent la
capture de l´état du monde réel.
Le nombre d’entité d’une base de données temps réel varié selon l’application
temps réel relative. Le tableau suivant représente cette différence.
49
CONCLUSION GENERALE
Tableau III.1 : Nombre d’entités manipulées de certaines applications temps réel [LOK 01]
La durée de validité d’une donnée dérivée est calculée à la base de toutes les
durées de ces composants.
50
CONCLUSION GENERALE
Figure III.1 : Les types de données manipulés par les SGBDTR [DIP 95]
La durabilité d’une entité diffère d’une application à une autre. Le tableau suivant
représente la durabilité de quelque application.
51
CONCLUSION GENERALE
Application Durabilité
Tableau III.2 : La durabilité des entités de certaines applications temps réel [LOK 01]
La cohérence relative qui est liée aux données utilisées pour dériver
d’autres données dans la base et qui doivent être cohérentes entre elles.
Pour illustrer ces deux notions, reprenons la définition d’une donnée temps
réel d proposée dans [RAM 93] : d = (dvaleur, destampille, ddva), où dvaleur est la valeur
actuelle de la donnée d. destampille représente l’instant où cette valeur a été mesurée
ou calculée et ddva est la durée de validité absolue de la valeur d.
52
CONCLUSION GENERALE
validité relative Rdvr. Soit d ∈ R. On dit que d est dans un état correct, si et seulement
si :
1) dvaleur est logiquement cohérente.
Exemple :
53
CONCLUSION GENERALE
Pour réaliser un SGBDTR, plusieurs travaux réalisés sur les SGBD classiques
peuvent être exploités. La conception des SGBDTR doit prendre en compte que les
transactions s’exécutent avant leurs échéances. Ces transactions accèdent aux
données avant une validité limitée [PUR 94].
La notion de durabilité dans les SGBDTR est différente dans les SGBD
classique, car dans ces derniers, dés la validation des transaction de mise à jour le
nouveau contenu de la BDD devient permanent. Par contre, dans les SGBDTR et
particulièrement ce qui touche les données acquises par les capteurs, les
modifications se réalisent périodiquement ce qui implique que la persistance de
données est assurée que durant leur durée de validité.
La notion de sériabilité dans les SGBDTR est similaire a ceux dans les SGBD
classiques sauf qu’on ajoute des contraintes temporelles.
54
CONCLUSION GENERALE
Selon ces deux types de données, les transactions sont classées [XIO 96] :
Valeur
Temps
Echéance
55
CONCLUSION GENERALE
Valeur
Echéance Temps
Valeur
Temps
Echéance
56
CONCLUSION GENERALE
é
MR=100∗
57
CONCLUSION GENERALE
Ce critère présente le nombre des transactions qui ont ratées leurs échéances
divisé sur le nombre total des transactions, le SGBDTR doit minimiser au maximum
cette métrique.
III.8 Conclusion :
PROTOCOLES
D’ORDONNANCEMENT ET
CONTRÔLE DE
CONCURRENCES
CHAPITRE IV PROTOCOLES D’ORDONNANCEMENT ET CONTRÔLE DE CONCURRENCES
IV.1 Introduction :
Les travaux réalisés sur le contrôle de concurrence des transactions dans les
SGBDTR s’appuient sur les techniques de contrôle de concurrence appliquées dans
les SGBD classiques et sur les techniques d’ordonnancement des tâches dans les
systèmes temps réel.
Les travaux réalisés dans ce domaine pour les systèmes de gestion de base de
données temps réel se basent sur les mêmes types de protocoles utilisés dans les
systèmes de gestion de base de données classiques qui sont : les protocoles
optimistes et les protocoles pessimistes.
Les techniques optimistes sont des protocoles par certification. pour les
SGBDTR, ces protocole ont le même principe que pour les SGBD classiques où
60
CHAPITRE IV PROTOCOLES D’ORDONNANCEMENT ET CONTRÔLE DE CONCURRENCES
D’après [KUN 81] lorsqu’une transaction arrive à son terme, le test pour détecter les
conflits se fait en deux principales stratégies :
61
CHAPITRE IV PROTOCOLES D’ORDONNANCEMENT ET CONTRÔLE DE CONCURRENCES
Ce protocole favorise les transactions les plus prioritaires. Le cas qui se pose
est qu’une transaction se sacrifier pour une transaction plus prioritaire, et que cette
dernière sera annulée plus tard à cause du dépassement d’échéance.
Cet algorithme favorise les transactions prioritaires pour validation. Dans le cas où
une transaction prioritaire est validée alors l’ensemble des transactions en conflit avec la
transaction Tc seront abandonnées et redémarrées. Par contre, une transaction en
62
CHAPITRE IV PROTOCOLES D’ORDONNANCEMENT ET CONTRÔLE DE CONCURRENCES
attente peut être validé si l’ensemble des transactions plus prioritaires et concurrente à
elles ont dépassées leurs échéances.
Le protocole CCA (Cost Conscious Approach) [HON 93], est développé pour
améliorer les performances des deux premiers protocoles conçus pour
l’ordonnancement des transactions temps réel.
EDF-HP (Earliest Deadline First-High Priority) [ABB 88], est un protocole
d’ordonnancement des transactions temps réel. Son principe est d’attribuer la
priorité supérieure à la transaction ayant la plus proche échéance.
63
CHAPITRE IV PROTOCOLES D’ORDONNANCEMENT ET CONTRÔLE DE CONCURRENCES
Sont dite ainsi des protocoles bloquantes, pour les SGBDTR ces protocole ont
le même principe que pour le protocole SGBD classiques où utilisent la notion de
verrou pour empêcher l’accès incompatible aux données par les transactions, c’est-
à-dire c’est la transaction T1 demande un verrou sur un granule de donnée détenu
par T2 alors T1 est bloqué jusqu'à la libération du verrou sur le granule de donnée
par T2.
L’utilisation de 2PL dans les SGBDTR n’atteint pas l’objectif, car on peut avoir
le problème d’inversion de priorité c’est-à-dire une transaction T1 de haute priorité
bloquée à cause du détient d’un granule de données par une transaction T2 moins
prioritaire [LIU 73].Ce problème a donné naissance à des protocoles variant de 2PL
64
CHAPITRE IV PROTOCOLES D’ORDONNANCEMENT ET CONTRÔLE DE CONCURRENCES
adaptés pour les SGBDTR. Ces protocoles tiennent en compte la priorité des
transactions.
C’est une variante de protocole d’héritage de priorité [HUA 90]. Son principe
est qu’une transaction de faible priorité n’hérite la priorité d’une autre transaction de
haute priorité que dans le cas où elle est proche de sa terminaison, sinon elle est
abandonnée. Donc, c’est un protocole qui autorise l’inversion de priorité mais avec
une durée limitée.
L’avantage est qu’il y a moins de travail perdu quand la transaction est loin de
sa terminaison, et les délais d’attente des transactions de hautes priorités sont
réduits.
Les simulations effectuées par Huang and Gruenwald [HUA 96] confirment les
bonnes performances de ce protocole par rapport aux protocoles d’héritage simple
et d’abandon par priorité
66
CHAPITRE IV PROTOCOLES D’ORDONNANCEMENT ET CONTRÔLE DE CONCURRENCES
Pour qu’une transaction détienne le verrou d’un granule de donnée, il faut que
la priorité de cette transaction soit supérieure à la priorité du granule de donnée
demandé.
IV.3 Conclusion :
67
CHAPITRE V
IMPLÉMENTATION, TEST
ET
ÉVALUATION
CONCLUSION GENERALE
V.1 Introduction
Après avoir présenté l’état de l’art des systèmes de base de données temps
réel, où on a abordé les différentes caractéristiques des transactions et données
temps réel, et les protocoles de contrôle de concurrence des transactions existants,
on entame la deuxième phase objet de notre mémoire.
V.2 La simulation :
La simulation permet l’évaluation des conséquences d’actions sans avoir à les mettre
en place réellement par le biais d’un programme informatique.
69
CONCLUSION GENERALE
UML offre une manière élégante pour représenter le système selon différentes vues
complémentaires grâce aux différents diagrammes. Chacun de ces diagrammes
correspond soit à la description d’une partie du système soit à la description du
système selon un point de vue particulier.
La méthode UML est souvent utilisée dans les conceptions car elle possède des
caractéristiques permettant une forte expression des éléments de conception [ROQ
07] :
Un langage sans ambigüité
Un langage universel pouvant servir de support pour tout langage
orienté objet.
Une présentation visuelle permettant la communication entre les acteurs
d’un même projet.
Une notation graphique simple, compréhensible même par des non
informaticiens.
Pour notre conception, on a utilisé les diagrammes d’UML 2.1 suivants :
Diagramme de cas d’utilisation
Diagramme de séquence
Diagramme de classe
V.3.2 Diagramme de cas d’utilisation :
Le simulateur à réaliser doit tenir en compte les données dérivées si elles existent.
Mais avant de lancer une simulation on doit générer les transactions de mises à
jour.
Pour générer les transactions de mises à jour, on doit générer a priori la base de
données. Cette dernière dépend des paramètres définis par l’utilisateur.
70
CONCLUSION GENERALE
Une fois les données et les transactions sont générées, le simulateur simule selon
un contrôleur de concurrence spécifié par l’utilisateur.
Le simulateur doit afficher les différents états graphiques
Simulateur de SGBDTR
Extended
Simuler
Utilisateur
En cas de données dérivées
Include
Specifier protocole CC
Include
Include
71
CONCLUSION GENERALE
72
CONCLUSION GENERALE
1..* Appliquer
Simulation
Contrôleur de concurrence
1
Protocole
1 Composer d’ordonnancement
1
Contenir
1..*
1..*
Transaction
1..*
0..*
1..*
Données
Mettre à jour
0..*
Consulte
{Complet}
Classique
1
Temps réel
De base Dérivée
1..*
1..*
Composer
73
CONCLUSION GENERALE
Simulation
Numéro simulation
Durée simulation
Nombre données classiques
Nombre données temps réel
Durée validité minimale de données temps réel
Durée validité maximale de données temps réel
Nombre données temps réel dérivées
Nombre maximum de donnée à drivée à partir de données classique
Nombre maximum de donnée à drivée à partir de données temps réel
Nombre dépendance minimum de données classiques
Nombre dépendance maximum de données classiques
Nombre dépendance minimum de données temps réel
Nombre dépendance maximum de données temps réel
Ajouter ()
Simuler ()
Imprimer les états graphiques ()
Contrôleur de concurrence
Protocole de contrôle de concurrence
Protocole d’ordonnancement
Protocole d’ordonnancement
74
CONCLUSION GENERALE
Transaction
Numéro transaction
Date arrivée
Date début d’exécution
Périodicité
Durée
Echéance
Etat fin
Générer ()
Exécuter ()
Données
Numéro donnée
Estampillage
Générer ()
Insérer donnée dérivé ()
Libérer donnée dérivée ()
Cette classe hérite de la classe Donnée, elle possède un attribut en plus c’est la
table des données dérivées de cette données classique
classique
Table de données dérivées
Insérer donnée dérivée ()
Libérer donnée dérivée ()
Cette classe hérite de la classe Donnée, elle possède deux attributs en plus c’est la
validité de la donnée et date début de validité
75
CONCLUSION GENERALE
Temps réel
Validité
Date début de validité
Cette classe hérite de la classe Donnée temps réel, elle possède un attribut en plus
la table des données dérivées de cette données temps réel de base
De base
Table de données dérivées
Cette classe hérite de la classe Donnée temps réel, elle possède un attribut en plus
la table de dépendances de cette données dérivée.
Dérivée
Liste de dépendances
Calculer validité ()
76
CONCLUSION GENERALE
: Simulateur
Utilisateur
Utilisateur
Simuler
77
CONCLUSION GENERALE
: Simulateur
Nombre de données
Loop
: Données
: Données
temps réel de
base
78
CONCLUSION GENERALE
: Simulateur
Nombre de transaction
LOOP
Générer
Créer : Transaction
temps réel
Nb de données
dérivées
LOOP
OPT : Validité
=nulRemplacer
Consulter existence des transactions
de données de base composite
OPT : Existe l’ensemble
Calculer
la
validité
Modifier la validité
79
CONCLUSION GENERALE
Une donnée est caractérisé par un numéro séquentiel, on débute par les données
classiques, ensuite les données temps réel de base et à la fin on génère les
données dérivées.
Une donnée temps réel de base est caractérisée par une durée de validité. La durée
de validité est générée aléatoirement à la base des paramètres de validité minimale
et de validité maximale. L’algorithme qui génère les données temps réel de base est
le suivant :
Variables
Nombre_Donnée_Temps_Réel : Entier ; {paramètre d’entrée}
Nombre_Données_Classiques : Entier ; {paramètre d’entrée}
Validité_Min : Entier ; {paramètre d’entrée}
Validité_Max : Entier ; {paramètre d’entrée}
Compteur : entier ;
Début
Pour i := 1.. Nombre_Donnée_Temps_Réel
Faire
Numèro_Donnée_TR := Nombre_Données_Classiques +I ;
Validité_de_la_donnée_temps_réel :=Générer un nombre aléatoire entre la
validité minimale et la validité maximale ;
Fait ;
Fin.
FIN.
V
80
CONCLUSION GENERALE
Une donnée dérivée dépend au minimum de deux données, dont une donnée
temps réel de base..
Variables
Nombre_Donnée_Temps_Réel : Entier ; { paramètre d’entrée }
Nombre_Donnée_Temps_Réel_Dérivée :Entier ; { paramètre d’entrée }
Nombre_Min_Données_Classique : Entier ; { paramètre d’entrée }
Nombre_Max_Données_Classique : Entier ; { paramètre d’entrée }
Nombre_Min_Données_Temps Réel_Base : Entier ; { paramètre d’entrée }
Nombre_Max_Données_Temps Réel_Base : Entier ; { paramètre d’entrée }
Compteur,NDC,NDTR : entier ;
Début
Pour i := 1 .. Nombre_Donnée_Temps_Réel_Dérivée
Faire
Numèro_ Donnée_Temps_Réel_Dérivée := Nombre_Donnée_Temps_Réel +I ;
NDC :=Générer_Nombre_Aléatoire_Données_Classique(Nombre_Min_Données_C
lassique ,Nombre_Max_Données_Classique ) ;
J :=1 ;
Tant que J<NDC faire
DCS :=Selectionner_Données_Aléatoire_Classique() ;
Vérifier l’existence DCG parmi les dépendance de cette donnée dérivée
81
CONCLUSION GENERALE
Si inexistante alors
Mettre DCS dans la table de dépendance
J :=j+1 ;
Fin Si
Fait
NDTRB :=Générer_Nombre_Aléatoire_Données_Temps_Réel_Base
(Nombre_Min_Données_Temps_Réel_Base,
Nombre_Max__Données_Temps_Réel_Base);
J :=1 ;
Tant que J<NDTRB faire
DTRS :=Sélectionner_Donnée_Aléatoire_Temps_Réel_Base() ;
Vérifier l’existence DTRS parmi les dépendances de cette donnée dérivée
Si la donnée temps réel de base choisie est inexistante alors
Mettre la donnée choisie dans la table de dépendance
J :=j+1 ;
Fin Si
Fait ;
Fin
Pour générer des nombres aléatoires, on a utilisé les deux fonctions Randomize et
Random.
Pour les transactions de mises à jour temps réel, on a utilisé les transactions
périodiques. On a utilisé un algorithme qui génère ses transactions. Avec cet
algorithme, on génère aléatoirement la date début d’arrivée ainsi aléatoirement la
périodicité et son échéance.
le programme de mises à jour des données dérivées pour chaque élément de cette
liste.
82
CONCLUSION GENERALE
Comme interface principale du simulateur, nous avons choisi d’utiliser une barre de
menu à deux menus. Le sous menu simuler sert à lancer une simulation, et le sous
menu historique sert à consulter les anciennes simulations.
Le sous menu simuler permet de lancer une simulation après l’avoir paramétrée. Le
sous menu historique donne la possibilité à l’utilisateur de consulter les paramètres
et les résultats des simulations déjà effectuées et enregistrées sur la base
d’historisation.
83
CONCLUSION GENERALE
2 4
3 5
1 6
Cette fiche concerne la fiche de lancement d’une nouvelle simulation, par défaut
seulement le bouton 1 est activé.
Les étapes d’exécution d’une simulation sont définies selon les numéros des
icônes décrites sur la figure V.9.
Le bouton 1 sert à lancer une nouvelle simulation ce qui active le bouton 2 pour
définir les paramètres de la simulation.
Une fois que les paramètres sont définis, le simulateur génère les donnés classiques,
données temps réel de base et dérivée.
84
CONCLUSION GENERALE
85
CONCLUSION GENERALE
La figure suivante donne un aperçu sur les données temps réel dérivées générées
par le simulateur.
86
CONCLUSION GENERALE
87
CONCLUSION GENERALE
88
CONCLUSION GENERALE
Un autre état graphique sera affiché sous forme secteur qui schématise le nombre
de transactions validées et le nombre de transactions non validées.
89
CONCLUSION GENERALE
90
CONCLUSION GENERALE
V.7 Tests :
Le reste de ce chapitre est destiné pour illustrer les résultats des tests réalisés.
Le tableau suivant décrit les paramètres de base de ces tests. Chaque fois, on
change un paramètre pour voir l’effet de ce changement sur le nombre des
transactions validées et non validées.
N° Paramètre Valeur
91
CONCLUSION GENERALE
92
CONCLUSION GENERALE
93
CONCLUSION GENERALE
94
CONCLUSION GENERALE
95
CONCLUSION GENERALE
La figure suivante représente le résultat de simulation avec des données temps réel
de validité entre 100..200 ms
96
CONCLUSION GENERALE
On simule pour une liste de dépendances entre 1..7 de données classiques et 1..7
de données Temps Réel de base.
D’après les résultats obtenus dans le 2ème test, on peut dire que le protocole
d’ordonnancement EDF-CR est plus performant que le protocole EDF-HP, car le
protocole d’ordonnancement EDF-CR laisse les transactions les moins prioritaires
en phase de validation de terminer leurs exécutions.
Pour les deux protocoles optimistes, les tests effectués confirment que le
protocole 2PL-WP est plus fiable que le protocole 2PL-HP, car le nombre de
transactions validées pour le protocole 2PL-WP est plus important que le nombre de
97
CONCLUSION GENERALE
transactions validées pour le protocole 2PL-HP. Le motif est que le premier protocole
2PL-WP permet la continuité d’exécution pour les transactions les moins prioritaire
par la promotion de la transaction détentrice de verrou(s).
98
CONCLUSION GENERALE
V.9 Conclusion :
Les résultats des tests effectués donnent aux utilisateurs un aperçu sur l’effet
d’un protocole choisi sur le nombre de transactions validées et non validées.
99
CONCLUSION
GÉNÉRALE
CONCLUSION GENERALE
Conclusion Générale
Les travaux réalisés qui sont présentés dans ce mémoire ont porté sur la
simulation des protocoles d’ordonnancement des transactions temps réel et contrôle
de concurrence d’accès aux données en prenant en considération des données
dérivées avec leurs transactions de mises à jours.
101
CONCLUSION GENERALE
EDF-HP.
102
BIBLIOGRAPHIE
Bibliographie :
[ABB 88] Abbot. R, and Garcia-Molina. H, Scheduling Real-Time Transactions: A
Performance Evaluation, Proc. of the 14th International conference on Very
Large Data Bases, pp 1-12, Los Angeles, California, USA, Mars 1988.
[ABB 89] Abbot. R, and Garcia-Molina. H, Scheduling Real-Time Transactions
with Disk Resident Data, Proc. of the 15th International conference on Very
Large Data Bases, pp 385–396, Amsterdam, The Netherlands, August 1989.
[ABB 92] Abbot. R, and Garcia-Molina. H, Scheduling Real-Time Transactions: A
Performance Evaluation, ACM Transactions on Database Systems, Vol.17,No.3,
pp 513-560, September 1992
[AMI 03] Amirijoo. M, J. Hansson, and S.H. Son, Algorithms for Managing QoS
for Real-Time Data Services Using Imprecise Computation. In proceedings of the
International Conference on Real-Time and Embedded Computing Systems and
Applications(RTCSA), pp 136-157,Taiwan, February 2003.
[Aud 95] N.C. Audsley, Optimal priority assignment and feasibility of static priority
tasks with arbitrary start times , Technical Report YCS-164, University of York
1995.
[CAZ 08] Alain Cazer, Joëlle Delacroix, Architecture des machines et des
systèmes informatiques 3ème édition Dunond Paris 2008.
104
[COT 05] Francis Cottet, Emmanuel Groulleau, Systèmes temps réel de contrôle –
commande Dunod, Paris, 2005.
[DUV 99a] Duvallet, C., Mammeri, Z., and Sadeg, B, Analyse des protocoles de
contrôle de concurrence et des propriétés ACID dans les SGBD temps réel.
International Conference on Real-Time and embedded Systems (RTS), Paris,
France,1999.
[ESW 76] Ewaran K.P., Gray J.N., Lorie R.A., Traiger I.L., The Notion of
Consistency and Predicate Locks in a Database System , CACM , Nov. 1976.
[FAB 99] Degouel Fabien, Desgeorge, Guillaume, Corbel Steve, Synthèse de
protocoles courants , Recherche bibliographique ,ESEO, 1999.
[GAR 84] Gardarin Georges, Base de données, les systèmes et leurs langages,
Eyrolles 2ème édition, 1984.
[GAR 00] Gardarin, G, Bases de Données Objet et Relationnelles, Eyrolles,2000.
105
[HAR 92] Haritsa, J., Carey, M., and Livny, M, Data Access Scheduling in Firm
Real-Time Database Systems,1992.
[HAR 97] Haritsa, J., Ramamritham, K., and Gupta, R, Characterization and
Optimization of Commit Processing Performance in Distributed Database
Systems, In ACM SIGMOD International Conf on Management of Data,1997.
[HAR 00] Haritsa, J., Ramamritham, K., and Gupta, R, The PROMPT Real,2000
[HON 93] Hong, D., Jonhson, T., and Chakravarty, S, Real-Time Transactions
Scheduling: A Cost Conscious Approach. In proc. of ACM SIGMOD Intl. Conf.
on Management of Data, 1993.
[HUA 90] Huang, J. and Stankovic, J, Concurrency Control in Real-Time
Database System: Optimistic Scheme vs Two-Phase Locking. Technical Report
UM-CS-1990-066, University of Massachusetts,1990.
[HUA 96]Huang, J. and Gruenwald, L, An Update-Frequency-Valid-Interval
Partition Checkpoint Technique for Real-Time Main Memory Databases. In
1stWorkshop on Real-Time Databases(RTDB),1996.
[HUO 04] Huong, H., Hung, D,Modelling Real-Time Database Systems in
Duration Calculus. In Proceedings of the IASTED International Conference on
Databases and Applications (IASTED-DBA 2004), Innsbruck, Austria, 2004.
[JAC 55] J.R. Jackson, Scheduling a production line to minimize maximum
tardiness ,
Research Report UCLA, Management Sciences Research Project, 1955.
[KAN 01] K.D. Kang, S.H. Son, J.A. Stankovic, and T.F. Abselzaher. AQoS-
Sensitive Apprach for Timeliness and Freshness Guarantess in Real-Time
Databases, Technical Report CS-2001-22, Computer Science Department at
University of Virginia, 2001.
[KAN 04] K.D.Kang, S.H. Son et J.A Stankovic, Managing Deadline Miss Ratio
and Sensor Data Freshness in Real-Time Databases, IEEE Transactions on
Knowledge and Data Engineering, Vol. 16, No. 7, Juillet 2004.
[KUN 81] Kung, H. and Robinson, J. (1981). On Optimistic Methods for
Concurrency Control. ACM Transactions on Database Systems
[KUG 81] Kung, H. and Robinson, J, On Optimistic Methods for Concurrency
Control. ACM Transactions on Database Systems, 1981.
106
[LIU 73] C.L. Liu, J.W. Layland, Scheduling algorithms for multiprogramming in
a hard real-time envirronment , Journal of the ACM, vol. 20, n°1, pp. 46-61,
1973.
[LIU 00]. Lu, J.Stankovic , T. Abdelzaher, G.Tao, S.Son, and M.
Marley.Performance specification and metrics for adaptive real-timesystems. In
Real-Time Systems Symposium, Orlando, Florida, Nov. 2000.
[LIU 01] C. Lu, T. Abselzaher, J. Stankovic, and S. Son. A feedback control
approach for guaranteeing relative delays in web servers. In Proc. 7th IEEE
Real-Time Technology and Applications Symposium RTAS 01, Taipei, Taiwan,
May 2001.
[LIU 02] C. Lu, J.A. Stankovic, G. Tao, S.H. Son, Feedback control real-time
scheduling: Framework, modeling and algorithms, In Journal of Real-Time
Systems, vol.23, n°1, p.85-126,2002.
[LOK 01] Locke, D, Applications and system characteristics. In Real-Time
Database Systems: Architecture and Techniques, pages 17–26. Kluwer
Academic Publishers,2001.
[MAM 85]: Mammeri Z,Conception d’applications réparties en commande de
processus : une approche par la structuration de données, Thèse de doctorat,
Institut National Polytechnique de Lorraine, Nancy, 1985.
[MAM 98] Z.Mammeri, Expression et dérivation des contraintes temporelles dans
les applications temps réel , APII-JESA, 1998.
[MAN 99] Manas Saksena , Bran Selic, Real-Time software design-state of the
Art and Future Challenges,IEEE Canadian, 1999.
[MEN 82] Menasce, D. and Nakanishi, T, Optimistic versus pessimistic
concurrency control mechanisms in database management systems, Information
Systems,1982.
[PHI 99]: Philippe M, Bases de données de Merise à JDBC , version 1.4, 1999.
[PUR 94] Purimetla B., Sivasankaran.M., Ramamitham K., Stankovic J.A.,
Real-Time Databases: Issues and Applications , In Principles of RTS, edition.
Printice Hill, 1994.
[RAM 93] K ,Ramamritham . and Chrysanthis, P. K, In Search of Acceptability
Criteria : Database Consistency Requirements and Transaction Correctness
Properties. In Ozsu, T., Dayal, U., and Valduriez, P., editors,Distributed Object
Management. Morgan Kaufmann Publisher, San Mateo, California.
107
[RAM 93a] K.Ramamritham Real-Time Databases, Journal of Distribution and
parallel Databases 1993.
[RAM 00] Ramakrishnan, R. and Gehrke, J. (2000). Database Management
Systems. Mac Graw Hill.
[RAM 03] K.Ramamritham, J.A. Stankovich, K.D. Kang, ‘’ QoS Management in
replicated Real-Time Databases’’, in proceedings of the 24th IEEE real-Time
system syposium (RTSS), (2003).
[RAM 04] K.Ramamritham, S.H. Son, and L.C. Dipippo. Real-Time Data-Time
Databases and Data Services. Real-Time Système, 2004.
[ROQ 07] Pasqual Roques, Franck Vallée, UML2 en action de l’analyse des
besoins à la conception 4e édition EYRollES 2007.
[SHA 87] Sha L, Rajkumar R, Lehoczky J. Priority inheritance protocols: an
approach to real- time synchronization. Technical Report CMU-CS-87, Depts. of
CS, ECE, and Statistics, Carnegie Mellon University, 1987.
[SHA 91] Sha, L., Rajkumar, R., Son, S., and Chang, C. (1991). A real-time
locking protocol. IEEE Transactions on Computers.
[SCH 98]: Scholl P-C., Fauvet M-C. and Canavaggio., “Un modèle d’historique
pour un SGBD temporal”., TSI, vol. 17, n°3,, 1998.
[SON 92]: Son S.H and Liu J.W.S., « How well can data temporal consistency
be
maintained ?», IEEE symp.on Computer.aided Control System Design, 1992.
[SOU 08] Christian Soutou SQL pour Oracle 3e edition EYROLLES 2008
[STA 88] J. Stankovic and K. Ramamritham. Hard real-time systems: a tutorial.
IEEE Computer Society Press, 1988.
[STA 99].Misconception about Real-Time Databases, J.A. Stankovic, S.H. Son,
J. Hansson Systems, IEEE Computer, Vol. 32, No. 6, pp. 29-36,June 1999.
[SAD 04] Bruno Sadeg Habilitation à Diriger des Recherches Contributions ` a
la gestion des transactions dans les SGBD temps réel 2004
[TAN 10] Andrew Tanenbaum, Systèmes d’exploitation, 3ème edition Pearson
Education France.
[ULM 80] Ullman, J. (1980). Principles of Database Systems and Knowledge
Base Systems . Computer Science Press, Inc., Maryland.
[WAN 02] Wang, Z., Song, Y., Poggi, E., and Sun, Survey of Weakly-Hard Real-
Time Scheduling theory and Its Application DCABES 2002.
108
[WEI 03]. QoS Management in Replicated Real-Time Databases, Y.Wei, S.H.
Son, J.A. Stankovic, K.D. Kang, Proceedings of the 24th IEEE International Real-
Time Systems Symposium, pp.86-97, 2003.
[XIO 96] Xiong, M., Stankovic J.A., Ramamritham K., Towsley D. and
Sivasankaran R.M., «Maintaining temporal consistency: issues and algorithms
», 1Int. Workshop on RTDBS.Issues and Applications, , California 1996.
[XIO 02] M. Xiong, K.Ramamritham, J.R Haritsa, and J. A. Strankovic.
Mirror: a stat-Conscious Concurrency Control Protocol for Replicated real-
Time Databases. Inf. syst.2002.
109