75 | | 1. Le contenu de la structure `struct thread_s` (c'est-à-dire les champs qui la compose est définie dans le fichier `kernel/kthread.c`. En conséquence cette structure n'est utilisable que par les fonctions de ce même fichier `kernel/kthread.c`. A l'extérieur, les fonctions ne manipulent que des pointeurs sur la structure de type `thread_t` (défnis par |
| 75 | 1. Le contenu de la structure `struct thread_s` (c'est-à-dire les champs qui la compose) est définie dans le fichier `kernel/kthread.c`. En conséquence cette structure n'est utilisable que par les fonctions de ce même fichier `kernel/kthread.c`. A l'extérieur, les fonctions ne manipulent que des pointeurs sur la structure de type `thread_t` (défnis par un `typedef struct thread_s * thread_t`. Pourquoi ce choix, pourquoi n'avoir pas définie la structure `thread_s` dans le fichier `kernel/kthread.h` ? |
| 76 | {{{#!protected ------------------------------------------------------------------ |
| 77 | ''' |
| 78 | * |
| 79 | ''' |
| 80 | }}} |
| 81 | 1. Qu'est qu'une `race condition` (en français c'est traduit par "condition de compétition") ? Est-ce que c'est vraiment un problème ou seulement un problème d'optimisation de code ? Donnez un exemple de cas où cela se produit ? |
| 82 | {{{#!protected ------------------------------------------------------------------ |
| 83 | ''' |
| 84 | * |
| 85 | ''' |
| 86 | }}} |
| 87 | 1. Les spinlocks et les mutex sont deux mécanismes permettant d'implémenter les verrous. Qu'est-ce qui les distingue ? Lequel s'appuie sur l'autre ? |
| 88 | {{{#!protected ------------------------------------------------------------------ |
| 89 | ''' |
| 90 | * |
| 91 | ''' |
| 92 | }}} |
| 93 | 1. |