I am in an Operating Systems class at my university, and I am working on a presentation about Unix process scheduling. I decided to focus on the ULE scheduler because I have been looking to move to FreeBSD for a while.
This is a deep dive into the scheduler internals. As such, I have a few questions.
I have both relevant man pages that I could find (sched_ule(4) and scheduler(9)) in front of me. Both give a high-level overview, and I need more detail. I am also trying to understand the source, but it may take me a while.
I also have the 2003 ULE paper. Is it still relevant, or is it out-of-date?
On top of that, I have been thinking about buying The Design and Implementation of the FreeBSD Operating System. Does it have a section about ULE's internals? Or is there another good guide to how ULE works?
Here are some general questions:
This is a deep dive into the scheduler internals. As such, I have a few questions.
I have both relevant man pages that I could find (sched_ule(4) and scheduler(9)) in front of me. Both give a high-level overview, and I need more detail. I am also trying to understand the source, but it may take me a while.
I also have the 2003 ULE paper. Is it still relevant, or is it out-of-date?
On top of that, I have been thinking about buying The Design and Implementation of the FreeBSD Operating System. Does it have a section about ULE's internals? Or is there another good guide to how ULE works?
Here are some general questions:
- What is the overall Big O complexity? And if you have the figures handily available, what is the Big O complexity of each function?
- What does the interactivity hint change? What does the scheduler do differently?
- Is it capable of soft real-time scheduling? Hard real-time scheduling? And if so, how is it accessed?
- How does it keep processor affinity? How does it change the assigned CPU in the cases when it is necessary to do so?