molila bi pomoć oko programa. Trebam napisati program koji omogućava obradu prekida s više razina/prioriteta.
Struktura prekidne rutine je sljedeći pseudokod:
prekidna_rutina /* pokreće se pojavom prekida uz zabranu daljih prekida */
{
ispiši_vrijeme_ulaska_u_prekidnu_rutinu();
odredi uzrok prekida, tj. indeks i;
OZNAKA_ČEKANJA [i] =1;
ponavljaj {
/* odredi prekid najvećeg prioriteta koji čeka na obradu */
x=0;
za j = tekući_prioritet + 1 do N radi {
ako jue (oznaka_čekanja [j]<>0) tada {
x=j;
}
}
/* ako postoji prekid koji čeka i prioritetniji je od trenutnog posla, idi ako je (x>0) tada {
oznaka_čekanja [x] = 0;
prioritet[x] = tekući_prioritet;
tekući_prioritet = x;
omogući prekidanje;
obrada_prekida (x);
zabrani prekidanje;
tekući_prioritet = prioritet [x];
}
} dok je (x = 0);
} /*povratkom se automatski dozvoljavaju prekidi (signali) koji su uzrokovali pozive ove f-je */