/ / Una volta ceduto il thread, il sistema operativo passerà l'esecuzione a un processo idol? - linux, multithreading, sistema operativo, multiprocessing

Una volta che il thread è stato restituito, il sistema operativo cambierà l'esecuzione in un processo idolo? - linux, multithreading, sistema operativo, multiprocessing

Sono nuovo del sistema operativo, quindi non ho capito questo concetto

Una volta ceduto il thread, il sistema operativo passerà l'esecuzione a un processo idol per modificare la priorità del thread chiamante corrente. ??? se sì allora come se no allora come ??????

risposte:

2 per risposta № 1

Quando un thread cede, il sistema operativo potrebbeusa quel core per eseguire qualsiasi thread pronto per l'esecuzione (dallo stesso processo o da qualche altro processo) che ritiene debba essere eseguito. Potrebbe anche tornare immediatamente al thread cedente anche se ci sono altri thread pronti per l'esecuzione, perché altrimenti potrebbe essere necessaria una costosa sincronizzazione inter-core.

Il "come" è sostanzialmente il seguente:

  1. Il sistema operativo entra in modalità protetta e chiama lo scheduler per vedere se esiste un altro thread pronto per essere eseguito.

  2. In tal caso, si verifica un cambio di contesto e il contesto utente da ripristinare viene passato al contesto del nuovo thread e il contesto del thread precedente viene memorizzato.

  3. Il kernel ritorna nello spazio utente, ripristinando il contesto utente del thread che desidera eseguire.

Alcuni sistemi operativi dispongono di pool separati di pronti per l'esecuzionethread per ciascun core per evitare che lo scheduler abbia "un unico blocco" che rallenta gli switch di contesto a causa della sincronizzazione inter-core. Un sistema operativo del genere potrebbe non produrre effettivamente se tutti i thread pronti all'uso sono "posseduti" da altri core, oppure potrebbe decidere che questa situazione giustifichi la sincronizzazione inter-core e controllare gli altri core per "rubare" un ready-to-run thread (o thread "trade").