void kernel_start(void){ /* Initialisation de l'écran et du curseur */ efface_ecran(); place_curseur(0,0); /* Initialisation des interruptions */ masque_IRQ(0, false); init_traitant_IT(32, traitant_IT_32); /* Initialisation de l'horloge */ set_clock(); /* Initialisation des processus */ cree_processus("idle", NULL, ELU); cree_processus("proc_proc1", proc1, ACTIVABLE); cree_processus("proc_proc2", proc2, ACTIVABLE); cree_processus("proc_proc3", proc3, ACTIVABLE); processus_elu = tab_processus[0]; /* Démarrage du processus par defaut */ idle(); while(1) { hlt(); } }
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 idle() { cree_processus( proc1, "proc1"); for (;;) { sti(); hlt(); cli(); } }