| 15 | | |
| 16 | | (this Site is under construction) |
| 17 | | == I. Organisation des bibliothèques système == |
| 18 | | La figure suivante illustre la modalisation du système : |
| 19 | | |
| 20 | | |
| 21 | | [[Image(modalisation_mutekp.PNG, nolink)]][[BR]] |
| 22 | | Les bibliothèques constituant le système sont : |
| 23 | | * pthread : contient l’implémentation d’un sous-ensemble des thread POSIX. |
| 24 | | * libc : contient l’implémentation des services système tel que malloc, printf, pipe, memcpy …etc. |
| 25 | | * mwmr : contient l’implémentation du protocole MWMR. |
| 26 | | * cpu : contient le code système en assembleur qui dépend de type des processeurs de la plate-forme. |
| 27 | | * arch : contient le code C qui dépend de la plate-forme tel que des configurations système vis-à-vis des composants de la plate-forme, les ISR d’interruption des différant types de cibles …etc. |
| 28 | | |
| 29 | | Les bibliothèques pthread, libc et mwmr sont indépendantes de la spécification de la plate-forme. |
| 30 | | |
| 31 | | En cas de modification au niveau de la configuration matériel, il suffit d’adapter le code système des deux bibliothèques cpu et arch pour pouvoir déployer MUTEKP sur la nouvelle plate-forme. |
| 32 | | |
| 33 | | == II. API du système == |
| 34 | | MUTEKP fourni trois bibliothèques pour les threads de l’application : |
| 35 | | |
| 36 | | * Un sous-ensemble de l'API des threads POSIX : |
| 37 | | * [wiki:pthread_attr_init]: initier la structure d’un attribut. |
| 38 | | * [wiki:pthread_create]: créer une tâche |
| 39 | | * [wiki:pthread_exit]: mettre fin à une tâche avec une valeur de retour |
| 40 | | * [wiki:pthread_self]: Donner l’indenté du thread appelant. |
| 41 | | * [wiki:pthread_equal]: tester l’égalité entre deux identificateur. |
| 42 | | * [wiki:pthread_yield]: céder le processeur pour un autre thread. |
| 43 | | * [wiki:pthread_join]: attendre la fin d’un thread. |
| 44 | | * [wiki:pthread_spin_init]: initialiser un verrou à une attente active. |
| 45 | | * [wiki:pthread_spin_destroy]: détruire un verrou. |
| 46 | | * [wiki:pthread_spin_lock]: verrouiller le verrou à une attente active. |
| 47 | | * [wiki:pthread_spin_trylock]: version non bloquante de pthread_spin_lock. |
| 48 | | * [wiki:pthread_spin_unlock]: déverrouiller le verrou à une attente active. |
| 49 | | |
| 50 | | * Les fonctions implémentant le protocole MWMR : |
| 51 | | * [wiki:mwmr_read]: lecture d’un FIFO MWMR. |
| 52 | | * [wiki:mwmr_write]: écriture dans un FIFO MWMR. |
| 53 | | * [wiki:mwmr_init]: création et initialisation d’un FIFO MWMR. |
| 54 | | |
| 55 | | * Quelques fonctions de la bibliothèque libC : |
| 56 | | * [wiki:printf]: afficher une chaîne de caractère formatée. |
| 57 | | * [wiki:malloc]: allocation de mémoire dynamique. |
| 58 | | * [wiki:pipe]: créer un tube de communication (par flux d’octets) enter deux threads. |
| 59 | | * [wiki:read]: pour lire d’un buffer ou un tube. |
| 60 | | * [wiki:write]: pour écrire dans un buffer ou un tube. |
| 61 | | * [wiki:memset]: remplir une zone mémoire par une valeur donnée. |
| 62 | | * [wiki:memcpy]: copie une zone moire source vers une autre zone mémoire distination. |
| 63 | | |
| 64 | | La norme POSIX ne propose pas dans son API pthread aucun appel permettant d’affecter ou de spécifier un thread à un processeur donné.[[BR]] |
| 65 | | MUTEKP propose l’appel [wiki:pthread_attr_setprocid_np] qui permet d’affecter un numéro de processeur à un attribut. Cela permettra de préciser sur quel processeur le nouveau thread va-t-il s’exécuter. |
| 66 | | |
| 67 | | == III. L’Organisation des fichiers systèmes == |
| 68 | | == IV. La génération d’une application == |
| 69 | | == V. Description de la plateforme == |