• 多任务系统(操作系统)


    多任务系统(操作系统)

    概述

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

    详述

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

    举例:

    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 ();//是根据中断的一些信号完成某些功能的函数。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44

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

    总结:

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

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

  • 相关阅读:
    时空数据挖掘一(城市计算)
    SpringBoot2基础篇(二)—— 基础配置
    工业智能网关BL110应用之四十四: COM口采集电表设备的配置
    PB从入坑到放弃(四)常用函数
    03——go开发工具
    文件系统相关知识与IO
    K8S-Helm和相关组件(Dashboard、Prometheus、EFK)
    复星杏脉算法面经2024年5月16日面试
    STC89C51学习笔记(三)
    【408考研】数据结构 —— 第三章 栈、队列
  • 原文地址:https://blog.csdn.net/xiawucha159/article/details/127899576