Esempio n. 1
0
void proc1(void)
{
    for (;;) {
        printf("[%s] pid = %i\n", mon_nom(), mon_pid());
        for (int32_t i = 0; i < 100000000; i++);
        ordonnance();
    }
}
Esempio n. 2
0
void proc3(void)
{
    for (uint32_t i = 0 ; i < 1 ; i++)
    {
        printf("[temps = %u] processus %s pid = %i\n", nbr_secondes(), mon_nom(), mon_pid());
        dors(1);
    }
    cree_processus( proc1, "proc1");
    cree_processus( proc2, "proc2");
}
Esempio n. 3
0
void ordonnance()
{
    // ne pas oublier de changer l'état des processus
    int32_t pid_actif = mon_pid();
    int32_t pid_suivant = (pid_actif +1)%NB_PROCESS;
    actif->etat = ACTIVABLE;
    actif = &(tab[pid_suivant]);
    actif->etat = ELU;
    ctx_sw(tab[pid_actif].sauvegarde_registre,tab[pid_suivant].sauvegarde_registre);

}