CN1409209A - 一种多任务实时操作***的实现方法 - Google Patents
一种多任务实时操作***的实现方法 Download PDFInfo
- Publication number
- CN1409209A CN1409209A CN 01126906 CN01126906A CN1409209A CN 1409209 A CN1409209 A CN 1409209A CN 01126906 CN01126906 CN 01126906 CN 01126906 A CN01126906 A CN 01126906A CN 1409209 A CN1409209 A CN 1409209A
- Authority
- CN
- China
- Prior art keywords
- task
- function
- steps
- ready
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
一种单片机嵌入式多任务实时操作***的实现方法,为每个任务设置最大允许等待时间,将任务分为优先级任务和一般任务,用整数类型的数组记录每个任务的等待时间并在定时器程序中对其数值进行减量刷新;通过设置任务建立函数和挂起函数,将任务与其相对应的任务程序相连或在非临界区实现多任务调度,调度时,如果有等待时间超过最大允许等待时间的任务,则运行该任务;如果有优先级任务,则按照轮转法确定下一个就绪的优先级任务;如果没有优先级任务,按照轮转法确定下一个就绪的一般任务。这种实现方法,允许多个任务并行,占用资源少,任务执行速度快,在满足实时性要求同时,也可提供足够的灵活性,调用也极为便利,针对性和实用性非常强。
Description
技术领域
本发明涉及操作***设计与实现技术领域,具体涉及一种在单片机嵌入式实时操作***中实现多任务调度的方法。
背景技术
当今,在以网络为中心的新兴计算设备和嵌入式市场中,嵌入式实时操作***(RTOS)已经获得了广泛应用,尤其在DSP、PDA和无线应用等。嵌入式RTOS孕育着巨大的商机。为降低成本,许多嵌入式应用都广泛采用各式各样的单片机来实现产品的智能化。单片机目标***软件以前多采用汇编语言来实现。在Franklin、ArchimedesC51等单片机C编译器产生后,由于C语言有丰富的库函数,编译效率高,用之来编写目标***软件会大大缩短开发周期,增加软件的可读性,便于改进和维护。现在已经普遍采用C语言来开发8051等单片机了。但应用***多种多样,应用软件也千差万别;如果设计一个单片机的RTOS,那么在此RTOS的支持上,应用软件的编写就可以尽量简单,模块化,同时实现更好的可移植性。
在应用***中,当目标***软件比较复杂、规模比较庞大时,就需要一个操作***的支持。目前,嵌入式的RTOS风靡全球,例如Palm,VxWorks,Windows CE等等。但购买一个商用RTOS成本太高,而且无法获得源代码,同时由于商用RTOS具备较完善的功能,规模较大,需要的内存和外存较多,较难移植到具体的单片机小***上。因此编写一个适用性强,功能合适,规模较小的单片机操作***就显得非常有必要了。这也有助于单片机应用软件的编写规范化和模块化。
发明内容
本发明要解决的技术问题是如何在单片机上实现微内核实时操作***中,特别是一种在单片机嵌入式实时操作***中实现的多任务调度方法。
本发明的技术问题是这样解决的,构造一种可用于单片机嵌入式***的多任务实时操作***的实现方法,其特征在于:包括以下步骤:为每一个任务设置一个最大允许等待时间,将每一个需要占用CPU运行的任务分为优先级任务和一般任务,用一个整数类型的数组记录每个任务的等待时间并在定时器程序中对其数值进行减量刷新;设置任务建立函数,可将一个任务与其相对应的任务程序相连,并建立该任务的TCB,将一个或多个其长度不大于基本单位时间的不定长时间片分配给一个任务;设置任务挂起函数,用于在非临界区的内存空间实现多任务之间的调度,调度时,用函数和全局变量的形式来替换掉调度处的局部变量,每一个任务在所分配到的时间片结束或被挂起之前占用CPU;按照以下步骤进行多任务调度:保存现场状态、检查就绪任务队列中有无任务,如有任务则利用调度算法取出一个就绪任务,调用任务运行函数将该取出的任务设置为运行状态,恢复现场状态;其中,所述调度算法包括以下步骤:如果有等待时间超过最大允许等待时间的任务,则运行该任务;如果有优先级任务,则按照轮转法确定下一个就绪的优先级任务;如果没有优先级任务,按照轮转法确定下一个就绪的一般任务。
在按照本发明提供的方法中,所述调用任务挂起函数是执行以下步骤:将第一参数表示任务号所对应的任务挂起第二参数表示的挂起时间,所述挂起时间以基本单位时间为单位,所述挂起时间为0时,将所述第一参数表示任务号对应的任务重新放到所述就绪任务队列的末尾;所述挂起时间不为0时,将所述第一参数表示任务号对应的任务挂起所述第二时间表示的挂起时间后,再重新放到所述就绪任务队列的末尾。
在按照本发明提供的方法中,还包括以下步骤:设置任务就绪函数用于使某一个任务处于就绪状态。
在按照本发明提供的方法中,还包括以下步骤:设置任务优先级设置函数,用于在调用该函数时,改变一般任务为优先级任务或改变优先级任务为一般任务。
在按照本发明提供的方法中,还包括以下步骤:设置任务删除函数用于删除一个任务。
在按照本发明提供的方法中,所述保存现场包括以下步骤:关中断;保存当前任务断点信息,如堆栈、程序指针、寄存器等到该任务的TCB环境中以及开中断;所述恢复现场包括以下步骤:关中断;用保存在该TCB中的环境信息来设置CPU堆栈、程序指针、寄存器等以及开中断。
实施本发明提供的在单片机嵌入式实时操作***中实现的一种多任务实时操作***的实现方法,与许多现有RTOS相比,具有以下显著进步:允许多个任务并行,任务执行速度快,能够满足实时性要求;可支持足够多的并行任务,并行任务数量只受到实际硬件条件限制,例如8051***内部和外部RAM空间。通过合理地调整程序的嵌套调用,可以允许32个或者更多的任务同步执行。这对于一般的嵌入式应用足够了;利用本发明方法实现似的操作***占用极少的资源;并方便用户调用,对用户而讲,他无须了解OS的原理,不需要了解信号量等保证机制。只了解几个调用函数的用法即可,同时又给用户程序提供了足够的灵活性,在任一个合适的程序处都可以实现任务调度;针对性和实用性非常强。基于本发明的方法,可以在当前的许多软件增加RTOS的功能,而且整个过程非常简单,与此同时,还提供了一个OS平台,方便软件的模块化工作。
附图说明
图1是利用本发明方法进行任务调度的实现流程图;
图2是说明按照本发明方法的任务调度算法的实现过程的流程图。
具体实施方式
为叙述方便,以8051单片机作为以下实施例说明所依赖的硬件基础。
为在嵌入式操作***中实现多任务,同时还要满足实时性,需要对CPU时间进行划分。在本发明中,任务的时间划分不采用固定的时间片,而采用不定长时间片,时间片长短可以由用户任意设置,只要有足够精确的定时器。由于8051资源有限且应用***千差万别,操作***没有也不可能占用某一个具体的定时器,因此该定时器需要用户提供。假设用户设置了8051的定时器T0,定时周期为10ms,并且把该时长(10ms)作为任务调度的基本时间单位。那么,10ms就是一个任务的最小时间片,也就是执行任务可能的最小延时时间。为了保证实时性,就需要用户任务程序在10ms内完成,如果无法完成,必须挂起该任务,腾出CPU给其他的需要运行的任务。
假设一个实例中有一个任务task0,该任务全部执行完毕需要15ms。那么,可以把该任务程序分成两部分。先执行该任务的第一部分约8ms的程序部分(只要小于10ms即可),挂起该任务后,允许其他任务占用CPU,等待调度程序再次分配CPU,来执行剩下的第二部分的程序。
那么任务是如何调度的?通常在多任务环境中,由于任务必须在自己已经分到的内存空间正确运行,互不干扰,互不破坏,这样对于每个任务而言,都需要足够的内存空间来保存当前的大量环境状态,这样操作***占用的空间将会较大。如果一个用户程序中有10个任务,一个任务占用1K RAM空间,那么10个任务将占用10K RAM,这将消耗嵌入式用户大量的宝贵资源,非常不经济,适用性很差。
如前所介绍,本发明采用的多任务实现方法,实际上是类似于MSDOS,Win31的“协作多任务”,即任务(程序)一直运行到它们主动让出CPU为止。而不是Linux,Windows NT所支持的“抢占调度多任务”。采用目前这种方法,显然用户程序需要在一个不处于临界区的地方(即是释放掉临界资源后的地方)实现任务调度,用函数和全局变量的形式来替换掉调度处的局部变量。这样,操作***就不用保留各个任务当前的大量状态信息,并且不需要信号量,邮箱等复杂并发保证机制。这样,此操作***就可以做到非常短小精悍,目前只占用128字节的RAM和2k的ROM空间(可以允许8个任务同时执行,如果任务增减,RAM空间将比例增减。实际上,RAM空间也就是所有TCB占用的空间),能够在一般的嵌入式***中得到广泛的应用。
任务调度的具体实现,可以用一个挂起任务的函数来实现。该函数有两个参数,参数1表示挂起的任务号,参数2表示挂起的单位时间。显然,任何一个任务可以挂起其他的任务,也可以自身挂起;当自身挂起时,即是让出了CPU;当挂起时间为0时,即是把自身任务重新放到了就绪任务的队尾。然后执行调度算法,把CPU分配给一个即将运行的任务。
那么采用哪种调度算法?基本上采用环形调度法,即时间片轮转法。假设就绪任务一共有4个,采用“1→2→3→4→1”的调度方法,以保证所有任务都能执行。换言之,每个任务使用一个时间片的CPU后,释放处理机给下一个排在就绪队首的任务后,自己返回到就绪队列的队尾(或者干脆挂起若干时间,腾出时间给其他就绪任务)。对于优先级任务,比如中断级别的任务,或者频繁执行但执行时间又很短暂的任务,可以抢先执行,但同样遵循环形调度法则。用户程序中需要定义一个最大等待时间。当一个一般级别的任务由于被优先级抢先,导致在就绪队列中等待时间超过最大等待时间时,此一般任务将被无条件的最先执行。采用上述的调度方法后,就可以保证所有任务都可以被执行,又能够保证优先级的任务的实时性。
在作为本发明方法一个实施例的操作***中,提供以下接口给用户,方便用户的灵活应用:1)任务建立函数:把一个任务与其相对应的任务程序相连,并建立该任务的TCB;2)任务删除函数:删除一个任务;3)任务就绪函数:使某一个任务处于就绪态;4)任务优先级设置函数:改变一个任务的优先级;5)任务运行函数:立刻执行某一个任务;6)任务挂起函数:挂起某一个任务一定的时间;7)操作***启动函数:启动运行。
另外,需要一个整数类型的数组。该数组元素的个数为任务的总数,元素为各个任务等待的单位时间的时长。用户需要在用户的定时器程序中对所有数组元素进行减量操作。操作***需要各个任务等待时长(操作***本身没有定时计数功能),才能进行正确的调度和控制。
在图1示出的基于本发明的多任务调度方法的实现流程中,在框101中,关中断,在框102中,保存当前任务断点信息,如堆栈、程序指针、寄存器等到该任务TCB环境中,在框103中,开中断;在框104中,检查在就绪任务队列中,有无队列(队列是否为空),如果队列为空,则返回框104继续检查;如就绪任务队列不为空,进到框105,在框105中,按照其流程在图2中给出的调度算法取出一个就绪任务,并进到框106中,在框106中,设置该任务为运行状态,再在框107框中关中断,在108框中,用保存在该TCB中的环境信息来设置CPU堆栈、程序指针、寄存器等,在框109中,开中断。
在图2示出的调度算法的流程图中,在框201中,检查有无等待时间超过最大允许等待时间的任务吗,如没有,则在框202中,检查有无优先级任务,如没有,则在框203中按照轮转法找到下一个就绪的一般任务,最后在框205中,取出该任务;如在框202中查出存在优先级任务,则在框204中,按照轮转法找到下一个就绪的优先级任务,并进到框205取出该任务;如果在框201中,检查到存在有其等待时间超过最大允许等待时间的任务,则直接到框205取出该任务。
下面以一个具体的实例程序来说明利用本发明方法实现RTOS进行多任务调度的实际用法。
运行硬件环境:80C552小***;显示:16×2字符LCD;键盘:4键。程序完成如下功能:LCD左上角部分被两个显示任务轮流占用,LCD右上角显示当前时间;LCD左下角部分由一个任务实现动画显示,LCD右下角显示一个实时数据,当有键盘按下时,该数据被改变。
简单说明一下该实例程序。该程序共有6个任务,分述如下:
Task0每100ms执行一次,实现一个普通数据变量的累加,并且显示到显示屏的坐标(0,0)处;
Task1每1秒钟执行一次,读取并显示当前时间到坐标(8,0)处,同时在1分钟的时间内,允许Task0和Task4交替执行30秒;
Task2实现简单的动画显示,显示到坐标(0,1)处;
Task3每500ms实现一次实时数据的刷新,显示位置(8,1);
Task4实现简单的动画显示,显示到坐标(0,0)处;
Task5每10ms读取键盘口,当有键盘按下时,改变实时数据,并且立刻运行Task3。
显然,这里刻意把Task0和Task4显示内容处于同一个位置,来验证任务的删除和重建功能。
用户程序中设定了一个10ms定时器T0,在定时器中断程序中对任务计数器数组中的每个值都运行一次减量运算(或者称为减一操作)。这样操作***就可以根据任务计数器数组中的数值进行正确的任务调度和处理了。因此操作***的时间单位就是10ms。最快的响应和控制将在10ms后执行,从而满足实时性。
主要程序可以如下实现:
Task0:
首先,该普通数据变量递加,按十进制格式显示在坐标(0,0)处,然后自身挂起10个单位的时间即可。
Task1:
从一个实时钟芯片,如DS1687读取时间后,按时间显示格式显示在坐标(8,0)处;判断该时间是否为前30秒钟,如果是,重建Task0,删除Task4,否则重建Task4,删除Task0,最后自身挂起100个单位的时间;
Task2:
在坐标(0,1)到(7,1)之间,显示一个位置循环左移的小图标,每次显示间距100毫秒,即自身挂起10个单位的时间;
Task3:
按十进制格式显示一个实时数据到坐标(8,1)处,然后自身挂起50个单位的时间;
Task4:
在坐标(0,0)到(7,0)之间,显示一个位置循环右移的小图标,每次显示间距100毫秒,即自身挂起10个单位的时间;
Task5:
读键盘口数据,如果没有键被按下,且持续60秒钟的话,关闭液晶背光;否则根据按键改变实时数据的数值,然后立刻调用Task3(即完成数据的实时刷新),最后自身挂起1个单位的时间。
在用户的主程序中,开始分别调用任务建立函数来建立6个任务;然后初始化定时器T0,最后调用操作***启动函数即可。
另外,本程序中的Task5定时键盘处理任务摘自一个实际的监控***软件中的10毫秒定时中断程序部分。从中可见,该任务每10ms执行一次,读取键盘口,消抖动,允许用户的加速键应用,每30秒自动送入一个退出键值到键盘缓冲区中。显然,该程序比较大而复杂,在定时中断程序中执行会降低软件可靠性和效率(中断程序应该尽量短小),在背景程序中执行又无法保证读键和显示的实时性。如上所述,把键盘处理函数当作一个任务执行,就完美地解决了上述问题。
综上所述,实现本发明提出的支持多任务调度的嵌入式RTOS的实现方法,在充分保证多个任务实时的同时保证响应的实时性。虽然上述实施例以单片机8051举例,实际上它可应用到其他类型的单片机***上。它可以作为一种微内核RTOS,实际应用时需要用户合理设置任务调度。由于无须开辟巨大的RAM空间来保存各个任务的环境,因此显得非常短小精悍,可以用在许多嵌入式应用中。运用之妙,在乎各人了。
Claims (6)
1、一种多任务实时操作***的实现方法,其特征在于:包括以下步骤:
(1)为每一个任务设置一个最大允许等待时间,将每一个需要占用CPU运行的任务分为优先级任务和一般任务,用一个整数类型的数组记录每个任务的等待时间并在定时器程序中对其数值进行减量刷新,其特征在于,包括以下步骤:
(2)设置一个任务建立函数,可将一个任务与其相对应的任务程序相连,并建立该任务的TCB,将一个或多个其长度不大于基本单位时间的不定长时间片分配给一个任务;
(3)设置一个任务挂起函数,用于在非临界区的内存空间实现多任务之间的调度,调度时,用函数和全局变量的形式来替换掉调度处的局部变量,每一个任务在所分配到的时间片结束或被挂起之前占用CPU;
(4)按照以下步骤进行多任务调度:保存现场状态、检查就绪任务队列中有无任务,如有任务则利用调度算法取出一个就绪任务,调用任务运行函数将该取出的任务设置为运行状态,恢复现场状态;其中,所述调度算法包括以下步骤:如果有等待时间超过最大允许等待时间的任务,则运行该任务;如果有优先级任务,则按照轮转法确定下一个就绪的优先级任务;如果没有优先级任务,按照轮转法确定下一个就绪的一般任务。
2、根据权利要求1所述方法,其特征在于,所述调用任务挂起函数是执行以下步骤:将第一参数表示任务号所对应的任务挂起第二参数表示的挂起时间,所述挂起时间以基本单位时间为单位,所述挂起时间为0时,将所述第一参数表示任务号对应的任务重新放到所述就绪任务队列的末尾;所述挂起时间不为0时,将所述第一参数表示任务号对应的任务挂起所述第二时间表示的挂起时间后,再重新放到所述就绪任务队列的末尾。
3、根据权利要求1所述方法,其特征在于,还包括以下步骤:设置任务就绪函数用于使某一个任务处于就绪状态。
4、根据权利要求1所述方法,其特征在于,还包括以下步骤:设置任务优先级设置函数,用于在调用该函数时,改变一般任务为优先级任务或改变优先级任务为一般任务。
5、根据权利要求1所述方法,其特征在于,还包括以下步骤:设置任务删除函数用于删除一个任务。
6、根据权利要求1所述方法,其特征在于,所述保存现场包括以下步骤:关中断;保存当前任务断点信息,如堆栈、程序指针、寄存器等到该任务的TCB环境中以及开中断;所述恢复现场包括以下步骤:关中断;用保存在该TCB中的环境信息来设置CPU堆栈、程序指针、寄存器等以及开中断。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB011269065A CN100485605C (zh) | 2001-09-24 | 2001-09-24 | 一种多任务实时操作***的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB011269065A CN100485605C (zh) | 2001-09-24 | 2001-09-24 | 一种多任务实时操作***的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1409209A true CN1409209A (zh) | 2003-04-09 |
CN100485605C CN100485605C (zh) | 2009-05-06 |
Family
ID=4666909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB011269065A Expired - Lifetime CN100485605C (zh) | 2001-09-24 | 2001-09-24 | 一种多任务实时操作***的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100485605C (zh) |
Cited By (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1295583C (zh) * | 2003-08-14 | 2007-01-17 | 株式会社东芝 | 实现实时操作的方法和*** |
CN1304949C (zh) * | 2005-01-12 | 2007-03-14 | 宁波大学 | 一种实时多任务操作***的定时器调度方法 |
CN1317640C (zh) * | 2004-08-31 | 2007-05-23 | 华为技术有限公司 | 实时操作***环境下多任务应用软件模块的管理方法 |
CN100345132C (zh) * | 2003-07-28 | 2007-10-24 | 华为技术有限公司 | 一种并行处理的方法及*** |
CN100349121C (zh) * | 2005-07-08 | 2007-11-14 | 北京中星微电子有限公司 | 嵌入式并行计算***以及嵌入式并行计算方法 |
CN100365544C (zh) * | 2006-03-10 | 2008-01-30 | 浙江大学 | 嵌入式***外部设备带有等待超时判断的节能切换方法 |
CN100383742C (zh) * | 2006-04-07 | 2008-04-23 | 浙江大学 | Java操作***中建立实时任务的实现方法 |
CN100383743C (zh) * | 2006-04-07 | 2008-04-23 | 浙江大学 | Java操作***中实时任务调度方法 |
CN100395702C (zh) * | 2006-09-30 | 2008-06-18 | 华为技术有限公司 | 一种定时器实现方法 |
CN100405306C (zh) * | 2004-04-08 | 2008-07-23 | 台湾积体电路制造股份有限公司 | 程序排程***及方法 |
CN100419687C (zh) * | 2005-05-27 | 2008-09-17 | 佛山市顺德区顺达电脑厂有限公司 | 平衡***使用效率的移动装置及其方法 |
CN100462924C (zh) * | 2005-03-25 | 2009-02-18 | 株式会社东芝 | 可调度性确定方法和实时*** |
CN100462923C (zh) * | 2003-11-18 | 2009-02-18 | 丰田自动车株式会社 | 任务管理*** |
CN101221528B (zh) * | 2008-01-22 | 2010-06-16 | 中兴通讯股份有限公司 | 一种嵌入式操作***调度性能的测试方法 |
CN101290595B (zh) * | 2007-04-17 | 2011-04-20 | 国际商业机器公司 | 在异步环境下探查***管理程序任务的***和方法 |
CN102043667A (zh) * | 2010-11-25 | 2011-05-04 | 深圳市科陆电子科技股份有限公司 | 一种嵌入式操作***的任务调度方法 |
CN1862575B (zh) * | 2005-08-19 | 2011-08-03 | 华为技术有限公司 | 计划调度定时任务的方法 |
CN101290585B (zh) * | 2007-04-19 | 2011-09-21 | 中兴通讯股份有限公司 | 一种嵌入式***实时任务的调度方法 |
CN101290509B (zh) * | 2007-04-19 | 2012-01-18 | 中兴通讯股份有限公司 | 一种嵌入式***低功耗实时任务的调度方法 |
CN102521049A (zh) * | 2011-11-18 | 2012-06-27 | 清华大学 | 多核间内存调度方法 |
CN102541643A (zh) * | 2011-12-30 | 2012-07-04 | 上海新时达电气股份有限公司 | 嵌入式***中逻辑信号的延时处理方法 |
CN102662670A (zh) * | 2012-04-05 | 2012-09-12 | 林添孝 | 一种场景式无核嵌入式实时操作***的实现方法 |
CN101567873B (zh) * | 2008-04-25 | 2013-05-15 | 锐迪科微电子(上海)有限公司 | 一种多任务并行处理方法及*** |
CN101551758B (zh) * | 2009-05-13 | 2013-06-05 | 中兴通讯股份有限公司 | 一种实现设备管理任务并行工作的***和方法 |
CN101826032B (zh) * | 2009-03-06 | 2013-07-31 | 盈威力新能源科技(上海)有限公司 | 一种高效实时多任务操作***内核 |
CN103257864A (zh) * | 2013-05-09 | 2013-08-21 | 南京航空航天大学 | 嵌入式软件任务调度方法 |
CN103293967A (zh) * | 2012-02-29 | 2013-09-11 | 陕西省地方电力(集团)有限公司 | 一种用于智能抄表终端的多任务控制方法 |
CN103294544A (zh) * | 2012-02-27 | 2013-09-11 | 展讯通信(上海)有限公司 | 嵌入式***及其中断处理方法与装置 |
CN103559085A (zh) * | 2013-10-21 | 2014-02-05 | 福建升腾资讯有限公司 | 一种嵌入式***中进行中断以及临界事件管理操作的方法 |
CN103592871A (zh) * | 2013-05-20 | 2014-02-19 | 赛龙通信技术(深圳)有限公司 | 一种多任务定时控制***及其中断响应方法 |
CN104102491A (zh) * | 2014-07-28 | 2014-10-15 | 航天科工深圳(集团)有限公司 | 单片机实时任务与耗时任务并行执行的实现方法和*** |
CN105204857A (zh) * | 2015-09-21 | 2015-12-30 | 中国船舶重工集团公司第七〇五研究所 | 一种基于“轮询式”多时间片精确调度的嵌入式控制***设计方法 |
CN101639792B (zh) * | 2008-07-29 | 2016-04-06 | 阿里巴巴集团控股有限公司 | 一种并发数据处理方法、装置及一种电子记账*** |
CN101216786B (zh) * | 2007-01-05 | 2016-09-21 | 三星电子株式会社 | 在实时操作***中调度任务的方法、介质和设备 |
CN106354557A (zh) * | 2016-08-29 | 2017-01-25 | 佛山市美的清湖净水设备有限公司 | 基于时间片任务调度***的家电及其控制方法、控制器 |
CN106445659A (zh) * | 2016-09-09 | 2017-02-22 | 北京控制工程研究所 | 一种空间飞行器周期性混成随机任务调度方法 |
CN106528288A (zh) * | 2015-09-10 | 2017-03-22 | 中兴通讯股份有限公司 | 一种资源管理方法、装置和*** |
CN106775988A (zh) * | 2016-12-30 | 2017-05-31 | 广东欧珀移动通信有限公司 | 一种数据处理方法及设备 |
CN106875029A (zh) * | 2016-08-16 | 2017-06-20 | 阿里巴巴集团控股有限公司 | 一种资源对象信息推送方法及装置 |
CN106919520A (zh) * | 2015-12-28 | 2017-07-04 | 龙芯中科技术有限公司 | 访存命令调度方法、装置和*** |
CN107221014A (zh) * | 2017-06-26 | 2017-09-29 | 上海联影医疗科技有限公司 | 医学图像重建任务的调度方法和装置以及医学成像*** |
CN107273141A (zh) * | 2017-07-10 | 2017-10-20 | 无锡走向智能科技有限公司 | 嵌入式实时操作*** |
CN108859759A (zh) * | 2018-06-25 | 2018-11-23 | 武汉科技大学 | 电动汽车仪表***及其调度方法 |
CN109165042A (zh) * | 2018-07-23 | 2019-01-08 | 努比亚技术有限公司 | 一种应用中断恢复方法、终端及计算机可读存储介质 |
CN109324885A (zh) * | 2018-09-13 | 2019-02-12 | 厦门拓宝科技有限公司 | 一种应用于ups单片机控制的最小操作***及基于最小操作***的多任务管理方法 |
CN109597383A (zh) * | 2018-12-08 | 2019-04-09 | 顾满洲 | 一种轻量化小***可靠性结构设计 |
CN109725992A (zh) * | 2018-05-14 | 2019-05-07 | 网联清算有限公司 | 业务处理方法及其装置 |
CN109784647A (zh) * | 2018-12-14 | 2019-05-21 | 兰州空间技术物理研究所 | 一种用于空间站的主动电位控制***的任务调度方法 |
CN109947434A (zh) * | 2018-12-19 | 2019-06-28 | 中国兵器装备集团上海电控研究所 | 非中断式及伪并行嵌入式软件实时响应方法、***及介质 |
CN109992388A (zh) * | 2019-04-08 | 2019-07-09 | 中国核动力研究设计院 | 一种用于核电厂安全级设备软件多任务管理*** |
CN110794759A (zh) * | 2019-10-29 | 2020-02-14 | 北京和利时智能技术有限公司 | 一种plc任务调度方法和装置 |
CN112416546A (zh) * | 2020-11-10 | 2021-02-26 | 光华临港工程应用技术研发(上海)有限公司 | 多任务调度方法、电子装置和计算机存储介质 |
WO2021046932A1 (zh) * | 2019-09-12 | 2021-03-18 | 北京东土科技股份有限公司 | 基于实时操作***的消息驱动方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0631036U (ja) * | 1992-09-28 | 1994-04-22 | 株式会社東京ディップ | 端子絶縁スリーブ |
-
2001
- 2001-09-24 CN CNB011269065A patent/CN100485605C/zh not_active Expired - Lifetime
Cited By (65)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100345132C (zh) * | 2003-07-28 | 2007-10-24 | 华为技术有限公司 | 一种并行处理的方法及*** |
CN1295583C (zh) * | 2003-08-14 | 2007-01-17 | 株式会社东芝 | 实现实时操作的方法和*** |
CN100462923C (zh) * | 2003-11-18 | 2009-02-18 | 丰田自动车株式会社 | 任务管理*** |
CN100405306C (zh) * | 2004-04-08 | 2008-07-23 | 台湾积体电路制造股份有限公司 | 程序排程***及方法 |
CN1317640C (zh) * | 2004-08-31 | 2007-05-23 | 华为技术有限公司 | 实时操作***环境下多任务应用软件模块的管理方法 |
CN1304949C (zh) * | 2005-01-12 | 2007-03-14 | 宁波大学 | 一种实时多任务操作***的定时器调度方法 |
CN100462924C (zh) * | 2005-03-25 | 2009-02-18 | 株式会社东芝 | 可调度性确定方法和实时*** |
CN100419687C (zh) * | 2005-05-27 | 2008-09-17 | 佛山市顺德区顺达电脑厂有限公司 | 平衡***使用效率的移动装置及其方法 |
CN100349121C (zh) * | 2005-07-08 | 2007-11-14 | 北京中星微电子有限公司 | 嵌入式并行计算***以及嵌入式并行计算方法 |
CN1862575B (zh) * | 2005-08-19 | 2011-08-03 | 华为技术有限公司 | 计划调度定时任务的方法 |
CN100365544C (zh) * | 2006-03-10 | 2008-01-30 | 浙江大学 | 嵌入式***外部设备带有等待超时判断的节能切换方法 |
CN100383743C (zh) * | 2006-04-07 | 2008-04-23 | 浙江大学 | Java操作***中实时任务调度方法 |
CN100383742C (zh) * | 2006-04-07 | 2008-04-23 | 浙江大学 | Java操作***中建立实时任务的实现方法 |
CN100395702C (zh) * | 2006-09-30 | 2008-06-18 | 华为技术有限公司 | 一种定时器实现方法 |
CN101216786B (zh) * | 2007-01-05 | 2016-09-21 | 三星电子株式会社 | 在实时操作***中调度任务的方法、介质和设备 |
CN101290595B (zh) * | 2007-04-17 | 2011-04-20 | 国际商业机器公司 | 在异步环境下探查***管理程序任务的***和方法 |
CN101290509B (zh) * | 2007-04-19 | 2012-01-18 | 中兴通讯股份有限公司 | 一种嵌入式***低功耗实时任务的调度方法 |
CN101290585B (zh) * | 2007-04-19 | 2011-09-21 | 中兴通讯股份有限公司 | 一种嵌入式***实时任务的调度方法 |
CN101221528B (zh) * | 2008-01-22 | 2010-06-16 | 中兴通讯股份有限公司 | 一种嵌入式操作***调度性能的测试方法 |
CN101567873B (zh) * | 2008-04-25 | 2013-05-15 | 锐迪科微电子(上海)有限公司 | 一种多任务并行处理方法及*** |
CN101639792B (zh) * | 2008-07-29 | 2016-04-06 | 阿里巴巴集团控股有限公司 | 一种并发数据处理方法、装置及一种电子记账*** |
CN101826032B (zh) * | 2009-03-06 | 2013-07-31 | 盈威力新能源科技(上海)有限公司 | 一种高效实时多任务操作***内核 |
CN101551758B (zh) * | 2009-05-13 | 2013-06-05 | 中兴通讯股份有限公司 | 一种实现设备管理任务并行工作的***和方法 |
CN102043667A (zh) * | 2010-11-25 | 2011-05-04 | 深圳市科陆电子科技股份有限公司 | 一种嵌入式操作***的任务调度方法 |
CN102521049A (zh) * | 2011-11-18 | 2012-06-27 | 清华大学 | 多核间内存调度方法 |
CN102521049B (zh) * | 2011-11-18 | 2013-07-10 | 清华大学 | 多核间内存调度方法 |
CN102541643A (zh) * | 2011-12-30 | 2012-07-04 | 上海新时达电气股份有限公司 | 嵌入式***中逻辑信号的延时处理方法 |
CN103294544A (zh) * | 2012-02-27 | 2013-09-11 | 展讯通信(上海)有限公司 | 嵌入式***及其中断处理方法与装置 |
CN103294544B (zh) * | 2012-02-27 | 2016-08-17 | 展讯通信(上海)有限公司 | 嵌入式***及其中断处理方法与装置 |
CN103293967A (zh) * | 2012-02-29 | 2013-09-11 | 陕西省地方电力(集团)有限公司 | 一种用于智能抄表终端的多任务控制方法 |
CN102662670A (zh) * | 2012-04-05 | 2012-09-12 | 林添孝 | 一种场景式无核嵌入式实时操作***的实现方法 |
CN102662670B (zh) * | 2012-04-05 | 2014-12-03 | 林添孝 | 一种场景式无核嵌入式实时操作***的实现方法 |
CN103257864A (zh) * | 2013-05-09 | 2013-08-21 | 南京航空航天大学 | 嵌入式软件任务调度方法 |
CN103592871A (zh) * | 2013-05-20 | 2014-02-19 | 赛龙通信技术(深圳)有限公司 | 一种多任务定时控制***及其中断响应方法 |
CN103559085B (zh) * | 2013-10-21 | 2016-10-05 | 福建星网锐捷通讯股份有限公司 | 一种嵌入式***中进行中断以及临界事件管理操作的方法 |
CN103559085A (zh) * | 2013-10-21 | 2014-02-05 | 福建升腾资讯有限公司 | 一种嵌入式***中进行中断以及临界事件管理操作的方法 |
CN104102491A (zh) * | 2014-07-28 | 2014-10-15 | 航天科工深圳(集团)有限公司 | 单片机实时任务与耗时任务并行执行的实现方法和*** |
CN104102491B (zh) * | 2014-07-28 | 2017-07-14 | 深圳航天工业技术研究院有限公司 | 单片机实时任务与耗时任务并行执行的实现方法和*** |
CN106528288A (zh) * | 2015-09-10 | 2017-03-22 | 中兴通讯股份有限公司 | 一种资源管理方法、装置和*** |
CN105204857A (zh) * | 2015-09-21 | 2015-12-30 | 中国船舶重工集团公司第七〇五研究所 | 一种基于“轮询式”多时间片精确调度的嵌入式控制***设计方法 |
CN105204857B (zh) * | 2015-09-21 | 2018-08-07 | 中国船舶重工集团公司第七〇五研究所 | 一种基于“轮询式”多时间片精确调度的嵌入式控制***设计方法 |
CN106919520A (zh) * | 2015-12-28 | 2017-07-04 | 龙芯中科技术有限公司 | 访存命令调度方法、装置和*** |
CN106919520B (zh) * | 2015-12-28 | 2019-11-05 | 龙芯中科技术有限公司 | 访存命令调度方法、装置和*** |
CN106875029A (zh) * | 2016-08-16 | 2017-06-20 | 阿里巴巴集团控股有限公司 | 一种资源对象信息推送方法及装置 |
CN106875029B (zh) * | 2016-08-16 | 2020-05-29 | 阿里巴巴集团控股有限公司 | 一种资源对象信息推送方法及装置 |
CN106354557A (zh) * | 2016-08-29 | 2017-01-25 | 佛山市美的清湖净水设备有限公司 | 基于时间片任务调度***的家电及其控制方法、控制器 |
CN106445659A (zh) * | 2016-09-09 | 2017-02-22 | 北京控制工程研究所 | 一种空间飞行器周期性混成随机任务调度方法 |
CN106445659B (zh) * | 2016-09-09 | 2019-07-12 | 北京控制工程研究所 | 一种空间飞行器周期性混成随机任务调度方法 |
CN106775988A (zh) * | 2016-12-30 | 2017-05-31 | 广东欧珀移动通信有限公司 | 一种数据处理方法及设备 |
CN107221014A (zh) * | 2017-06-26 | 2017-09-29 | 上海联影医疗科技有限公司 | 医学图像重建任务的调度方法和装置以及医学成像*** |
CN107273141A (zh) * | 2017-07-10 | 2017-10-20 | 无锡走向智能科技有限公司 | 嵌入式实时操作*** |
CN109725992A (zh) * | 2018-05-14 | 2019-05-07 | 网联清算有限公司 | 业务处理方法及其装置 |
CN108859759B (zh) * | 2018-06-25 | 2021-02-09 | 武汉科技大学 | 电动汽车仪表***及其调度方法 |
CN108859759A (zh) * | 2018-06-25 | 2018-11-23 | 武汉科技大学 | 电动汽车仪表***及其调度方法 |
CN109165042A (zh) * | 2018-07-23 | 2019-01-08 | 努比亚技术有限公司 | 一种应用中断恢复方法、终端及计算机可读存储介质 |
CN109324885A (zh) * | 2018-09-13 | 2019-02-12 | 厦门拓宝科技有限公司 | 一种应用于ups单片机控制的最小操作***及基于最小操作***的多任务管理方法 |
CN109597383A (zh) * | 2018-12-08 | 2019-04-09 | 顾满洲 | 一种轻量化小***可靠性结构设计 |
CN109597383B (zh) * | 2018-12-08 | 2021-10-08 | 顾满洲 | 一种轻量化小***可靠性结构设计 |
CN109784647A (zh) * | 2018-12-14 | 2019-05-21 | 兰州空间技术物理研究所 | 一种用于空间站的主动电位控制***的任务调度方法 |
CN109947434A (zh) * | 2018-12-19 | 2019-06-28 | 中国兵器装备集团上海电控研究所 | 非中断式及伪并行嵌入式软件实时响应方法、***及介质 |
CN109992388A (zh) * | 2019-04-08 | 2019-07-09 | 中国核动力研究设计院 | 一种用于核电厂安全级设备软件多任务管理*** |
CN109992388B (zh) * | 2019-04-08 | 2021-04-13 | 中核控制***工程有限公司 | 一种用于核电厂安全级设备软件多任务管理*** |
WO2021046932A1 (zh) * | 2019-09-12 | 2021-03-18 | 北京东土科技股份有限公司 | 基于实时操作***的消息驱动方法和装置 |
CN110794759A (zh) * | 2019-10-29 | 2020-02-14 | 北京和利时智能技术有限公司 | 一种plc任务调度方法和装置 |
CN112416546A (zh) * | 2020-11-10 | 2021-02-26 | 光华临港工程应用技术研发(上海)有限公司 | 多任务调度方法、电子装置和计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN100485605C (zh) | 2009-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100485605C (zh) | 一种多任务实时操作***的实现方法 | |
US11625885B2 (en) | Graphics processor with non-blocking concurrent architecture | |
EP2316091B1 (en) | Protected mode scheduling of operations | |
Stein et al. | Implementing Lightweight Threads. | |
US8607235B2 (en) | Mechanism to schedule threads on OS-sequestered sequencers without operating system intervention | |
Mascarenhas et al. | Ariadne: Architecture of a portable threads system supporting thread migration | |
CN101556545B (zh) | 一种实现进程支持的方法、装置和多线程*** | |
CN112416546A (zh) | 多任务调度方法、电子装置和计算机存储介质 | |
Dong et al. | SenSpire OS: A predictable, flexible, and efficient operating system for wireless sensor networks | |
CN111209046A (zh) | 一种面向多任务处理的嵌入式sparc处理器操作***设计方法 | |
WO2005048009A2 (en) | Method and system for multithreaded processing using errands | |
Razaghi et al. | Host-compiled multicore RTOS simulator for embedded real-time software development | |
Gadepalli et al. | Slite: OS support for near zero-cost, configurable scheduling | |
Huh et al. | Cross‐layer resource control and scheduling for improving interactivity in Android | |
Bi et al. | Research of key technologies for embedded Linux based on ARM | |
Goyette | An analysis and description of the inner workings of the freertos kernel | |
Horstmann et al. | A framework to design and implement real-time multicore schedulers using machine learning | |
Mascarenhas et al. | Ariadne: Architecture of a portable threads system supporting mobile processes | |
Beronić et al. | Comparison of structured concurrency constructs in java and kotlin–virtual threads and coroutines | |
Tan et al. | StateOS: A memory-efficient hybrid operating system for IoT devices | |
Wellings et al. | Asynchronous event handling and real-time threads in the real-time specification for Java | |
Zhu | Understanding FreeRTOS: A requirement analysis | |
Zhou et al. | An event-driven multi-threading real-time operating system dedicated to wireless sensor networks | |
Papadimitriou et al. | Mac OS versus FreeBSD: A comparative evaluation | |
Mascarenhas | A system for multithreaded parallel simulation and computation with migrant threads and objects |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
ASS | Succession or assignment of patent right |
Owner name: SHENZHENG CITY ZTE CO., LTD. Free format text: FORMER OWNER: SHENZHENG CITY ZTE CO., LTD. SHANGHAI SECOND INSTITUTE Effective date: 20030724 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20030724 Applicant after: Zhongxing Communication Co., Ltd., Shenzhen City Applicant before: Shanghai Inst. of No.2, Zhongxing Communication Co., Ltd., Shenzhen City |
|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term |
Granted publication date: 20090506 |
|
CX01 | Expiry of patent term |