hdp7891000 发表于 2011-6-9 14:14

求指教:最简单的优先级调度算法

本人菜鸟一枚,现在写程序只能是前后台系统。原来的程序是这样的
main()
{
    while(1)
    {
         if(flag1)
      {
      }

      if(flag2)
      {
      }

      if(flag3)
      {
         }
         ......
         ......
}
interrupt()
{
}

现在突发奇想想出了一种最简单粗陋的基于优先级的算法
main()
{
    while(1)
    {
         if(flag1)//最高优先级
      {
      }

      else if(flag2)
      {
      }

      else if(flag3)
      {
         }
         ......
         ......
}
interrupt()
{
}


请大侠指教点评这种想法的科学度和有用性,大家有这样类似用过么?
另外大家如果裸奔的话的调度算法一般是如何的?

delin17 发表于 2011-6-10 10:20

函数指针.

hdp7891000 发表于 2011-6-10 14:30

2# delin17 大侠能不能稍微详细说一下?

hgjinwei 发表于 2011-6-11 07:23

把uC那套搬过来就行了,不复杂。

airwill 发表于 2011-6-11 09:30

其实这两种, 用起来 基本没有多大差别.
高优先级很忙的时候, 后一种会阻塞低优先级的任务.
但是, 这还是个非抢先式的调度.

hdp7891000 发表于 2011-6-14 08:32

4# hgjinwei 正有此意

hdp7891000 发表于 2011-6-14 08:32

5# airwill 确实是非抢占式的
页: [1]
查看完整版本: 求指教:最简单的优先级调度算法