Changes between Version 7 and Version 8 of AS6-TME-B7


Ignore:
Timestamp:
Apr 11, 2022, 5:41:37 PM (2 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AS6-TME-B7

    v7 v8  
    5050}}}
    51511.  Nous avons vu le problème ABA, est-ce que la solution proposée par le MIPS pour gérer les sections critiques à ce problème ? Si non, est-ce que cela a un coût matériel ?
     52{{{#!protected ------------------------------------------------------------------
     53'''
     54 *
     55'''
     56}}}
     571. Les threads avaient 3 états différents : READY (en attente du processeur), RUNNING (en cours d'exécution) et DEAD (définitivement stoppé et effaçable). Ils ont désormais 2 nouveaux états : WAIT (en attente d'une ressource) et ZOMBIE (définitivement stoppé mais en attente qu'un autre thread récupère la valeur de retour). Quelles sont les deux nouvelles fonctions de l'API kernel des threads permettant respectivement de passer de l'état RUNNING à l'état WAIT et de l'état WAIT à l'état READY ? Est-ce que ces fonctions sont utilisables par l'application ?
     58{{{#!protected ------------------------------------------------------------------
     59'''
     60 *
     61'''
     62}}}
     631. Les fonctions `thread_join()` et `thread_exit()` fonctionnent de manière coordonnée, `thread_join()` permet à un thread de se mettre en attente de l'exécution de `thread_exit()` par un autre. Est-ce qu'un thread peut attendre simultanément plusieurs threads en même temps ?
     64{{{#!protected ------------------------------------------------------------------
     65'''
     66 *
     67'''
     68}}}
     691. Un thread passe de l'état RUNNING à l'état ZOMBIE lorsqu'il appelle `thread_exit()`, quand passe-t-il à l'état DEAD ?
     70{{{#!protected ------------------------------------------------------------------
     71'''
     72 *
     73'''
     74}}}
     751. 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
    5276{{{#!protected ------------------------------------------------------------------
    5377'''