FOS调度算法
来源:互联网 发布:哪个驱动软件好用知乎 编辑:程序博客网 时间:2024/06/05 12:00
FOS调度算法是基于优先级任务调度的,对于优先级任务支持FIFO策略。应该说所有真实时的操作系统都支持基于优先级任务调度。
调度算法的作用是找出可调度优先级最高的的任务。
FOS 采用一个unsignedint类型的变量task_prio_map,来维护各任务的优先级情况。任务数有大,优先级越低。在系统初始化时,建立起每个优先级链表头,每当有任务创建的时候,根据该任务的优先级把该任务插入相对应的优先级链表后面。同等优先级支持FIFO调度方式。
函数是提TCB*bit_first_one_search(U32 num),取出可以调度最高优先级任务。
TCB *bit_first_one_search(U32 num){U8 i = 0;LIST*prio_list_head;TCB *tmp;while(i < 32) {if ((num >>i) & 0x01) {prio_list_head = &task_prio_queue[i].list;tmp =list_entry( prio_list_head->next, TCB, list);if(tmp->state == 0) {;} else {returntmp;}}i++;}if (old_task->state== 0) return idle_task;return old_task;}
算法描述,检查num某bit上是否为1,是查看该对应优先级链表上的任务是否可以运行。总是先提取该链表的头部后面一个,在其他处理中,同等优先级不可运行的任务,总是拍到链表后面。
如果该链表上所有的任务不可以运行,就继续向下查找num中下一个bit为1,重复上面操作。到最后,确实没有可以运行的任务,那就运行旧任务,旧任务也不可以运行,那就运行空闲任务。
0 0
- FOS调度算法
- FOS!@#
- 调度算法
- 调度算法
- 调度算法:
- 调度算法
- 调度算法
- 调度算法
- 调度算法
- 调度算法
- 调度算法
- FOS时间管理
- FOS中断管理
- FOS信号量管理
- FOS双向链表
- 调度算法:时间轮转调度算法
- 基本流FIS和FOS
- 嵌入式实时操作系统FOS简介
- 设计模式之单例模式 c++实现以及详解
- 人工智能的存储
- android一键分享功能不使用任何第三方sdk
- 外包之殇
- Html代码中table跨2行和跨2列的用法
- FOS调度算法
- 算法导论 概率 投球问题 5.4-6
- Android实现推送方式解决方案
- javascript中的一些坑
- nfs启动linux系统出现如下错误
- 数学分析教程 第十五章学习感受
- 使用GDI在windows中绘图(一)——windows GDI原理
- [学习笔记]批次需求计划-净需求与毛需求
- java冒泡排序法