The invention relates to a device and task scheduling method based on Forth virtual machine, the task is divided into terminal, background, interrupt three types of tasks, the task control table task state TCB is set to Forth the definition of vector, by creating a Forth virtual machine instruction cycle synchronization task scheduling cycle mechanism, determine the only save the current stack pointer or restore the data situation can be switched at predetermined time precise scheduling of each task in the free state. Field protection needs to press the current returned stack pointer into the data stack, store the data stack pointer into the user variable area of the task; recover the scene, and recover the SP from the user variable area of the task, and store the stack top value into the returned stack pointer. The scheduling method and device provided by the invention can simplify the efficiency and meet the real-time requirement of the particular embedded application under the premise of ensuring the inherent characteristics of the Forth system such as good reconstruction, expansion, transplantation and interaction.
【技术实现步骤摘要】
基于Forth虚拟机的任务调度方法及装置
本专利技术涉及一种基于Forth虚拟机的任务调度及装置,属计算机操作系统
技术介绍
Forth语言本身就是一种过程控制语言和一种快速开发环境,而不仅仅是一个单纯的编程工具,具有很强的交互性、重构性、移植性和自扩展能力,以及高效的生成代码,甚至可以快速构造出一个实时多任务操作系统。一直以来,基于Forth虚拟机(FVM)的嵌入式多任务操作系统(FVMOS)究竟采用何种多任务调度策略始终是Forth界长期争论的焦点,以至于在先后形成的FIG-Forth、Forth-79、Forth-83、ANSIX3.215-1994、ISO/IEC15145:1997、Forth-2012等标准中均未出现相关的内容。与直接基于CPU处理器架构的多任务操作系统不同,FVMOS的实现有其独特性,若引入抢占式调度,势必会破坏虚拟机的硬件抽象,从而散失固有的重构、扩展、移植等特性。按照以往的方式,若采用抢占式调度,同时具备并发(终端和后台)、定时和中断三种任务类型,则实时性的保证是以数十项复杂的CPU现场保护与恢复以及丢失重构、扩展、移植等特性为代价的。此外,如果存在终端任务,这种中断驱动的强制调度还会严重干扰和打乱Forth系统特有的在线交互过程。
技术实现思路
本专利技术的目的是克服现有技术的不足,提供一种精简高效的基于Forth虚拟机架构的嵌入式任务调度方法及装置。本专利技术提供一种基于Forth虚拟机任务调度方法,包括:将当前返回栈指针,即指向PAUSE模快后的断点,压入数据栈;将当前数据栈指针保存到当前任务的tcb[sp]; ...
【技术保护点】
一种基于FORTH虚拟机的任务调度方法,其步骤包括:(1)将当前返回栈指针,即指向PAUSE模快后的断点,压入数据栈;(2)将当前数据栈指针保存到当前任务的tcb[sp];(3)得到下一个任务status里pass或wake对应过程的pfa,并压入返回栈;(4)FVM虚拟机开始跳转去执行PASS或WAKE过程;(5)若pass,rp
【技术特征摘要】
1.一种基于FORTH虚拟机的任务调度方法,其步骤包括:(1)将当前返回栈指针,即指向PAUSE模快后的断点,压入数据栈;(2)将当前数据栈指针保存到当前任务的tcb[sp];(3)得到下一个任务status里pass或wake对应过程的pfa,并压入返回栈;(4)FVM虚拟机开始跳转去执行PASS或WAKE过程;(5)若pass,rp0和tcbn仍在数据栈里,PASS模快将沿着多任务循环链表不断循环,(6)跳过处于pass状态的任务,直到遇到wake为止;(7)若wake,rp0和tcbm仍在数据栈里,WAKE模快将恢复处于wake状态任务的数据栈和返回栈,并由FVM实现跳转;(8)当退出PAUSE模块时,FVM又开始返回到PAUSE后面的断点处开始执行。2.根据权利要求1所述的方法,其特征在于:基于Forth虚拟机的任务调度架构应当在Forth核心词典和主控循环QUIT之上,包含终端任务、后台任务和中断任务三种任务类型。3.根据权利要求1所述的方法,其特征在于:现场保护需要将当前返回栈指针RP压入数据栈,将当前数据栈指针SP保存到该任务的用户变量区中;而恢复现场仅需要从该任务的用户变量区中恢复SP,并将栈顶值存入RP指针。4.根据权利要求1所述的方法,其...
【专利技术属性】
技术研发人员:代红兵,周永录,王丽清,
申请(专利权)人:云南大学,
类型:发明
国别省市:云南,53
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。