Why blocking system calls blocks entire procedure with user-level threads?
<p>I don't understand the following:</p>

<p>User-level threads requires non-blocking systems call i.e., a multithreaded kernel. Otherwise, entire process will blocked in the kernel, even if there are runable threads left in the processes.</p>

<p>How the kernel threads handle the blocking system calls? In the user-level threads when one thread is making a blocking system call (e.g. read) why can't other threads continue their work?</p>