多任务系统(操作系统)

多任务系统(操作系统)

概述

多任务系统是根据程序的功能,把这个程序主体分割成一个个独立的,永远死循环且无法返回的程序单元,我们把这个程序单元称为任务。
任务由操作系统统一调度管理。

详述

与前后台系统相比,多任务系统的事件响应也是在中断中完成的,但是,事件的处理是在任务中完成的。
每个任务都是独立的,互不干扰的,并且也具有执行的优先级。在多任务系统中,任务与中断一样具有优先级,优先级高的任务会被优先执行。当一个外部紧急事件在中断里被标记后,如果处理该事件的任务的优先级足够高,该事件就会被立刻处理。相比于前后台系统,多任务系统的实时性又被提高了。

举例:

int main(void{
	/*系统初始化*/
	mcu_int();
	/*中断初始化*/
	Interrupt_init();
	
	RTOSInit();//系统初始化
	RTOSTaskInit();//任务初始化
	RTOSStart();//系统启动,多任务调度
}

RTOSTask1()
{
	while(1)
	{
		if(flag1)..
	}
}
RTOSTask2()
{
	while(1)
	{
		if(flag2)..
	}
}

...
RTOSTask_event_handle()//外部事件任务
{
	while(1)
	{
		if(flagisr)..
	}
}

void interrupt_fun(void)
{}
RTOSTask_event_handle ();//是根据中断的一些信号完成某些功能的函数。

在加入操作系统后,我们在进行应用程序开发时,就不需要在花费精力去精心设计程序的执行顺序,只需根据开发需求设定任务的执行优先级,不用担心各个程序功能模块间是否存在相互干扰,这样程序开发反而会变得简单。
加入操作系统的弊端是,系统调度会存在额外的开销,占用部分的FLASH和RAM,但是现在随着嵌入式设备的硬件性能不断提升,这些不在是问题。

总结:

轮询系统、前后台系统和多任务系统并能简单的评判谁好谁坏,他们是不同时代的产物,在各自的应用领域都还在广泛使用。在进行项目开发时,使用何种系统还是要根据项目软件和硬件的具体需求来决定。

对比单片机开发1-裸核系统
http://t.csdn.cn/8DvV3

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiawucha159

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值