| 27 | MUTEKP fourni trois bibliothèques pour les threads de l’application : |
| 28 | |
| 29 | * Un sous-ensemble de l'API des threads POSIX : |
| 30 | * pthread_attr_init : initier la structure d’un attribut. |
| 31 | * pthread_create : créer une tâche |
| 32 | * pthread_exit : mettre fin à une tâche avec une valeur de retour |
| 33 | * pthread_self : Donner l’indenté du thread appelant. |
| 34 | * pthread_equal : tester l’égalité entre deux identificateur. |
| 35 | * pthread_yield : céder le processeur pour un autre thread. |
| 36 | * pthread_join : attendre la fin d’un thread. |
| 37 | * pthread_spin_init : initialiser un verrou à une attente active. |
| 38 | * pthread_spin_destroy: détruire un verrou. |
| 39 | * pthread_spin_lock : verrouiller le verrou à une attente active. |
| 40 | * pthread_spin_trylock : version non bloquante de pthread_spin_lock. |
| 41 | * pthread_spin_unlock : déverrouiller le verrou à une attente active. |
| 42 | |
| 43 | * Les fonctions implémentant le protocole MWMR : |
| 44 | * mwmr_read : lecture d’un FIFO MWMR. |
| 45 | * mwmr_write : écriture dans un FIFO MWMR. |
| 46 | * mwmr_init : création et initialisation d’un FIFO MWMR. |
| 47 | |
| 48 | * Quelques fonctions de la bibliothèque libC : |
| 49 | * printf : afficher une chaîne de caractère formatée. |
| 50 | * malloc : allocation de mémoire dynamique. |
| 51 | * pipe : créer un tube de communication (par flux d’octets) enter deux threads. |
| 52 | * read : pour lire d’un buffer ou un tube. |
| 53 | * write : pour écrire dans un buffer ou un tube. |
| 54 | * memset : remplir une zone mémoire par une valeur donnée. |
| 55 | * memcpy : copie une zone moire source vers une autre zone mémoire distination. |
| 56 | |
| 57 | La norme POSIX ne propose pas dans son API pthread aucun appel permettant d’affecter ou de spécifier un thread à un processeur donné. |
| 58 | |
| 59 | MUTEKP propose l’appel pthread_attr_setprocid_np qui permet d’affecter un numéro de processeur à un attribue. Cela permettra de passer cette attribue au moment de la création d’un nouveau thread, ainsi de préciser sur quel processeur ce dernier va-t-il s’exécuter. |
| 60 | |