| 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. |