Rechercher

[KP06] Noyau de concurrence par moniteur pour Java ou C#: pour une autre sémantique plus fiable et plus performante

Rapport Scientifique : Date de dépot: 2006/01/01, Nb pages 12 p, (Tech. Rep.: CEDRIC-06-1021)
motcle:
Résumé: Résumé (french) : Avec l'extension de Java et C# et de leur emploi pour programmer des applications embarquées mobiles ou temps réel puis pour introduire des processus concurrents dans ces applications, se développe l'idée d'écrire aussi les systèmes d'exploitation et les plates-formes dans ces langages. Nous comparons deux politiques possibles pour gérer le blocage et le réveil des "threads" qui partagent un objet sous contrôlele de la structure de "moniteur". Cela renvoie à deux sémantiques différentes pour le moniteur. L'une de celles-ci entraîne des interblocages pour des algorithmes qui, pour d'autres implantations, sont fiables ou à des commutations de contexte superflues et coûteuses. L'autre sémantique n'a pas ces défauts. Il se trouve que Java et C# ont choisi la plus mauvaise de ces politiques. Nous explicitons cela sur des exemples. Nous montrons aussi la limitation de performance introduite par le choix de Java d'une file d'attente unique, implicite, par objet monitoré. Enfin nous utilisons une mesure de complexité des algorithmes concurrents pour comparer des implantations avec ces deux sémantiques. Nous proposons aux développeurs de systèmes d'exploitation des éléments pour améliorer la qualité du contrôle de concurrence en reconsidérant les choix d'implantation du moniteur. Abstract : With the development of embedded and mobile systems, Java and C#, which are widely used for application programs, are also considered for implementing systems kernel or application platforms. It is the aim of this paper to exemplify some subtle deadlocks and some inefficiencies that may result from the process queuing and awaking policy which has been chosen for implementing the monitor concept in these languages. Several examples are given, two of them showing unforeseen deadlocks, another one showing the limitation of the implicit unique queue of Java. We compare some solutions with a complexity measure for concurrent programs. Last we propose some iplementation changes for an operating system providingmore robust Java or C# monitor implementations.

Commentaires: Related material available on the Quasar Website http://quasar.cnam.fr/files/concurrency_papers.html

BibTeX

@techreport {
KP06,
title="{Noyau de concurrence par moniteur pour Java ou C#: pour une autre sémantique plus fiable et plus performante}",
author="C. Kaiser and J. Pradat-Peyre",
number="{CEDRIC-06-1021}",
institution="{CEDRIC laboratory, CNAM-Paris, France}",
date={01-01-2006},
pages="12 p",
note="{ Related material available on the Quasar Website http://quasar.cnam.fr/files/concurrency_papers.html}",
}