嵌入式系统设计师学习笔记十三:进程管理④

任务调度:

任务调度——调度器

调度用来确定多任务环境下任务执行的顺序和获得CPU资源后能够执行的时间长度。

操作系统通过一个调度程序来实现调度功能。

①调度程序以函数的形式存在,用来实现操作系统的调度。
②调度程序本身并不是一个任务,是一个函数调用,可在内核的各个部分进行调用。

调度程序:可以看做CPU的资源管理者。

①从就绪队列中选择一个任务去执行

②调度算法:调度程序在决策过程中所采用的算法,是在一个特定时刻用来确定将要运行的任务的一组规则。

调度的时机

任务调度的时机,一般来说有5种情形,可能会发生任务的调度。
①任务创建
②任务运行结束
③任务被阻塞
④、⑤发生中断
在这里插入图片描述

调度的方式

不可抢占调度方式
①如果一个任务被调度程序选中,就会一直运行下去。

②直到该任务因为某种原因(如I/O操作或任务间的同步)被阻塞了,或者它主动地交出了CPU的使用权。

③调度时机中前三种情况(任务创建、任务运行结束、任务被阻塞),都可能会发生调度。第4、5种情况(即发生中断),不会发生调度。

可抢占调度方式
①当一个任务正在运行的时候,调度程序可以去打断它,并安排其他的任务去运行

②调度时机中的所有五种情况,都可能会发生调度。

实时操作系统大都采用可抢占调度方式。 使得关键任务能够打断非关键任务的执行,确保关键任务的截止时间能够得到满足。