[TEORIA] Interrupt e multiprogrammazione

robe921
Mi aiutereste cortesemente a rispondere a queste due domande? Erano presenti in una prova di informatica e, sinceramente, non so proprio cosa rispondere di preciso, soprattutto alla prima.

1) Descrivere in che modo avvengono le fasi di evocazione e rientro di un sottoprogramma (funzione o procedura) e in che modo si differenziano da evocazione di una routine di interrupt


2) Quali tipologie di interruzioni intervengono nei rispettivi tipi di multiprogrammazione?

Vi ringrazio

Risposte
robe921
potreste gentilmente rispondermi? avrei bisogno di una risposta entro domattina

TheDoubt
Per la prima potrei dire che la differenza sta nel salvataggio, o meno, del contesto di esecuzione.

Quando un programma invoca una procedura alloca altro spazio nello stack in cui va a scrivere le variabili locali di quella stessa procedura e il valore dei parametri passati, sposta il PC alla prima istruzione della procedura ed inizia ad eseguirla.
Quando la procedura termina, allora si dealloca lo spazio nello stack ad essa riservato e il PC punta all'istruzione successiva alla chiamata della procedura.

Quando avviene, invece, un'interruzione, allora lo stato del processo attualmente in esecuzione deve essere salvato: il contenuto dei registri, l'istruzione correntemente in esecuzione, ...
Ad impegnare la CPU saranno poi istruzioni che NON appartengono al processo stesso.

robe921
Anche nel caso dell'interruzione si salvano nello stack quelle informazioni?

hamming_burst
Oltre ciò che dice TheDoubt c'è da aggiungere che avviene un contest-switch tra user-layer e kernel-layer. Non so però quanto tu debba approfondire questa risposta e conosca questi argomenti, ma tieni conto che tutto ciò che ha descritto TheDoubt avviene a livello kernel e non nello spazio riservato dell'utente, ogni interrupt è prerogativa dell'OS la loro esecuzione.
Al massimo si può parlare di funzioni che hanno privilegio utente, ma che chiedono "il permesso" si esecuzione al kernel, richiamando funzioni proprie di esso.

Attenzione ti riferisci ad un "sottoprogramma" come codice di un linguaggio C o sottoprogramma dell'OS? In questi contesti è ben utilizzare la terminologia corretta.

2) Quali tipologie di interruzioni intervengono nei rispettivi tipi di multiprogrammazione?

si va dallo scheduler per la prelazione, ha interruzioni di tipo concorrente per la condivisione delle risorse tra processi/thread

robe921
Intendo l'evocazione di una subroutine, di una sotto-procedura

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.