OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4927|回复: 2

菜鸟关于UCOS中任务控制块链表的疑问

[复制链接]

2

主题

9

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2012-1-7
在线时间
1 小时
发表于 2013-12-26 14:58:28 | 显示全部楼层 |阅读模式
想知道为什么UCOS中任务控制块要使用链表来访问,有什么优势?

链表的优点是不用占用连续的存储空间,但是访问速度慢。但是UCOS在OSInit()使用数组来定义对应任务数的控制块,这已经占用了连续的存储空间,为什么还要用链表连起来。

如果直接给每一个任务固定好任务控制块,即把优先级号作为对应任务的任务控制块数组下标,这样访问起来不是更方便。

呵呵

望大侠指点
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165353
金钱
165353
注册时间
2010-12-1
在线时间
2108 小时
发表于 2013-12-26 21:11:30 | 显示全部楼层
方便管理吧,删除,添加,这是很常见的操作啊,固定死了,那就不太好管理了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2013-12-27
在线时间
0 小时
发表于 2013-12-27 16:24:45 | 显示全部楼层
回复【楼主位】zhouhaiyeild:
---------------------------------
A:如果直接给每一个任务固定好任务控制块,即把优先级号作为对应任务的任务控制块数组下标,这样访问起来不是更方便?
Q:如果用户只定义了两个任务,优先级分别为0和61,那么按照你的说法,以优先级为下标进行分配,那么存放OS_TCB的数组就得分配64(加上空任务和统计任务)个单元,其实仔细想想,按照你的说法,不管用户任务多少个,系统必须总是得定义64个单元,,就算1个用户任务,也得定义64个单元,极其浪费空间。

A:为什么还要用链表连起来?
Q:ucos虽然用数组OS_TCBTbl[]来保存OS_TCB,但是要知道,在管理的时候,这个数组被分成了两部分(一个是空闲的,一个是已被分配的),怎么将一个数组看成两部分?显然用链表极为方便。

欢迎交流 QQ: 2606454510
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 22:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表