Multitasking questions!
Posted: Thu Sep 28, 2006 2:06 am
Hey all, Im finally entering the zone where I can start work on Multitasking!
However, Bonafide is down for me - so Im having trouble.
And the Books I have just babble about the concept, which is all good and jolly.
Questions!.
I have an Interrupt stub, in ASM that is called when the Timer interrupt fires, which calls a Kernel function - which figures out what Kernel Handler to execute - in thsi case, k_timer_handler.
Anywho, I figure we have to save a processes state.
Its registers, like EIP, CS/DS/ES/.. CR0-CR3, ESP/EBP.
Atleast, I Figure.
THe problem is, The TImer interrupt is in C.
How do I set all the new values, without botching the interrupt call?
Secondly, How would I change DPL? Is a TSS needed? What is a TSS?
(Ill dive into the Intel docs shortly
).
Thirdly, The Context. Which is the addressing space the current process lives in, yes? Like, its page directory, etc.
So... We map what needs to be mapped, with all that stuff set to DPL3 for the Processes things, with the Kernel at 3GB, DPL0?
Forgive me if I sound like a Moron, Im just a little confused
.
As per usual, Help is greatly appreciated!
The caffiene fueled nicotine starved codaholic,
~Zeii.
However, Bonafide is down for me - so Im having trouble.
And the Books I have just babble about the concept, which is all good and jolly.
Questions!.
I have an Interrupt stub, in ASM that is called when the Timer interrupt fires, which calls a Kernel function - which figures out what Kernel Handler to execute - in thsi case, k_timer_handler.
Anywho, I figure we have to save a processes state.
Its registers, like EIP, CS/DS/ES/.. CR0-CR3, ESP/EBP.
Atleast, I Figure.
THe problem is, The TImer interrupt is in C.
How do I set all the new values, without botching the interrupt call?
Secondly, How would I change DPL? Is a TSS needed? What is a TSS?
(Ill dive into the Intel docs shortly

Thirdly, The Context. Which is the addressing space the current process lives in, yes? Like, its page directory, etc.
So... We map what needs to be mapped, with all that stuff set to DPL3 for the Processes things, with the Kernel at 3GB, DPL0?
Forgive me if I sound like a Moron, Im just a little confused

As per usual, Help is greatly appreciated!
The caffiene fueled nicotine starved codaholic,
~Zeii.