My Project
Chargement...
Recherche...
Aucune correspondance
scheduler.h
Aller à la documentation de ce fichier.
1/*----------------------------------------------------------------------------*/
2/* Définition du scheduler de Manux. Version trés minimale à revoir. */
3/* */
4/* (C) Manu Chaput 2000 */
5/*----------------------------------------------------------------------------*/
6#ifndef SCHEDULER_DEF
7#define SCHEDULER_DEF
8
9#include <manux/types.h>
10#include <manux/tache.h>
11#include <manux/listetaches.h>
12#include <manux/atomique.h>
13#include <manux/appelsysteme.h>
14
15/*
16 * Pour permettre la gestion des consoles virtuelles. WARNING n'a rien
17 * à faire là
18 */
22
26extern Tache * tacheEnCours;
27
36
41
46
54#if defined(MANUX_TACHES) && !defined(MANUX_REENTRANT)
55extern struct _ExclusionMutuelle verrouGeneralDuNoyau;
56extern TacheID tacheDansLeNoyau;
57#endif
58
59void initialiserScheduler(void);
60/*
61 * Déclencher le scheduler avant toute création de tache
62 */
63
69void ordonnanceurAddTache(Tache * tache);
70
71/*
72TacheID ordonnancerTache(CorpsTache corpsTache, booleen nouvelleConsole);
73 * Création d'une nouvelle tâche et mise de celle-ci dans
74 * la liste du scheduler. Si nouvelleConsole est vrai, on crée une
75 * nouvelle console pour cette tâche. Sinon elle hérite de celle de
76 * son créateur.
77 */
78
82void ordonnanceur(void);
83
87TacheID ordonnanceurCreerTacheNoyau(CorpsTache corpsTache);
88
90/*
91 * Obtention du numero de la tache en cours. WARNING ça n'a rien
92 * à faire là ...
93 */
94
96/*
97 * Obtention de la console de la tache en cours. WARNING ça n'a rien
98 * à faire là ...
99 */
100
102/*
103 * Implantation de l'appel système d'invocation de l'ordonnanceur
104 */
105
106TacheID sys_creerTache(ParametreAS as, CorpsTache corpsTache, booleen shareConsole);
107
108#endif
Définition des opérations de synchronisation de ManuX.
unsigned long uint32_t
Definition types.h:20
uint16_t TacheID
Definition types.h:61
int booleen
Definition types.h:32
ListeTache listeTachesTerminees
: La liste des tâches achevées
Definition scheduler.c:86
ListeTache listeToutesLesTaches
: La liste de toutes les tâches existant sur le système.
Definition scheduler.c:81
int sys_identifiantTache(void)
void initialiserScheduler(void)
Identifiant de la tâche actuellement en cours d'exécution dans le noyau (0 si aucune)
Definition scheduler.c:181
booleen basculerTacheDemande
Definition scheduler.c:54
ListeTache listeTachesPretes
: La liste des tâches prêtes sur le système
Definition scheduler.c:76
uint32_t AS_console(void)
TacheID sys_creerTache(ParametreAS as, CorpsTache corpsTache, booleen shareConsole)
Tache * tacheEnCours
: L'identification de la tâche en cours
Definition scheduler.c:91
booleen basculeConsoleDemandee
Definition scheduler.c:52
void ordonnanceur(void)
Basculer vers la prochaine tache à exécuter.
Definition scheduler.c:98
int sys_basculerTache(ParametreAS as)
booleen afficheEtatSystemeDemande
TacheID ordonnanceurCreerTacheNoyau(CorpsTache corpsTache)
Création et ordonnancement d'une tâche noyau.
Definition scheduler.c:349
void ordonnanceurAddTache(Tache *tache)
Ajout d'une tâche dans l'ordonnanceur.
Definition scheduler.c:171
Définition des exclusions mutuelles.
: Définition du type décrivant une tache.
Definition tache.h:83