Che cosa è un thread utente e un thread del kernel?

So che thread è e so come funzionano, ma sono abbastanza confuso riguardo a ciò che un thread utente e un thread del kernel sono in termini di ciò che è permesso di fare.

Puoi chiarire quali thread di utente può fare e cosa può fare un thread del kernel?

Un thread del kernel, talvolta chiamato LWP (Lightweight Process) viene creato e pianificato dal kernel. I thread del kernel sono spesso più costosi per creare thread di utenti e le chiamate di sistema per creare direttamente thread del kernel sono molto piattaforms specifiche.

Normalmente un thread utente viene creato da una libreria di threading e la pianificazione viene gestita dalla stessa libreria di threading (che viene eseguita in modalità utente). Tutte le discussioni dell'utente appartengono al process che li ha creati. Il vantaggio dei thread utente è che sono porttili. La differenza principale può essere visto quando si utilizzano sisthemes multiprocessri, i thread utente completamente gestiti dalla libreria di threading non possono essere eseguiti in parallelo sulle diverse CPU, anche se ciò significa che functionranno bene sui sisthemes uniprocessri. Poiché i thread del kernel utilizzano lo scheduler del kernel, diversi thread del kernel possono essere eseguiti su diverse CPU. Molti sisthemes implementano il threading in modo diverso,

Un model di threading da molti a uno mapa molti processi utente direttamente a un thread del kernel, il thread del kernel può essere considerato come il process principale. Un model di threading one-to-one mappe each thread utente direttamente a un thread del kernel, questo model consente l'elaborazione parallela sui sisthemes multiprocessri. Ogni thread del kernel può essere considerato come un VP (Processo Virtuale) che è gestito dallo scheduler.

Fonte: Risposte

Inoltre puoi trovare informazioni in wikipedia capitolo 3 – 3 Processi, thread del kernel, thread utente e fibre:

Filo

Un thread del kernel è in realtà il thread del sistema che non è nel controllo dell'utente, ma il thread utente è totalmente per l'utente. Utilizzatore utilizza il thread utente e viene istruito e controllato dal thread del kernel. speriamo che il tuo concetto sia chiaro ora 🙂