什么是抢先式多任务处理?谷歌搜索后我无法找到答案,有人可以帮助我吗?
答案 0 :(得分:3)
http://en.wikipedia.org/wiki/Preemption_(computing)
阅读维基百科文章。可以这样想,这是一种允许您一次运行许多不同程序的方法,而不需要编写每个程序来放弃处理器的时间 - 操作系统处理它。这个想法是每个过程在某个时刻被“抢占”。
答案 1 :(得分:0)
抢先式多任务需要两个主要组件:定时器中断(比如每10毫秒)和一个“连接”到该中断的调度程序。然后,调度程序在某个区域(如堆栈)中保存“中断/抢占”任务的“上下文”(这是所有寄存器/堆栈指针的奇特术语),然后通过其调度算法确定哪个(其他)任务可以“跑“下一个。 如果找到一个,它会解除/恢复THAT任务的上下文并从定时器中断返回。 BTW,就像一个放置返回地址的“调用”(通常是堆栈上Call指令之后的地址,中断以相同的方式工作,当中断“返回”时,它使用堆栈上的内容跳转到它。因此,当我们从其他任务返回到它的'中断'点时,我们只需要操纵堆栈,并将THAT任务的返回地址放在堆栈的顶部并执行“Return-from_Interrupt”指令。正常回报。我打赌你现在对不起你问了! 干杯,
答案 2 :(得分:0)
如果进程是抢占式进程,则可以将其停止并通过外部中断(陷阱)发送到就绪队列。
在情况1和4中,不是抢先