OS design

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re:OS design

Post by Solar »

Brendan wrote: The user-level threading wasn't too good because it was outside of the kernel's control - there was no way to tell the kernel the priority of your threads, and in some cases (with really old round robin kernel schedulers) you couldn't even tell the kernel that all of the threads within the process where blocked/waiting.

Eventually different versions of *nix built multi-threading support into the kernel to get rid of the problems with user-level threads.
I wouldn't dismiss user-level threads lightly. In the guise of "lightweight threads" or "coroutines", several modern kernel designs pretty much revolve around them - being designed in instead of retrofitted, of course.

You can switch between them quickly, without "risking" to lose focus to another address space, and there are several other nifty things can be done with them which I can't explain in a sentence. ;)
Every good solution is obvious once you've found it.
Post Reply