今天在学Freertos时,我在想:如果任务A和任务B的优先级相同,使用相同的时间片,当任务A运行到30%就时间到了,那么当结束任务B之后,任务A是从哪开始运行,是运行接下来的70%吗?
答案是会继续运行接下来的70%,记得在运行任务切换时,通过压栈和出栈会将任务的“现场”进行保留,保证了实时性。但我只知道程序是这么干的,不知道在现实中寄存器具体是怎么干的,这就涉及到计算机操作系统和原理了。
按照我的理解,这个实时性是以人为参照标准的,由于人的肉体无法捕捉到任务切换的瞬间,于是就有种感觉任务是并行的,但我认为实际上还是串行的,跟显示屏、呼吸灯的差不多。