| 网站首页 | 新闻 | SOPC | FPGA | DSP | ARM | 嵌入式操作系统 | 下载 | 所有产品 | 留言 | 论坛 | 购买指南 | 网络协议 | 驱动设计 | 
您现在的位置: 21嵌入式控制研究室 >> 嵌入式操作系统 >> ucOSII >> 文章正文 用户登录 新用户注册
一个简单实现的嵌入式OS--LINOS(续1)            【字体:
一个简单实现的嵌入式OS--LINOS(续1)
作者:佚名    文章来源:本站原创    点击数:    更新时间:2005-11-30
.优先级调度

   A. linos系统暂设为32个优先级,提供4套调度算法,可根据具体应用简单配置如下:

#define SCHEDULE_PRI 0//1, 2, 3
注:
0:  W(E)P(E)
  1:  W(S)P(S)
2:  W(E)P(S)
3:  W(S)P(E)
//W-weight, P-priority, E-exponent, S-Scale

  权重决定了进程的优先级范围,目前支持0-3,其中0为实时,1-3为一般应用范围。在每个权重序列内,分别有8个优先级微调值,其微调方式有指数和等比两种选择。其中等比可以选择等比因子来调整调度性能,系统默认如下:
#define PFACTOR         1   //for priority adjust
  
  当系统中运行有实时状态的进程时,其优先级在0-7内,权重为0,如果实时进程不主动放弃CPU,调度算法将永远在实时任务序列中选择下一个进程运行。其他所有非实时进程都处于挂起状态。因此对于实时任务,在处理完毕时应马上调用sleep或wait放弃CPU,等待下一个实时任务。
  对于权重在1-3范围的进程,调度时权重选择也有等比和指数两种算法。

B. 指数算法
  
    用于嵌入式任务的系统,必须是CPU抢占式,但却不能永远被一个进程或某几个进程抢占。应该基于优先级,给予这个进程在CPU时间片上运行的机会,公平性取决于调度算法能否反应其优先级。
假设有3个优先级分别处于23,24,25的进程A, B, C。如果根据指数算法,则 A抢占CPU的时间为B的2倍,B为C的2倍。假设有CPU运行了7个时间片。那么,A,B,C抢占时间片次数分别为:
A(4)  B(2)  C(1)

当运行14个时间片时,则是,:A(8)  B(4)  C(2)

调度算法除了决定抢占时间片的次数,还要灵活调整分布状态,比如14个时间片,我们当然不希望分布是这样:

A ->A ->A ->A ->B ->B ->C -> A -> A -> A ->A ->B >B ->C

因为A进程在放弃时间片让B进程调度时,要一直等到C调度才能够抢占到CPU,中间要等待3个时间片,当24个优先级上都有进程需要调度时,则最高优先级进程要等待24个时间片,这对于实时系统是不能容忍的。
因此开发了如下的分布算法:

A ->A ->B ->A ->B ->A ->C -> A ->A ->B ->A ->B ->A ->C

这样A进程总是能够很快地抢占到CPU,同时又给了B和C进程运行的机会。

C.等比算法
  同样假设有3个优先级分别处于23,24,25的进程A, B, C。假设有CPU运行了6个时间片。那么根据等比算法,A,B,C抢占时间片次数分别为:
A(3)  B(2)  C(1)

当运行12个时间片时,则是:A(6)  B(4)   C(2)

     同样开发了用于等比分布的调度算法,12个时间片的分布如下:
  
A ->B ->A ->C ->A ->B -> A ->B ->A ->C ->A ->B


这4套优先级策略根据其调度算法特点,可以看出W(E)P(E)调度与优先级是指数下降的,更适合实时调度。W(S)P(S)调度与优先级是斜率为1/2下降的,比较缓和。而W(E)P(S)和W(S)P(E)则处于其间,一个侧重权重,一个侧重优先级微调,可在具体应用中合理配置。

文章录入:fengfeiyi    责任编辑:fengfeiyi 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
  • uC/OS-II 初级程序员指南

  • μC/OS-II的实时性能分析

  • uC/OS-II任务栈处理的一种改…

  • μC/OSII中的时钟中断技术研…

  • uC/OS-Ⅱ在C167CR单片机上的…

  • 基于uC/OS-II的变频器变结构…

  • μC/OS-II在AT89C51上的移植

  • 嵌人式实时操作系统uC/OS在…

  • uC/OS开发方法

  • uc/os 任务调度机制

  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)