How (not) to structure applications into threads
Easy ways
Server: one kernel thread per client
Interactive application: one kernel thread per task