Kernel-Assisted Scheduling and Deadline Support for Software Transactional Memory
Résumé
Le concept de mémoire transactionelle (TM) vise à simplifier la programmation d’applications concurrentes. En particulier, le support logiciel de la mémoire transactionelle, ne nécessitant pas d’infrastructure matérielle spécifique, a été l’objet d’une grande attention ces dernières années. Une TM exécute des blocs de code dont les accès doivent apparaître atomique (transactions) de manière optimiste et résoud les conflits lorsque ceux-ci sont détéctés, avec l’aide d’un gestionnaire de contention (CM). Nous présentons dans cet articles deux approches pour améliorer la performance des TM, fondées sur un support au niveau du noyau Linux. La première approche propose des CMs ollaborant avec l’ordonnanceur de tâches, et la deuxième propose la mise en œuvre de modes d’exécution adaptatifs pour le support de contraintes temporelles sur la terminaison des transactions. Nos résultats sont validés par une mise en œuvre au sein de TinySTM et par une évaluation à l’aide d’applications synthétiques et réalistes.