2012-08-24 13 views
6

Ho una domanda relativa al tempo quantico dato a processi e thread in windows e linux.Tempo quantico per processo per thread

So che i sistemi operativi in ​​generale forniscono una quantità di tempo fissa per thread. (So ​​che il tempo cambia in base ai thread in primo piano o in background. Può anche variare a seconda della priorità di un processo.)

Esiste un tempo quantico fisso per processo? Per es. Se il sistema operativo fornisce 36 tempi per processo e se un processo ha 2 thread, ognuno otterrà 18 quantici. Se il numero di thread diventa 3, allora ognuno otterrà 12.

Tuttavia, se non esiste un valore quantico per processo e il sistema operativo fornisce il quantum di correzione per thread (Nessuna dipendenza dal processo padre), potrei essere in grado di fare il mio processo è più efficiente generando più thread. (Supponendo di non avere due molti mutex/semafori nel mio codice)

Ho un'applicazione che gira su entrambi i sistemi operativi (Windows e Linux). Quindi, lo sto chiedendo in senso generale.

Grazie

+0

Da dove viene questo termine terribile 'quantum' viene? Il 99,99% di tutti i thread non viene mai eseguito per qualcosa che si avvicina all'intervallo di pianificazione del timer del sistema operativo prima di essere bloccato su I/O, un altro thread o un'altra chiamata di sistema. Pensavo che i "quanti" dovessero essere indivisibili? Termine stupido che dà impressioni fuorvianti! –

+0

Si potrebbe voler controllare questo: http://support.microsoft.com/kb/259025 –

+0

smith - M $, avrei dovuto indovinato ... –

risposta

1

su Linux da una programmazione thread e processi prospettiche sono equivalenti. Quindi se un processo genera due thread, ognuno dovrebbe ottenere 36 quantum. Anche se mi piacerebbe sentire questo da qualcuno con una credibilità maggiore della mia per confermare.

+1

Anche Windows. Lo schedulatore tratta i thread, non i processi. –

+0

@Harry: In tal caso, un processo può rubare più tempo avendo più thread. Questa affermazione è giusta? –

+0

Sì, anche se chiamarlo "rubare" sembra leggermente strano. :-) –

Problemi correlati