0
我正在为即将到来的操作系统开发一个简单的内核。我已经开发了一切,直到调度器。我想知道调度程序如何进入其循环。操作系统调度程序如何返回?
例如,
- 定时器中断火灾。
- 处理程序调用调度程序。
- 调度程序跳转队列中的下一个进程。
- 中断必须返回(IRETD)
但如果调度了呢中断返回时跳转到下一道工序即可。如果确实如此,是不是会回到最后的过程。
我想澄清一下 - 定时器中断如何从调度器返回,调度器如何与定时器中断通信(如果使用函数调用,那么何时返回)?
假设 - 单片内核
我的中断状态我不熟悉IRETD指令的特性,但我想它需要从某个堆栈中弹出指令指针和其他寄存器才能恢复。 我看到它的方式,你需要改变堆栈中的值,这样当IRETD弹出它需要的东西时,它会有效地恢复新进程,而不是被中断的进程。 我不能在没有研究x86指令集的那部分的情况下给出具体细节。 我的经验主要来自我的爱好项目(https://bitbucket.org/ruifig/g4devkit),它基于ARM。 – RuiFig