5 | | ALMOS-MK est un système d'exploitation visant des architectures manycore à espace d'adressage partagé de type CC-NUMA telles que l'architecture TSAR, |
6 | | pouvant supporter jusqu'à 1024 coeurs. Ces architectures sont clusterisées, avec un banc mémoire physique par cluster. On vise tout particulièrement des applications parallèles multi-thread respectant la norme POSIX. |
| 5 | Ce document vise à spécifier les principes généraux de l'introduction des thread dans ALMOS-MK, qui est un système d'exploitation visant des architectures manycore à espace d'adressage partagé de type CC-NUMA (Cache Cohérent, Non Uniforme Memory Access), telles que l'architecture TSAR, qui peut supporter jusqu'à 1024 coeurs. |
| 6 | Ces architectures sont clusterisées, avec un banc mémoire physique par cluster. On vise tout particulièrement des applications parallèles multi-thread respectant la norme POSIX. |
| 7 | |
| 8 | Le système ALMOS-MK est l'héritier du système ALMOS, développé par Ghassan Almaless. Les principes généraux du système ALMOS sont décrits dans sa thèse. |
| 9 | La première version de ALMOS-MK, et en particulier le système de fichiers distribué et le mécanisme de communication par RPC ont été développés par Mohamed Karaoui, |
| 10 | Les principes généraux sont décrits dans sa thèse, mais cette première version ne supporte pas les threads. |
7 | 11 | |
8 | 12 | Pour garantir le passage à l'échelle, et favoriser la distribution des services système, ALMOS-MK repose sur l'approche ''Multi-Kernel'', dans laquelle il existe une instance du noyau dans chaque cluster de l'architecture, qui contrôle les ressources locales (mémoire et périphériques). Ces multiples instances coopèrent entre elles pour donner aux applications l'image d'un unique système contrôlant l'ensemble des ressources. Elles communiquent entre elles sur le modèle client /serveur en utilisant des RPCs (Remote Procédure Call). |
9 | 13 | |
10 | 14 | Pour réduire la consommation énergétique, ALMOS-MK supporte des architectures utilisant des processeurs 32 bits. Dans ce cas, chaque cluster possède un espace d'adressage physique 32 bits. Pour accéder à l'ensemble de l'espace adressage physique des architectures cibles (40 bits dans le cas de TSAR), ALMOS-MK s'exécute entièrement en adressage physique (la MMU paginée des coeurs est désactivée dès qu'on entre dans le noyau. Pour permettre au noyau d'un cluster K d'accéder directement à la mémoire de n'importe quel autre cluster, ALMOS-MK suppose l'existence de primitives ''remote_read'' et ''remote_write'' utilisant des adresses physiques étendues (CID / PTR) sur 64 bits (où CID est l'index du cluster sur 32 bits, et PTR est l'adresse physique locale dans le cluster sur 32 bits). Ces primitives sont en particulier utilisées pour implémenter le mécanisme RPC, mais peuvent aussi être utilisées pour accélérer certains mécanismes critiques en performance. |