Úteis para AIO e interrupts. Equivalente ao pagedaeomn e a nfsd em Unix.
Podem fazer syscalls e bloquear.
Podem correr em CPUs diferentes.
Precisam de mais estado do que KT: pilha e contexto de registos. Precisam de syscalls para serem criados, sincronização (para blocking), context switching e escalonamento. Isso obriga a 2 mode switches atravessando protection boundary.
Interação é rápida, escalonamento é feito pela aplicação. AIO permite não bloquear thread à custa de complexidade de programação. Ideais para window systems.
Problema: separação entre UT e LWP: kernel não pode saber que LWP tem os melhores threads; UTs podem perder LWPs, não suportam paralelismo.