2021-09-26

本文介绍了嵌入式操作系统的软件结构,包括轮询、前后台和多任务系统。重点阐述了多任务机制,如时钟节拍、任务时间片、任务切换和上下文。还探讨了任务调度方式,包括时间片和优先级调度,以及处理IPC问题。最后,文章提到了互斥情况下的优先级反转问题及解决方案,如优先级继承和优先级天花板策略。
摘要由CSDN通过智能技术生成

嵌入式操作系统初探(一)

一:软件结构

软件结构分为轮询系统、前后台系统、多任务系统。轮询系统就是while循环,前后台就是在轮询的基础上加入了中断机制,while中的程序就是所谓的前台了,中断处理中的程序就变成了后台,多任务系统就是将应用分为多个任务,根据实际的需要进行调度和处理。所以说多任务系统既不像轮询系统那样顺次的执行需要谨慎的对待上下程序之间的影响,又不像前后台那样处理完中断后仍需要在while中顺次执行。

二: 多任务机制

时钟节拍:任务执行的基本事件单位,这段时间不光执行任务,也包含了极短的时间处理(计数值减1)。
任务时间片:任务执行的总时间,由若干个时钟节拍构成。
多任务机制:为了实现任务的“同步进行”,任务a和任务b交替着占有处理器资源,从总体上看,两个任务一起运行。
任务切换:任务a和任务b交替占有处理器的过程,任务a将寄存器中的信息收回,存到自己的栈中,任务b将自己栈中的信息放入寄存器中,处理器按照寄存器中的信息执行任务b。
任务上下文:任务a若在执行过程中被打断,被打断前的就是上文,被打断后的任务就是下文,在某时刻恢复执行。
任务调度方式:按照时间片调度,a运行一段时间,b运行一段时间;按照优先级调度,a优先级高于b的情况下,a不仅可以在b运行时打断b的运行,并运行自己的任务,同时在a自己运行的情况下b无法打断a。按照基于优先级的时间片调度,a优先级大于b时按照优先级调度,优先级相同时按照时间片调度。
任务处理IPC问题:处理完的状态分为两种,一种是直接返回结果,一种是访问失败阻塞在队列里面等待处理。
互斥情况下的优先级反转:a得到互斥量以后,让高优先级的任务抢占运行,但由于b无法得到互斥量,即使是更高优先级,也要等到高优先级的任务先运行,a释放互斥量以后,b才能运行,中间优先级的任务耽误了b的运行,对策方法有优先级继承策略,a面对抢占时不断复制抢占对象的优先级,使得a无法被抢占,直到a,b都运行完为止,其次有优先级天花板测略,直接将a的优先级升到最高,排开所有抢占任务,a完成后,b完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值