Changes between Version 27 and Version 28 of AS6-TME-B5


Ignore:
Timestamp:
Feb 21, 2022, 1:51:04 PM (3 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AS6-TME-B5

    v27 v28  
    272272 * J'ai déjà décrit les étapes dans d'autres réponses, mais je vais le refaire.
    273273 * `thread_bootstrap()` appelle `thread_launch()` qui appelle `thread_start()` ou `_start` qui appelle la fonction principale de thread.
    274    * `thread_bootstrap()`\\se contente de changer l'état du thread élu à `RUNNING` (`sched_switch()` donnera aussi cet état quand le thread sera réélu, mais pour le moment c'est la première fois que le thread est choisi alors on n'est pas revu dans `sched_switch()`.
    275    * `thread_launch()`
    276    * `thread_start()`
     274   * `thread_bootstrap()`\\se contente de changer l'état du thread élu à `RUNNING` (`sched_switch()` donnera aussi cet état quand le thread sera réélu, mais pour le moment c'est la première fois que le thread est choisi alors on n'est pas revu dans `sched_switch()`),\\puis `thread_bootstrap()` appelle `thread_launch()` en lui donnant 3 arguments : la fonction principale du thread, son argument et la fonction de démarrage du thread. Dans le cas du thread `main()`, les deux premiers arguments sont NULL parce la fonction de démarrage du thread main `_start()` sait ce qu'il faut faire (lancer `main()`)
     275   * `thread_launch()`\\c'est juste l'appel à `eret` après avoir initialisé `c0_EPC` avec l'adresse de la fonction de démarrage du thread.
     276   * `thread_start()` ou `_start()`\\on est dans le code de l'application, on appelle
    277277'''
    278278}}}