"La programmation des systèmes temps réel est une discipline informatique à part entière, faites le tour du sujet avec la référence du domaine : le livre «Real-Time Systems and Programming Languages» par Alan Burns et Andy Wellings."
Real-Time Systems and Programming Languages 2ème ed | |
Auteur | Alan Burns et Andy Wellings |
Editeur | Addison-Wesley |
ISBN | 0-201-40365-X |
Pages | 610 |
Prix | Prix constaté 377F |
Rédacteur | Laurent Guerby |
<!-- Ceci est a mettre comme texte de la news annoncant la revue<br/> du livre -->
La programmation des systèmes temps réel est une discipline
informatique à part entière, faites le tour du sujet avec la référence
du domaine : le livre «Real-Time Systems and Programming Languages»
par Alan Burns et Andy Wellings.
<!-- Fin du texte de la news -->
Les professeurs Alan Burns et Andy Wellings, enseignants à
l'université de York, nous offrent une visite guidée du domaine de la
programmation des sytèmes temps-réel, couvrant les langages de
programmation Ada 95, occam2 et C/POSIX, les problèmes
d'ordonnancement, de fiabilité et de distribution.
Les quatre premiers chapitres s'attachent à donner les définitions de
base propres aux systèmes temps-réel.
Après avoir cité quelques définitions, les auteurs proposent la
propriété suivante pour distinguer un système temps réel : «la
correction d'un système temps-réel dépend non seulement du résultat
propre de ses calculs mais aussi du moment auxquels ces résultats sont
produits». Une classification commune dans le domaine est apportée :
certains systèmes sont dits «temps-réel durs» (hard real-time) quand
un calcul doit être absolument terminé dans les temps prévus sous
peine de conséquences catastrophiques, et d'autres systèmes sont dits
«temps-réel mous» (soft real-time) quand ils sont un peu plus
tolérants aux retards. Attention, «temps-réel dur» ne veut pas dire
rapide, un système avec un délai de réponse de 30 secondes à ne pas
dépasser et peu de calculs à faire peut parfaitement être considéré
«temps-réel dur».
Comme pour tout logiciel, les principes de l'ingénierie s'appliquent,
et les critères suivants sont à prendre en compte pour leur conception
: sécurité, lisibilité, flexibilité, simplicité, portabilité et
efficacité. Un certain nombre de méthodes de conception sont
survolées. Les aspects séquentiels des langages Ada, C et occam2 sont
présentés dans le chapitre «programmation en petit» tandis que le
chapitre «programmation en grand» traite de la modularité.
Les chapitres 5 et 6 abordent la notion de fiabilité en général, qui
est définie comme étant la mesure du succès avec lequel le
comportement du système est conforme à une spécification de référence.
Tout écart est appelé «échec» et ils proviennent de «fautes» de
diverses natures. Différentes approches de conception pour qu'un système
tolère certaines fautes sont décrites. Un chapitre complet est dédié à
la notion d'exception des langages de programmation traités dans
l'ouvrage, mais aussi de quelques autres comme CHILL et CLU.
La plupart des systèmes temps-réel sont concurrents, les chapitres 7 à
9 montrent qu'une approche de haut-niveau basée sur des «processus»
ou «tâches» permet de s'attaquer de manière plus propre à des
problèmes plus complexe qu'une simple boucle de contrôle mise à plat.
Les chapitres 8 à 9 couvrent respectivement la communication et synchronisation par
variable partagée et par message.
Les chapitres 10 et 11 décrivent la notion d'opération atomique et les
interblocages lors du partage de ressources. Plusieurs stratégies
d'implémentation des opérations atomiques et d'évitement des
interblocages sont présentées.
Les points centraux des systèmes temps-réel : la notion de temps et
les stratégies d'ordonnancement sont traités dans les chapitres 12 et
13. À noter que les algorithmes dynamiques (comme EDF - Earliest
Deadline First) ne sont pas traités dans cette édition.
Les cinq derniers chapitres abordent chacun un sujet et une
problématique propre : les systèmes distribués, la programmation de
bas niveau, l'environnement d'exécution et enfin une étude complète de
réalisation d'un système temps-réel de contrôle de pompe en Ada 95
suivant la méthodologie HRT-HOOD.
Enfin la conclusion fait un petit comparatif de l'adéquation des
langages et systèmes abordés avec les impératifs de la programmation
temps-réel, et énumère les sujets toujours actifs dans le monde de la
recherche.
Le fait que les auteurs soient des enseignants et que ce livre serve
de base à leurs cours se traduit par un texte dense, limpide et qui
suit un cheminement logique. Le formatage est quelque peu austère, il
n'y a pas beaucoup de schémas mais ils sont cependant clairs et les
exemples de code sont très bien mis en valeur. Comme dans tout bon
livre, chaque chapitre se termine par un résumé en une ou deux pages
des notions présentées, par une liste de références à des lectures
d'approfondissement et des exercices (certaines solutions sont sur le
web). La couverture du domaine est relativement exhaustive, toutes
les notions majeures sont abordées.
Un point appréciable est que les auteurs mettent l'accent sur
l'expressivité comparée des langages et des méchanismes offerts par
les systèmes d'exploitation pour résoudre les problèmes temps-réel, et
n'hésitent pas à mentionner d'autres langages que ceux sur lesquels le
livres est centré.
En résumé, si vous trouvez votre culture sur le sujet des systèmes
temps-réel limitée, ce livre est un très bon investissement à considérer.
Important:Une
troisième édition de cet ouvrage,
avec des informations sur
«Real-Time Java», CORBA temps réel et les dernières extensions POSIX
est disponible depuis Mars 2001 (ISBN 0201729881).
Table des matières
- Preface
- 1. Introduction to Real-Time Systems
- 2. Designing Real-Time Systems
- 3. Programming in the Small
- 4. Programming in the Large
- 5. Reliability and Fault Tolerance
- 6. Exceptions and Exception Handling
- 7. Concurrent Programming
- 8. Shared Variable-Based Synchronization and Communication
- 9. Message-Based Synchronization and Communication
- 10. Atomic Actions, Concurrent Processes and Reliability
- 11. Resource Control
- 12. Real-Time Facilities
- 13. Scheduling
- 14. Distributed Systems
- 15. Low-Level Programming
- 16. The Execution Environment
- 17. A Case Study in Ada
- 18. Conclusions
- References
- Index
# 377Fr
Posté par ghent . Évalué à 1.
[^] # Re: 377Fr
Posté par Anonyme . Évalué à 0.
Je suis en Erasmus en Suède (choix personnel, bien sûr), et les bouquins qu'on doit se payer ici pour les cours ne sont pas en dessous des 500 frs, quand ils ne montent pas au double.
Dites vous bien qu'un bouquin, ça se revent, au moins à la moitié de son prix. Et que des polys ou des photocopies ne remplacent pas quelquechose que vous pouvez avoir dans votre bibliothèque des années durant.
[^] # Re: 377Fr
Posté par ghent . Évalué à 1.
Mais on peut trouver des livres pas cher sur internet, même des fois les consultés online et les acheter après si on aime.
Il existe de très bonnes documentation sur http://linuxdoc.org(...) et un peu partout. Mais bon, rien ne remplace le confort d'un vrai livre.
[^] # Re: 377Fr
Posté par NebuchadnezzaR . Évalué à 1.
J'attends une version française...tant pis..
[^] # Re: 377Fr
Posté par Wawet76 . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.