Messages in this thread | | | Date | Mon, 8 Oct 2007 16:17:23 +0100 | From | "Thierry Brown" <> | Subject | Linux Kernel 2.6 CPU scheduler |
| |
Hi-
I wish to be personally CC'ed the answers/comments posted to the list in response to this post
I am new to Linux. i was reading about CPU scheduling in general and that of Linux Kernel 2.6 in particular. I have three main questions: 1- Assume that the upper [higher priority] queue is empty and that the lower queue contains a thread Th2. The latter is assigned to the CPU for a Quantum period of, say 30 ms. after 10 ms from its execution, a new thread Th1 is admitted to the upper queue. as such Th2 is pre- empted. Th1 is having the CPU.
At this context switch, will Th2 be switched to the expired array queue? i guess no. Then when Th2 is assigned to the CPU again, will its assigned quantum reset to 30 ms, or instead to 30-10.
2- i can't see the need of the expired array queue. according to what i have read, if any thread wants to use the cpu for a longer time than their assigned quantum, it will be stopped and put in one of the expired priority queues.
Is there any reference which details how the new assigned priority queue is selected? What this expired array queue is needed? Why not assign the stopped thread to one of the active array queues obviously after thread priority recalculation?
By assigning a stopped thread Th to the expired queues array, we are sure that the threads at the bottom of the actives queues will be executed. however those threads could not be as important as Th which has to wait until the active queues are run first before getting their turn. probably , maintaining one array of active threads ONLY is better? Am i missing something regarding the role of expired queues array
3-is there any book / website which details the practical kernel algorithms supported with code tracing or snippets
thank you for your time :) - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |