嵌入式系统设计师学习笔记十三:进程管理④——任务调度
嵌入式系统设计师学习笔记十三:进程管理④
任务调度:
任务调度——调度器
调度用来确定多任务环境下任务执行的顺序和获得CPU资源后能够执行的时间长度。
操作系统通过一个调度程序来实现调度功能。
①调度程序以函数的形式存在,用来实现操作系统的调度。
②调度程序本身并不是一个任务,是一个函数调用,可在内核的各个部分进行调用。
调度程序:可以看做CPU的资源管理者。
①从就绪队列中选择一个任务去执行②调度算法:调度程序在决策过程中所采用的算法,是在一个特定时刻用来确定将要运行的任务的一组规则。
调度的时机
任务调度的时机,一般来说有5种情形,可能会发生任务的调度。
①任务创建
②任务运行结束
③任务被阻塞
④、⑤发生中断
调度的方式
不可抢占调度方式:
①如果一个任务被调度程序选中,就会一直运行下去。
②直到该任务因为某种原因(如I/O操作或任务间的同步)被阻塞了,或者它主动地交出了CPU的使用权。
③调度时机中前三种情况(任务创建、任务运行结束、任务被阻塞),都可能会发生调度。第4、5种情况(即发生中断),不会发生调度。
可抢占调度方式:
①当一个任务正在运行的时候,调度程序可以去打断它,并安排其他的任务去运行
②调度时机中的所有五种情况,都可能会发生调度。
实时操作系统大都采用可抢占调度方式。 使得关键任务能够打断非关键任务的执行,确保关键任务的截止时间能够得到满足。