1.临界代码段
处理时不可分割的代码,不允许任何中断打断
一般都是:
EA = 0;
/*不可分割的代码段*/
EA = 1;
2.任务
CPU完全属于自己。
把问题分割成多个任务
task1调到task2时,堆栈中保存当前CPU中task1的信息,指针指向task2
3.任务状态
运行态唯一的来源就是就绪态,运行态可转到所有状态
4.任务切换
5.内核
内核负责管理各个任务,或者说为每个任务分配CPU时间。每个任务都要有自己的栈空间。
6.调度
调度是内核的主要职责之一
内核是基于优先级调度的
CPU总是让处在就绪态的优先级最高的任务先运行
7.内核是否可剥夺
1.不可剥夺型内核
·每个任务自我放弃CPU的所有权
·只有主动放弃,高优先级的任务才能获得CPU的使用权
·商业软件几乎没有不可剥夺型内核
2.可剥夺型内核
·最高优先级的任务什么时候都可以运行
·任务级响应时间得以最优化
·就绪态的优先级最高级的任务先运行