没有合适的资源?快使用搜索试试~ 我知道了~
UCOS 时间片轮转调度算法详解
4星 · 超过85%的资源 需积分: 22 56 下载量 6 浏览量
2009-08-08
09:51:57
上传
评论
收藏 62KB DOC 举报
温馨提示
试读
11页
我修改的 UCOS 支持不同优先级调度的同时,支持同一个优先级有 2 个以上的任务以时间片轮转方式进行调度
资源推荐
资源详情
资源评论
时间片轮转调度算法详解
年 月 日
1. 一种只支持优先级抢占型调度的操作系统。它不支持同一个优先
级有 个及以上的任务同时运作。
我修改的 支持不同优先级调度的同时,支持同一个优先级有 个以
上的任务以时间
片轮转方式进行调度。
这个就是 和我修改的 的区别。
我修改后的 ,在以后的文段中就称为“。
就是先进先出的意思,和时间片轮转调度差不多的意思。
一---核心思想
UCOS 在调度的时候,会按照优先级选择进程进行调度,我做的部分就
仅仅是在他进行优先级检查之前,把和运行态同等级的进程进行了替换,
替换成了时间片轮转调度的下一个进程!
二的修改
和 并不能完全兼容,最大的改变,就是对 的结构
做了改动,加入了
我自己的段。
该部分代码在 文件中:
!
"#$%&'#当前任务堆栈栈顶指针 #'
()*"+,*,,-,./
0)#,1%&'#指向用户定义的任务控制块扩展#'
"#$2&'#指向任务堆栈栈底指针 #'
.3$)4&'#存有栈中可容纳的指针元数目而不是用字
节()表示的栈容量总数。#'
.56&'#7$)877
7$7,19:#'
.56&'#7$;96<<3<: 存储任务的识别码 ;,
备用 #'
(8)
#.1&'#指向后一个任务控制块的指针#'
#%0&'#指向前一个任务控制块的指针#'
()99=,./:>>9?*-=/::@@9?-,./
:@@9,?,./:@@9?,-,./:'# OS_EVENT_EN
定义为:能使队列代码产生&&申请队列控制块最大数不为零||能使邮箱代
码产生||
能使信号量代码产生||能使互斥量代码产生 #'
,A,.#,08%&'#指向事件控制块的指针#'
(8)
()99=,./:>>9?*-=/::@@9?-,./:
0)#?B&'#?7B)02? 1%9:
=%9:指向传递给任务的消息的指针#'
(8)
() 9A,+. /C <5: >> 9D*E,. / : >>
9?*-D*E/:
()*";,D,./'# OS 版本大于等于 251&&能使事件标志代
码产生&&最大标志数大于零#'
D*E.;,#F7B.&'#指针指向事件标志节点#'
(8)
D*EF7B+&'#,08G7BH7277$7
8 事件标志使任务准备运行#'
(8)
.56;F&'#任务等待的时限#'
.7&'#任务的当前状态标志 #'
.%)&'#任务优先级 9CCH)BHI63CCFJ:#'
/*以下四行语句用于快速访问就绪表的数据*/
.-&'#)))8)8B8)8B7$
))9K:#'
.L&'#81)877 F8)8B7$
))#'
.)-&'#)27$7 )))8)87
7 F#'
.)L&'#)27$7 )))8)87
B#'
()*";,D,./
D,*.;F+M&'#8)7JHH77$8
F)F#'
(8)
'#
#####################################################################
#以下代码是我自己加的:
#####################################################################
#'
()?,,;D,
#81&
#0&
.D8&'#记录了该进程占用多少个时间片#'
.D8&'#记录的是该进程现在还剩下多少个时间片时间
可以用#'
(8)
'#
#####################################################################
#'
N&
三进程创建
进程创建的主要目的是跳过原代码中的优先级占用检查,并在这里加入
进程创建。
文件在 *" 中:
. 7$7 90) 9#7$:90) #:I 0) #77I
"#I
.)I.56)I.F8:
!
()+*D?,;CC3'#为 CPU 状态寄存器分配存储空间
#'
%+& //CPU 状态字是十六位 cpu_sr 为 OS_CPU_SR 型
变量
(8)
"#&//创建一个指向数据类型为 " 的指针和一个
位的整型数
.&
()*+E",./
)9)/DO,%+:!'#保证优先级在允许范围内 #'
89%+.A*D;:&
N
(8)
,.,++*D9:& '# OS_ENTER_CRITICAL ( ) 和
OS_EXIT_CRITICAL()为定义的宏,用来关闭、打开 CPU 的中断。#'
)9%) FP)QCC9#::!'#保证优先级没有被其它
任务占用 #'
'#
剩余10页未读,继续阅读
a19890229a
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页