基于分时共享技术的嵌入式远程实验平台工作方法及系统与流程

文档序号:12278840阅读:345来源:国知局
基于分时共享技术的嵌入式远程实验平台工作方法及系统与流程

本发明涉及远程实验领域,具体而言,涉及基于分时共享技术的嵌入式远程实验平台工作方法及系统。



背景技术:

嵌入式远程实验平台技术是依靠互联网技术而实现的,用户可以在远端通过互联网来操控实验室中的实验设备,即通过编程进行实验的设备。

如图1所示,用户通过互联网进行远程实验的过程大体可包括如下几个步骤:

1)用户通过操作客户端生成实验请求,其中包含实验代码;

2)客户端将实验请求通过互联网发送给远程实验平台服务器;

3)服务器将实验请求中的实验代码写入到对应的实验设备上进行实验,其中,每个实验设备同时只依据一个实验请求的代码进行实验;

4)对于任意一个实验设备,均是当该实验请求的实验完全进行结束后,再写入下一个实验请求中的实验代码进行实验,并且将已经完成的实验的结果返回给发出实验请求的客户端。

按照上述实验过程,如果只有一个实验设备,却有多个实验代码,则需要逐个实验代码执行,也就是执行完一个实验代码再执行另一个,这样导致用户等待的时间过长,从而降低服务质量。由于嵌入式实验设备价格较高,对于传统独占远程实验方式而言,要想保证服务 质量,只能购置大量的实验设备来满足较大的实验请求到达速率,因此需要一种方法在保证服务质量的前提下降低实验设备购置的财政投入。



技术实现要素:

本发明的目的在于提供基于分时共享技术的嵌入式远程实验平台工作方法,以降低用户等待的平均时间。

第一方面,本发明提供一种基于分时共享技术的嵌入式远程实验平台工作方法,包括:

分别获取客户端所发出的多个实验代码;

将多个实验代码中的至少两个实验代码编写为完整代码;

将完整代码写入目标实验设备中,以使目标实验设备按照如下方式工作:分多轮执行完整代码,直至完整代码全部执行结束;其中,每轮将完整代码中的一个实验代码执行一次,且每次执行预定时长;

在实验代码在当前轮执行结束后,生成该实验代码执行的中间结果,并将中间结果向对应的客户端反馈。

结合第一方面,本发明还提供了上述第一方面的嵌入式远程实验平台工作方法的第一种实施方式,其中,还包括:

获取目标实验代码的运行总时间,运行总时间是目标设备中指定的同一个实验代码的运行总时间;

判断目标运行总时间是否超过预定的第一时间阈值;

若是,则强制终止目标实验代码的执行。

结合第一方面,本发明还提供了上述第一方面的嵌入式远程实验平台工作方法的第二种实施方式,其中,在同一轮执行的实验代码的执行时长的上限相等。

结合第一方面,本发明还提供了上述第一方面的嵌入式远程实验平台工作方法的第三种实施方式,其中,还包括:

每次新获取到客户端所发出的实验代码,则检测不同实验设备的未执行的实验代码的数量;

将新获取到实验代码排队至所有实验设备中,未执行的实验代码的数量最少的实验设备。

结合第一方面,本发明还提供了上述第一方面的嵌入式远程实验平台工作方法的第四种实施方式,其中,还包括:

获取用户所输入的操作字符,以及与操作字符相对应的代码标签;

当与代码标签相对应的实验代码运行时,将操作字符写入到目标实验设备中。

结合第一方面,本发明还提供了第一方面的嵌入式远程实验平台工作方法的第五种实施方式,其中,在步骤生成该实验代码执行的中间结果前,还包括:

获取实验设备依次输出实验结果;

依据定界符,从实验结果中分别提取每个实验代码所对应的中间结果,实验结果中,每个实验代码所对应的中间结果的两端均携带有对应的定界符。

结合第一方面,本发明还提供了上述第一方面的嵌入式远程实验平台工作方法的第六种实施方式,其中,分多轮执行完整代码,直至完整代码全部执行结束包括,实验设备每轮按照如下方式执行每个实验代码,直至每个实验代码均执行一次:

调取当前未执行过的实验代码;

通过实验设备执行调取到的实验代码;

当本轮调取到的实验代码的执行的时间到达预设的第二时间阈值时,保存调取到的实验代码的执行结果,并暂停调取到的实验代码的执行。

第二方面,本发明还提供了基于分时共享技术的嵌入式远程实验平台工作系统,包括:

实验代码获取模块,用于分别获取多个客户端所发出的实验代码;

编写模块,用于将至少两个实验代码编写为完整代码;

写入模块,用于将完整代码写入目标实验设备中,以使目标实验设备按照如下方式工作:分多轮执行完整代码,直至完整代码全部执行结束;其中,每轮将完整代码中的一个实验代码执行一次,且每次执行预定时长;

反馈模块,用于在实验代码在当前轮执行结束后,生成该实验代码执行的中间结果,并将中间结果向对应的客户端反馈。

结合第二方面,本发明还提供了上述第二方面的嵌入式远程实验平台工作系统的第一种实施方式,其中,还包括:

时间获取模块,用于获取目标实验代码的运行总时间,运行总时间是目标设备中指定的同一个实验代码的运行总时间;

判断模块,用于判断目标运行总时间是否超过预定的第一时间阈值;

强制终止模块,用于当判断模块判断为是时,强制终止目标实验代码的执行。

结合第二方面,本发明还提供了第二方面的嵌入式远程实验平台工作系统的第二种实施方式,其中,在同一轮执行的实验代码的执行时长相等。

本发明提供的基于分时共享技术的嵌入式远程实验平台工作方法,采用在一个实验设备中并发但不同时执行多个实验代码的方式,与现有技术中的需要在实验设备执行一个实验代码后,重启一次,再执行下一个实验代码,当实验代码大量增加后,导致实验设备对用户进行响应的平均时间过长,其通过首先将多个实验代码编写为一个完整的实验代码,再将该完整代码写入到目标实验设备中,并执行。实验设备具体执行的时候,分多轮执行完整代码,直至完整代码全部执行结束;其中,每轮将完整代码中的一个实验代码执行一次,且每次执行预定时长。并且,当一个实验代码在当前轮执行结束之后,便输出该轮执行的中间结果,降低了用户的平均等待时间。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明的技术方案,下面对本申请中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了进行远程实验的网络架构的示意图;

图2示出了本发明的基于分时共享技术的嵌入式远程实验平台工作方法的基本流程图;

图3示出了本发明的基于分时共享技术的嵌入式远程实验平台工作方法的输出实验结果的具体形式;

图4示出了本发明的使用基于分时共享技术的嵌入式远程实验平台工作方法与使用传统方法的平均等待时间的对比图;

图5示出了本发明完整代码生成流程。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

相关技术中,远程实验平台同时存在有多个实验设备,每个实验设备在执行实验代码时,需要将当前实验代码完全执行完毕之后,才能执行下一个实验代码,这导致系统对用户响应的平均时间过长,尤其是对排队靠后的用户,对这些用户的响应时间过长。

针对该种情况,本申请提供了基于分时共享技术的嵌入式远程实验平台工作方法,如图2所示,包括如下步骤:

S101,分别获取客户端所发出的多个实验代码;

S102,将多个实验代码中的至少两个实验代码编写为完整代码;

S103,将完整代码写入目标实验设备中,以使目标实验设备按照如下方式工作:分多轮执行完整代码,直至完整代码全部执行结束;其中,每轮将完整代码中的一个实验代码执行一次,且每次执行预定时长;

S104,在实验代码在当前轮执行结束后,生成该实验代码执行的中间结果,并将中间结果向对应的客户端反馈。

具体的,实验代码是客户通过提供客户端编写完成的初步代码。为了能够将这些初步代码交给同一个实验设备中使用,并且不需要实验设备重启后才能执行,则需要将这些初步代码编写成一个完整代码,编写完整代码时,并不需要对初步代码进行复杂调整,后文中会对编写的过程进行说明。

编写成完整代码后,则可以将该完整代码输入到目标实验设备中(多个实验设备中的一个),并开始执行。具体执行的时候,需要分多轮执行完整代码,直至完整代码全部执行结束;其中,每轮将完整代码中的一个实验代码执行一次,且每次执行预定时长。如初步代码共有5个,那么每一轮需要将这5个初步代码均执行一次,且均执行预定的时间。并且,每一轮执行完一个初步代码之后,需要将该初步代码暂停,并将当前的中间结果输出(即反馈给相应的客户端)。

本发明所提供的方案中,对用户而言,极大降低系统对其实验请求的响应时间,也就是,大量用户所提供的实验代码的开始执行时间基本一致(在同一轮执行的代码中,执行时间相差较小)。相对于传统技术中完全执行完一个实验代码后才能执行下一个实验代码的方式,每个客户端很快便能够得到第一个中间结果,并且该中间结果能够给用户带来一定的帮助(如判定当前的中间结果是否与预设相符,不相符的话,就可以终止其余代码的执行)。具体如,用户在编写完成实验代码之后,会产生预期的实验结果,如第5步的实验结果应当输出1001,如果实际收到的实验结果为1011,那么就说明第5步骤的执行结果出现偏差,那么即使后续的实验结果正确,也说明当前执行出错。

具体通过实验设备执行时,有如下两点需要约束:

第一点,每个实验不能无限长地占用实验设备,必须设置一个最长运行时间并在超时后强行结束;

因此,系统需要获取目标实验代码的运行总时间,运行总时间是目标设备中指定的同一个实验代码的运行总时间;

判断目标运行总时间是否超过预定的第一时间阈值;

若是,则强制终止目标实验代码的执行

第二点,每个实验在使用完硬件资源(如串口)后必须释放,以便下一个实验程序使用。

因此,系统需要判断当前实验代码执行结束后,就进行释放。

为了避免用户所提供的实验代码的排队时间过长,需要按照负载均衡的策略,将用户新发出的实验代码进行排队。排队时,应当将系统新接收到的实验代码排队在排队数量(未执行实验代码的数量)最少的实验设备中。即每次新获取到客户端所发出的实验代码,则检测不同实验设备的未执行的实验代码的数量;

将新获取到实验代码排队至所有实验设备中,未执行的实验代码的数量最少的实验设备。

同时,实验在进行时,可能需要用户输入相关的操作字符,如系统提示某个字符等等(如放大实验中,需要设备会将用户所输入的字符的放大),此时用户应当通过客户端输入该操作字符。但系统接收到操作字符的时候,当前程序可能并没有处于执行状态(可能在执行当前轮其他的实验代码)因此,需要等用户输入的操作字符所对应的实验代码执行时,再输入到程序中。即,本申请所提供的方法还包括:

获取用户所输入的操作字符,以及与操作字符相对应的代码标签;

当与代码标签相对应的实验代码运行时,将操作字符写入到目标实验设备中。

实验设备在执行的过程中,实验结果(包括中间结果和最终结果)是不停的输出的(实验代码在执行的过程中会持续输出结果),由于 在同一轮执行的过程中,是需要执行不同的程序,因此可以采用增加定界符的方式来将不同实验代码的中间结果进行区分。即在步骤生成该实验代码执行的中间结果前,还包括:

获取实验设备依次输出实验结果;

依据定界符,从实验结果中分别提取每个实验代码所对应的中间结果,实验结果中,每个实验代码所对应的中间结果的两端均携带有对应的定界符。

如图3所示,下表给出了图3中各个符号的含义。

可见,任意一个实验代码执行的中间结果的两端均携带有相应的定界符,系统可以通过识别定界符的方式来调取相应的中间结果。

下面,对将多个实验代码中的至少两个实验代码编写为完整代码的步骤进行说明。参照附图5,所有参与分组的用户程序(实验代码)都需要由系统分别提前单独编译,且编译必须通过;如果单独编译没有通过,则直接向用户返回编译错误信息。然而,对于任意一个组G,“G中包含的所有用户代码单独编译全部通过”是G构成的联合工程通过编译的必要不充分条件,所以如果该联合工程没有通过编译(可能是由于组G中存在两个用户代码U1,并且U1中的某代码段与U2中的某代码段重名),那么应当将G拆分后重新分组为G′,且要满足并再次编译组G′,直到通过编译。在编译的具体过程中,对于每一个用户程序,都要去除该程序中的环境相关代码,保留应用相关代码,并且,系统还需要针对分组G中的实验代码进行计数和实验统计,并依据外部参数头文件和模板控制代码生成控制代码,并最终根据控制代码和应用相关代码生成最终的联合工程代码,即完整代码。

在编译前对参与共享的项目代码以及任务调度器代码做预处理,使各实验代码能在时分复用中服从调度器的任务管理。

本申请所提供的基于分时共享技术的嵌入式远程实验平台工作方法主要降低了用户等待的平均时间,下面针对性的进行分析、说明。

首先说明本申请所提供的基于分时共享技术的嵌入式远程实验平台工作方法的适用前提:

1)使用实验设备进行实验的过程中不需要实验者操作实验箱硬件,如接线等;

2)实验过程中中对实验箱上硬件资源(如LED灯)的访问可以被短暂地中断而不影响总体实验效果;

例如对串口的访问,临时中断不会影响程序进行;

例如对寄存器的访问,只要做好寄存器状态的保存就不会影响程序进行。

嵌入式远程实验平台本身可被建模为无限源无限容量等待制随机服务系统,其实验设备个数为M,实验请求(实验请求是由客户端所发出的,并且每个实验代码携带在一个实验请求中)到达率为λ,单次实验平均耗时t0;共享条件下,由同一台实验设备执行的所有实验代码构成一个组,假设每隔TW时间进行一次分组。因此可得:独占实验设备情况下,实验请求到达速率λu=λq,实验请求离开速率 业务量共享情况下,组(分配到同一组的实验代码)到达速率λg=λqTw,组离开速率μg=(λqTWt0)-1,业务量众所周知有爱尔兰等待公式:

用于计算请求需要排队等待的概率D,和Little公式:

用于计算平均排队时长(即系统接收到实验请求和将该实验请求进行分组之间的时间长度)W。分别将独占和共享两种情况下的服务台个数与业务量代入公式,同时考虑到在共享情况下需要把等待分组 的平均时间Tw/2加到Little公式的结果上,即可求得独占下的系统响应时间Wu和共享下的系统响应时间Wg

在本例中,假设实验设备总数M=2,共享分组周期Tw=10(秒),单次实验平均耗时t0=60(秒),从0次每秒到0.025次每秒变化实验请求到达速率λq,可得如图4(图4中,实线是使用本申请所提供方法的平均等待时间,虚线是使用传统方法的平均等待时间)所示的关系,由此可见,本申请所提供的基于分时共享技术的嵌入式远程实验平台工作方法与传统的方法相比,可以大大降低用户的平均等待时间。

同时,由于嵌入式实验设备单价在¥10000以上,对于传统独占远程实验方式而言,需要购置大量的实验设备来满足较大的实验请求到达率;而本申请提供的方案,基于分时共享技术的嵌入式远程实验平台工作方法,由于具有共享的优势——即使仅有少量的实验设备也能在保证实验质量的前提下满足较大的实验请求到达率,可见,使用本方案后,实验中心在实验设备上的投入将会有明显降低。

应对于上述方法,本申请还提供了基于分时共享技术的嵌入式远程实验平台工作系统,包括:

实验代码获取模块,用于分别获取多个客户端所发出的实验代码;

编写模块,用于将至少两个实验代码编写为完整代码;

写入模块,用于将完整代码写入目标实验设备中,以使目标实验设备按照如下方式工作:分多轮执行完整代码,直至完整代码全部执 行结束;其中,每轮将完整代码中的一个实验代码执行一次,且每次执行预定时长;

反馈模块,用于在实验代码在当前轮执行结束后,生成该实验代码执行的中间结果,并将中间结果向对应的客户端反馈。

优选的,还包括:

时间获取模块,用于获取目标实验代码的运行总时间,运行总时间是目标设备中指定的同一个实验代码的运行总时间;

判断模块,用于判断目标运行总时间是否超过预定的第一时间阈值;

强制终止模块,用于当判断模块判断为是时,强制终止目标实验代码的执行。

优选的,在同一轮执行的实验代码的执行时长相等。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件 产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1