uC/OS-II学习1

以前总是想做linux的平台开发但是苦于linux的系统过于庞大,对于我这个刚接触软件不到三年的我感觉很是吃力,大四下期过来公司实习,因为公司现在用的是UC/OS-II平台,说实话刚开始有些失望,想怎么还用这么小的系统,哎,感觉自己很是落伍了一样,但是实习两个月下来我看完了几乎所有的UC/OS-II的内核代码,感觉UC/OS比起linux来很容易上手,虽然没有linux那样为应用程序提供那么多方面的接口,但是他的实时性,与精简的代码风格还是让我学习了很多,借此机会与大家分享我的学习经历顺便复习一下。

首先提到系统,在之前我们用51编程时候通常不会用到操作系统(但是不乏有高手在51中移植过系统哟),我们称之为前后台系统(前台行为(中断级)——中断服务程序处理异步事件部分,前台行为(任务级)——应用程序,是一个无限循环)

可以看到它从头至尾只是执行了一个工作,而且响应不及时,而且如果想设备能够省电则后台不做什么处理,将所有事情都交由中断处理,
这样对芯片资源利用率就低了(因为只用到一些中断)。而且不易于移植。

多任务系统:多任务实现实际上是靠CPU在许多任务之间的切换和调度来进行的。因为一般的系统CPU只有一个(也是单核的)所以一个时间只有一个任务占用CPU,多任务系统使CPU资源得到最大的利用,并能使应用程序相对模块化(各任务间的交互尽量少,这样就可以在修改一个任务时候不需要去过多的关注其他任务)。

提到系统就会想到实时性,这是系统好坏的一个重要指标:系统实时性有硬实时与软实时之分。

软实时系统——使各个任务尽快的运行,无须制定任务时间。

硬实时系统——各任务不仅须执行无误,而且要做到准时。

内核是负责任务调度的(决定该轮到那个任务执行)

大多数内核是按照优先级调度的,基于优先级的调度有两种:

1、不可剥夺型:每个任务独占CPU只有等到任务主动放弃CPU才执行任务的调度,这种调度的有点是相应中断快,无须使用信号量呼哧所等保护机制,不用担心其他任务对数据的破坏,但有明显的缺点相应时间慢(高优先级就绪后需要等待低优先级任务执行完毕)

2、可剥夺型内核:高优先就就绪后总是能剥夺正运行在CPU上的低优先级任务,得到CPU,从而快速相应。

不可剥夺的内核调度

可剥夺型内核调度

以上是基本系统介绍 出错之处请您指出。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值