操作系统中的任务与任务切换
1. 为什么要有任务?
我们常常见到操作系统,也常常要学习操作系统,从一个小白的角度看,任何事情都有其对立的东西,或者说事务都是一步步发展的,既然有操作系统这个东西,那么也必然有无操作系统的软件。
如果大家都有学习把玩过单片机,比如51单片机或者是STM32单片机,那么应该是都有无操作系统时代这样的经历。无操作系统时代,可以看作是有一个任务的操作系统。无操作系统时,软件的流程是怎么样子的?
无操作系统,裸机环境
/*
* 无操作系统:
* 四个功能函数只能依次顺序执行,
* 在任意一个函数功能中出现阻塞的事件的时候,
* 比如某些功能需要一些延时操作,就会照成空空占用处理器的时间
* 其他功能都无法得到执行
*/
while(1)
{
taskA();
taskB();
taskC();
taskD();
}
带操作系统环境
/*
* 带操作系统:
* 四个功能函数随时都有可能被执行,
* 在任意一个函数功能中出现阻塞的事件的时候
* 操作系统可以进行任务调度和切换,去执行其他的任务
* 从宏观上可以当作四个功能任务可以同事工作执行
*/
taskA();
taskB();
taskC();
taskD();
所以我们需要一个操作系统,来提高我们处理器的效率,把处理器的每一刻都去做有意义的事情。
相