giacky98 ha scritto:- Il programma si accorge che è arrivata un‘interrupt perché viene chiamata la funzione relativa all‘interrupt (es. SIG in C o una label nel mio linguaggio)
Sbagliato.
Il programma principale non si accorge per niente che è stata sollevata un' interrupt.
giacky98 ha scritto:- Non credo che si possa risalire a “quando“, si potrebbe controllare in che posizione è il program counter per capire a che istruzione è scattato l‘interrupt
Quasi giusto, tecnicamente fattibile ma non dal programma principale, bensì dalla routine di gestione dell' interrupt. Potrebbe saperlo (la ruotine) andando a sbirciare lo stack (in fondo questo è quello che fa lo scheduler di un sistema multitasking non cooperativo ma per ora è meglio non parlarne).
Ora le domande successive sono:
- visto che il programma (task) in esecuzione non si accorge che è stata sollevata l' interrupt e tanto meno sa quando e dove è stata sollevata perché dovresti preoccupartene tu nel progettare l' interprete?
- Che ti frega sapere se l' interrupt è arrivata mentre era in esecuzione il task A, B o C o un qualsiasi altro? Cosa cambia?
Sono altre DUE domande. Aspetto DUE risposte.