In che modo il sistema operativo riprende il controllo durante il multitasking? [duplicare]

0

Ho capito come più processi possono essere eseguiti su un singolo core interlacciando l'elaborazione. Quello che non capisco è come il sistema operativo garantisce che il programma rilasci il processore dopo un certo periodo di tempo. Se è possibile eseguire un solo programma alla volta e l'os consente l'esecuzione di un processo, che cosa impedisce che tale processo non restituisca mai il processore?

    
posta ConditionRacer 08.06.2013 - 02:02
fonte

3 risposte

6

Come dice @rachet_freak, ci sono timer hardware che interrompono gli interrupt che possono cambiare l'esecuzione al kernel quando il timeslice dei processi è attivo. Inoltre, ogni volta che si chiama un servizio del sistema operativo, ad esempio l'allocazione della memoria, la lettura dalla tastiera, la scrittura su un disco, ecc. Il codice del sistema operativo può decidere che il processo deve attendere e attivare un altro processo.

    
risposta data 08.06.2013 - 02:17
fonte
3

interrompe da un orologio esterno con il timeout impostato all'inizio del timelot di un processo, che torna immediatamente a il sistema operativo

    
risposta data 08.06.2013 - 02:07
fonte
3

In generale, gli approcci possono essere classificati (concettualmente) in due tipi:

  • Preemptive multi-tasking.
  • Cooperativa multi-tasking.

I dettagli per entrambi possono essere trovati in la domanda che Charles E. Grant ha commentato la tua domanda.

Esiste un'ulteriore classificazione in multi-tasking cooperativo:

  • Le applicazioni devono richiamare periodicamente una funzione del sistema operativo per consentire al sistema operativo di eseguire il proprio lavoro, senza alcun beneficio per l'applicazione stessa. In genere questo è definito yielding .
  • L'applicazione può richiedere alcuni servizi dal sistema operativo effettuando una chiamata al sistema operativo, come l'apertura / lettura / scrittura di un blocco di un file o la lettura da una porta o rete. Il sistema operativo potrebbe cogliere questa opportunità per svolgere un lavoro aggiuntivo di per sé.
risposta data 08.06.2013 - 04:21
fonte

Leggi altre domande sui tag