void proc1(void) { for (;;) { printf("[%s] pid = %i\n", mon_nom(), mon_pid()); for (int32_t i = 0; i < 100000000; i++); ordonnance(); } }
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"); }
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); }