Domanda

In altre parole, quali vantaggi ha filettatura ibrida abbiamo più di 1: 1 (kernel solo) e N:? 1 (utente solo) filettatura

Si tratta di un follow-up a Qual è la differenza tra le discussioni a livello di utente e le discussioni a livello di kernel?

È stato utile?

Soluzione

Credo threading ibrido è molto simile ad una filo piscina .

Nel pool di thread, si utilizza $ N discussioni $ kernel di eseguire $ M $ “compiti”, dove $ M $ può essere molto più alto di $ N $. Il vantaggio rispetto all'utilizzo di un thread per ogni attività (kernel solo filettatura) è che si consumano meno risorse, come la memoria (sia virtuali che fisici) oggetti e del kernel (almeno nel caso specifico di thread di Windows, ma immagino altri sistemi operativi sono simili a questo proposito). Vedrete anche cambi di contesto meno, che aumenta le prestazioni (nel caso ideale, in cui si ha il maggior numero di thread in esecuzione quando si dispone di processori, si può avere quasi nessuno di contesto).

Il vantaggio rispetto utente solo threading è che si può usufruire di più CPU o più core di CPU. E se blocchi di un compito, è possibile creare un altro thread del kernel di utilizzare la CPU a disposizione in modo più efficiente.

Quindi, si ottiene i vantaggi di entrambi gli approcci, a scapito di alcune ulteriori scheduling in modalità utente.

Uno svantaggio su kernel solo la pianificazione è la latenza forse più grande:. Se tutti i thread nel pool sono occupati e si aggiungono nuovi compito breve, si può aspettare molto tempo prima di iniziare l'esecuzione

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a cs.stackexchange
scroll top