Interrupt



Gli interrupt di onClock che si verificano mentre sono mascherati, per esempio nella funzione onSys, rimangono pendenti e possono causare una schedulazione non voluta al momento della riabilitazione, se nel frattempo era stato schedulato un altro thread. Per evitare questo problema, peraltro rarissimo, nella routine di gestione del timer interrupt controlliamo che effetivamente il timeslice sia esaurito.

Se un interrupt avviene prima della corrispondente richiesta di WaitIO, viene memorizzato e all'arrivo la richiesta viene soddisfatta immediatamente. Nel caso in cui avvenga prima la richiesta, viene memorizzato il thread richiedente.

Al fine di aumentare l'efficienza, le routine di gestione degli interrupt si sostituiscono all'SSI e risvegliano direttamente i thread che hanno richiesto i servizi.


[LancOS Home] [AMPEOS Index] [Indice codice] [Fasi 1 & 2] [Fase 3]