电子系统中的控制参数的管理的制作方法

文档序号:13685602阅读:111来源:国知局
电子系统中的控制参数的管理的制作方法

本技术涉及用于操作电子系统以管理跨设备或程序操作上下文切换的控制参数的应用的方法和设备。



背景技术:

在许多电子系统中,需要管理控制参数(例如,硬件或软件寄存器或存储器设置),以实现适当的处理器性能、存储器使用的经济性、指示潜在问题(诸如系统中的恶意软件的存在之类)的异常的检测、和进程与设备之间的最佳处理流。应用各种类型的控制参数的需要随着在执行流中的任意点处的硬件或软件上下文而不同。



技术实现要素:

在第一种途径中,说明的技术提供一种用于在至少一个电子系统处操作的机器实现的方法,包括检测通过操作上下文切换的图到达目标操作上下文的路径中的多个控制参数的使用模式;与识别所述目标操作上下文的指示符相关联地存储所述模式的表示;响应于检测到从源操作上下文到所述目标操作上下文的操作切换请求、资源访问上的设陷、和断点的检测中的至少一个,按照识别所述目标操作上下文的所述指示符来检索所述表示;和响应于所述检索,将至少一个控制参数应用于所述至少一个电子系统以匹配所述模式。

如上所述,应用各种类型的控制参数的需要随着在执行流中的任意点处的硬件或软件上下文而不同。例如,纯输入接收上下文需要应用配置附接的输入设备的那些控制参数,而不需要应用配置输出设备的控制参数。同样地,例如,针对特定目的的存储器预留可因操作上下文而异。

在将电子系统的执行流看作具有表示硬件和软件操作上下文的节点(或顶点),以及表示从源上下文到目标上下文的切换的路径(或边)的图,其中每个节点具有不同的控制参数要求的情况下,通常将存在与操作上下文之间的特定执行流路径相关联的控制参数使用的重复的模式。如果按照将控制参数的使用模式与图中的节点相关联的方式,存储关于控制参数的这些使用模式的信息,那么重复模式的知识可被累积并用于管理电子系统的操作中的后续动作。

例如,当在系统中,广泛地向系统的组成程序和设备分发较大的访问控制列表(acl)时,所述访问控制列表一般包含大量的条目,并非所有的条目都是在执行流程中的每个点处的每个程序或设备所需要的。因此下载并应用acl中的所有控制参数会不利地影响性能和存储器使用。通过利用本公开的技术观察acl的组成控制参数的实际使用模式,对于执行流的上述图的从源节点到目标节点的各个上下文切换,可以确定哪些参数是强制性的,或者最频繁使用的,并且在目标节点处的控制参数的下载和应用可被“修正”,使得只有那些强制性的或者最频繁使用的控制参数消耗资源。

通过获取控制参数使用的上述重复模式的知识,本公开的技术的各种实现允许系统提供实现适当的处理器性能、存储器使用的经济性、指示潜在问题(诸如系统中的恶意软件的存在之类)的异常的检测、和进程与设备之间的处理流的优化的可能。为了清楚起见,与本公开中使用的上下文切换相关的术语指的是在电子系统中产生的可能需要硬件或软件配置中的变化的任意转变。例子包括向对等体、客户端或服务器设备的控制转移,程序函数调用、远程过程调用、硬件和软件中断,等等。

附图说明

下面参考附图,将仅以举例的方式说明本公开技术的实现,附图中:

图1示出按照说明的本技术的操作方法的例子;以及

图2示出可按照说明的本技术操作的电子设备的例子。

具体实施方式

图1中,示出了始于开始步骤102的方法100。如对计算领域的普通技术人员而言清楚的是,所述开始步骤可以是本公开方法的迭代的开始,而不是“冷”开始。在步骤104,使监视器工作,以在步骤106,在图路径中检测图中的节点的控制参数的使用模式,所述节点诸如函数、中断过程或设备资源访问之类。在步骤108,存储检测出的模式的表示。例如,这可以是完整表示或简化表示,诸如所述模式的加密散列之类,存储装置可以是易失性或非易失性的。在测试步骤110,判定是否存在进行当前操作中的设备或程序的上下文切换的指令。如果不存在这样的上下文切换指令,那么处理继续到测试步骤112,在步骤112判定是否存在关于对资源的访问的陷阱或故障。如果不存在这样的陷阱或故障,那么处理继续到测试步骤114,在步骤114判定处理流中是否存在断点(例如,调试断点)。如果未检测到这样的断点,那么处理在结束步骤122终止(当然,当以迭代方式应用本技术时,结束步骤122可以是到开始步骤102的返回)。

在测试步骤110、112、114,如果关于上下文切换、陷阱或故障、或者断点的存在的结果是肯定的,那么方法进行到步骤116,在步骤116识别目标操作上下文,并且在步骤118,从存储装置检索先前与目标操作上下文标识符关联地存储的控制参数使用模式。在步骤120,按照识别的模式来应用控制参数,并且处理在结束步骤122终止(当然,在迭代方式下,结束步骤122可以是到开始步骤102的返回)。

图2中示出了按照本技术的一种实现的电子系统。图路径监视器202与程序或设备电子通信,以检测所采用的通过操作上下文切换图的路径,并将与所述路径中的节点对控制参数的使用有关的信息传递给模式检测器204,模式检测器204将检测出的模式的表示存储在模式表示存储库206中。上下文切换检测器208、资源访问陷阱检测器210和断点检测器212与程序或设备电子通信,以分别检测上下文切换指令、资源访问陷阱或故障、和断点,并从模式表示存储库206匹配目标操作上下文的标识符。模式检索器214检索识别的模式,并转而检索与所述模式匹配的控制参数,并将它们传递给控制参数应用器218,控制参数应用器218把选择的(并且可忽略取消选择的)控制参数应用于程序或设备。

本技术因此可操作以按照检测出的跨操作上下文切换(例如包括电子设备重启、本地或远程函数调用和程序中断)的模式,计算、存储、更新和应用控制参数。该技术可应用内部和外部分析学或启发式方法,以确定最可能需要的参数。这些方法包括其中要由服务器设备或等价的分布式系统分析的客户端设备发送控制参数的使用模式的情况,和其中在设备本身上计算和分析控制参数的使用模式的情况。如果由服务器或等价的分布式系统进行分析,那么所述服务器或系统可以是可操作的,以询问客户端设备从而查明关于所述模式的附加信息,以便改善至少一个电子设备的未来操作的效率。在另一种改进中,栅格(grid)、网格(mesh)或云计算布置可用于按照资源可用性在对等体、客户端和服务器设备之间分布分析工作。

诸如例如基于访问控制列表(acl)的安全解决方案之类的控制参数存在acl随着应用复杂性而趋于增长的缺陷。具有多个软件组件的应用一般具有多个控制参数列表,使数目进一步膨胀,因此降低个体节点对于控制参数应用的可管理性。

许多控制参数导致在运行时(runtime)的硬件配置(例如,存储器保护单元(mpu)配置、中断所有权和优先级、或者类似的硬件配置)的应用。以类似方式,软件控制参数(诸如局部常量设置之类)确定在软件执行流的上下文中应用的软件配置。在需要时应用不同的参数集。当改变执行上下文时,源参数集和目的地参数集需要被切换,并且这在资源受限的设备中,有时在资源消耗方面可能代价过高。

mpu的有限能力(诸如可用的存储器区域的有限数量)一般是这些上下文切换的性能的瓶颈。通常,参数列表将比区域的可用数目长,使得操作系统必须以某种方式决定应用哪些参数,一般按照存储的控制参数数据的通常非最优的次序基于先到先服务原则。如果未使用的控制参数被下载和存储,那么这不利于存储器资源的最佳使用。另外,随后必须以基于例外的方式管理未应用的参数,这常常对电子设备的性能是不利的。

本技术典型地在设备操作系统层级,或者在某更高层级的服务器或分布式系统中提供一种机制,所述机制分析并计算针对控制参数的应用的模式。在替代中,按照本技术的工具可以与特定的设备驱动器,或者与一个或多个应用相关联。在运行时期间,对于特定控制参数的应用的需要可被记录,以确定最可能需要的控制参数或者须首先或强制应用的那些控制参数,以及生成特定于软件模块或硬件设备的使用的应用模式。全部的模式可存储在存储设备中。在另一种实现中,可以存储简化的表示,诸如数学变换之类,例如模式的散列(可能是加密散列)。一种替代是由利用取模-算术计数(modulo-arithmeticalcount)技术计算的模式概率构成的数学变换的存储,以把可能的非常大量的控制参数应用模式缩简成被减少的数量的概率桶(bucket)。

在一种实现中,这些模式可由主体设备本身利用启发式方法测量。在其他实现中,可以利用服务器侧或分布式分析工具记录控制参数访问,并向设备报告度量、或者其分析的结果。

设备可为每个软件和硬件组件计算控制参数应用模式,至少包括(i)控制参数应用的次序,和(ii)对应的硬件或软件执行环境(上下文)。在其他实现中,模式可包括描述应用给定的控制参数的最有利条件的元数据。

在一种实现中,控制参数可被分配描述应用的时间的时间戳。具有相似时间戳的控制参数可被组合在一起,并被分配单一散列。数个控制参数组将生成可被表示成其中路径(边)被加权的图的数个散列。每个权重表示具有相关联的控制参数组的两个上下文之间的转变的可能性。控制参数应用方案随后可基于这些模式,只有在需要时应用控制参数组中的个别参数。

在另一种实现中,还可按照控制的参数出现频次和优先级对控制参数进行分类。例如,涉及很少使用的资源(诸如偶尔涉及的寄存器之类)的控制参数可被标记为“被动”,意味操作系统将从不主动应用它们。如果实际上需要被动控制参数,那么可以利用例外来处理被动控制参数,不过按照由存储的模式确定的概率,在正常情况下至少不浪费处理时间或mpu区域。在另一种实现中,一些控制参数可被标记为“安全关键”,意味它们总是被应用而与它们的使用频次无关,例如,在需要严格定时要求的上下文中。

在另一种实现中,可在单一函数的粒度层级处跟踪和存储控制参数使用模式。每个函数可在运行时被注解触发或未触发访问故障的控制参数集。连续函数的执行会产生执行流,在执行流中,各个函数表示图的节点,节点之间的各个路径表示操作上下文切换。

在其中函数调用表示上下文切换的主要原因的一种实现中,对于图中的各个节点,可以生成函数调用栈条目专有散列,并存储在散列表中。因此,执行流使控制参数使用模式与调用栈中的条目中的每一个相关联。存储的散列表示执行流(函数调用的次序)以及相关联的控制参数集,所述控制参数集为在表示执行流的图中的每个节点所需。在一种实现中,调用栈专有节点散列可以与bloom过滤器相关联,对于给定散列,bloom过滤器能够判定控制参数模式是否属于节点。该技术在进行运行时检查以判定是否之前已观察到模式方面是有效的。如果之前已观察到所述模式,那么散列表提供要应用的最佳控制参数的列表。如果之前未观察到所述模式,那么可以使用退步(fall-back)方法,诸如简单循环(round-robin)、最近最少使用技术或者先到先服务方法来应用控制参数。

在bloom过滤器的实现中,散列表可以包含(i)整个模式的散列,或者(ii)所有子模式的散列。这样,可以利用不同的粒度层级(单一函数、函数组、整个执行流)。例如,以下述有向图为例:

假定执行时间从左到右,所有可能的子模式为a、a-b、a-b-c、a-b-c-d、e、e-f、e-f-c、e-f-c-d。在一种实现中,所述技术可在节点a、e、c、d处对模式采集指纹,生成模式a-b-c、a-b-c-d、e-f-c、e-f-c-d。以这种方式,在每个节点处的控制参数的变异使用模式可以与每个上下文切换的目标节点的标识符关联地被存储,以便在从相同源到相同目标的上下文切换的后续实例中进行检索。

在这种实现中,在存在进程间或程序间通信的情况下,对于每个节点存储的控制参数注解可被进一步扩展,以包括其他性能关键元数据,诸如可以加速消息递送和上下文切换的元数据之类;例如,关于源于中断请求或外设操作的调用顺序的信息。

在另一种实现中,可以使用被称为加权bloom过滤器的特殊版本的bloom过滤器。导致相同散列的相同控制参数模式可被重复地插入散列表中。每次散列被插入时,计数器(权重)被增大。以这种方式,bloom过滤器可返回概率结果,所述概率结果按照模式要出现的可能性及其在执行流图中的任意节点处出现的频次被加权。

在所述技术的一种改进中,当资源在较早的节点处可用时,可以抢先为图中的后面的节点作准备。例如,在执行流a->b->c->d->e中,节点e产生故障,需要uart0(通用异步接收器/发射器0),借助本公开的基于模式的技术,可以在流的后续实例上,向可能引导到e的所有节点,但按较低优先级“暗示”uart0的需要。因此,节点a会被指示按10%的优先级应用配置uart0的控制参数,节点b按15%的优先级,等等。在节点e,所述优先级为100%。在这种实现中,如果在较早的节点(比如说节点c)处存在诸如存储器区域之类的空闲资源,那么可在所述较早的节点处配置uart0,而不等待节点e进行触发。

这可通过将目标节点标识符/模式数据的栈保持在给定调用栈的存储器中(这具有开销低和通常封顶的最大深度的优点),并随后(通过利用上述加权bloom过滤器,或者通过应用为注解目标id设定概率权重的任意其他方法)按递减的优先级,针对栈中的各个节点注解所有控制参数来实现。

在另一种改进中,对存储的模式中的每一个的附加注解可被用于区分在一个线程中的控制参数使用模式和在不同线程中的控制参数的类似但不同的使用模式。例如,线程1使用将uart0指定为在特定节点处的目的地的printf函数,并因此存储的模式通常会向流的另外的实例指示应按高优先级配置uart0。然而,在图形化执行流的线程2的实例中,线程2使用将uart1指定为在匹配节点处的目的地的printf函数,并且因此配置uart0会是浪费的。通过用线程标识符注解模式可以避免这种情况,从而提供所述技术的该实现的额外的精度。

在调用栈实现中,还可通过利用调用的返回地址以及目标函数地址对控制参数模式进行注解或做种(seed)来改进本技术。这样,向前通过流的使模式变异的对相同函数的多个单独调用将是可以单独识别的,并且可以与对在循环中执行的相同函数的迭代调用区分开。

此外,一旦实现了描述的技术,就能够接受对于所述方法的用于注解模式的用户输入。用户命令可被用于重写所述方法以基于用户观察修改模式,其中“用户”可以是人类用户,诸如最终用户、系统程序员、或管理员之类,不过同样地可以是用户程序、过程或设备。例如,在服务器设备处的智能监视程序可能能够将来自多个设备和程序的信息关联起来,以改善在一个或多个设备处的控制参数使用效率,而单个设备可能具有过于有限的处理器或存储器资源,以致于不能进行模式的必要复杂分析。

在入站远程过程调用或者程序间或进程间调用的情况下,调用的起源和远程调用栈可被用于进一步提高控制参数预测的精度。bloom过滤器可以是特定于控制参数的,意味在每个节点处,将关于每个控制参数出现的可用信息与所述控制参数相比较。也可利用阈值实现这种方法,使得在控制参数被应用于电子系统之前,需要最小频次。更一般地,模式可被分类到概率桶中。

一旦模式已被计算,模式就可被存储在闪存中或者存储在类似的存储装置中,并按照和任何其他私有存储器资源相同的方式受到保护。在一种实现中,一旦计算了较新的度量,就可使用键值存储装置布置以访问和更新后续的控制参数使用模式。

在重启或另外的操作上下文切换后,操作系统可取出存储的控制参数模式,并使用所述取出的控制参数模式代替通常由设备或程序本身直接(flatform)提供的默认控制参数模式,或者代替存储在键值存储装置的较旧条目中的先前模式。

在另一种实现中,即使模式未被主动存储在任何非易失性存储装置中,它们仍可被存储在易失性存储装置中并在运行时使用。由于粒度的层级可以相当高(例如,在函数层级),因此即使在相同的电力循环中,仍可在处理中使用如上所述的注解来检测和应用复发的模式。

在另一种实现中,一组“物联网(iot)”设备可操作相同的模式分析和存储方法,不过是以伪随机的方式通过临时暂停将一些控制参数应用于设备或程序而实现的,使得可针对其效率分析不同的模式,并随后以分布的方式跨网络共享所述不同的模式。全组的设备因此可获得要在执行流中的各个点处应用的最有效且高效的模式的共享知识。集中式服务可收集这些模式,并根据个体分析把这些模式调和成单一集合。在非决定性的测量的情况下,该服务还可被设计为从通过执行流的图的某些路径请求改进的测量。

关于任何给定模式的出现的统计量还可用于权衡性能和电力消耗。可基于针对强制执行模式的控制参数的资源成本而被平衡的模式的出现概率,应用或者忽略该模式。

识别出的模式的使用可增强上下文切换的性能以及通常控制参数的应用的性能。另外,不经常需要操作系统从例外恢复,所述例外由不正确或次优地禁用的控制参数引起,所述控制参数本应可以从执行流图中的较早节点有效地保留。

在一种实现中,应用至少一个控制参数的步骤可包括只应用多个控制参数中的选择的控制参数以匹配模式,并且隐含地,不应用所述多个控制参数中的取消选择的控制参数来匹配模式。

应用至少一个控制参数的步骤可包括按照使用的时间顺序,应用多个控制参数中的至少所选择的控制参数以匹配模式。在另一种实现中,应用至少一个控制参数的步骤可包括按照从模式得出的优先级次序,应用多个控制参数中的至少所选择的控制参数。

检测控制参数使用模式的步骤可包括检测访问控制列表参数、存储器管理参数、高速缓存管理参数、进程间通信参数、远程过程调用参数和本地函数调用参数中的至少一个的使用模式。

存储表示的步骤可包括存储整个模式和模式的数学变换(诸如散列(加密或不加密)之类)中的至少一个。检测在通过操作上下文切换的图的路径中的多个控制参数的使用模式的步骤可包括检测在通过下述至少之一的图的路径中的模式:系统重启、函数调用、过程调用、和软件或硬件中断。

在本技术的改进中,可以利用区分在第一线程或进程中检测的模式和在另外的线程或进程中检测的模式的进程或线程标识符,来对模式的表示进行做种(seed)或注解。

这里公开的技术还可包括在服务器设备或分布式处理系统处累积多个模式,并针对在至少一个节点处的出现概率分析所述模式。随后可分发所述分析的结果以供一些电子设备使用。服务器或分布式系统还可询问一个或多个电子设备,以获取用于模式中的一个或多个模式的附加数据,以便利用从设备获得的大量结果来改善其个体操作效率。

在一种实现中,模式可用于帮助检测与存储的模式相比异常的控制参数使用模式,并发出警告信号,以指示可能存在错误或者恶意软件可能正在干扰电子设备中的一个或多个电子设备的正常操作。所述技术还可接受外部输入(诸如来自人类或外部自动化系统的输入之类),以针对模式添加或修改特定于上下文的数据。另外,所述方法可适于将区分迭代调用和非迭代调用的地址数据添加到所述模式。这样,由程序的执行流中的循环生成的模式数据不会不必要地消耗诸如存储器空间之类的资源。

在另一种改进中,一旦通过操作上下文切换的图的路径已被分析,所述路径就可被用于预测哪些控制参数设置(诸如存储器分配之类)可由或者应由在通过所述图的流中的较早节点应用和保留,以便稍后在最可能的下一路径中获取改进的性能。另外,如果一些设备或程序具有良好建立的控制参数使用模式,那么可从具有设备操作系统、其他固件、或者特定应用程序或程序组的中央源预先安装或下载优化。

本领域的技术人员会意识到,本技术可被体现成系统、方法或计算机程序产品。因而,本技术可以采取纯硬件实施例、纯软件实施例或者结合软件和硬件的实施例的形式。

此外,本技术可以采取在计算机可读介质中实施的计算机程序产品的形式,所述计算机可读介质具有实施于其上的计算机可读程序代码。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读介质可以是例如(但不限于)电子、磁、光、电磁、红外或半导体系统、设备或器件,或者它们的任意适当组合。

用于执行本技术的操作的计算机程序代码可以用一种或多种编程语言的任意组合来编写,包括面向对象的编程语言和常规的过程编程语言。

例如,用于执行本技术的操作的程序代码可包括采用诸如c之类的常规编程语言(解释语言或编译语言)、或者汇编代码、用于设置或控制asic(专用集成电路)或fpga(现场可编程门阵列)的代码、或者诸如verilogtm或vhdl(超高速集成电路硬件描述语言)之类的硬件描述语言的代码的源代码、目标代码或可执行代码。

程序代码可以完全在用户的计算机上执行、部分在用户的计算机上并且部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一场景中,远程计算机可以通过任意类型的网络连接到用户的计算机。代码组件可被实施成过程、方法等,并可包含子组件,所述子组件可以采取任意抽象层级(从原生型指令集的直接机器指令到高级编译或解释语言构造)的指令或指令序列的形式。

对本领域的技术人员将清楚的是,按照本技术的实施例的逻辑方法的全部或部分还可适当地在包括执行所述方法的步骤的逻辑元件的逻辑装置中实施,并且这种逻辑元件可包括诸如例如可编程逻辑阵列或专用集成电路中的逻辑门之类的组件。此外,这种逻辑安排还可进一步在可利用固定或可传送的载体介质存储和传送的使能元件中实施,所述使能元件用于利用例如虚拟硬件描述符语言来在这种阵列或电路中临时或永久建立逻辑结构。

在一种替换中,可以按计算机实现的部署服务的方法的形式来实现本技术的实施例,所述方法包括部署计算机程序代码的步骤,当被部署到计算机基础设施或网络中并在所述计算机基础设施或网络上执行时,所述计算机程序代码可操作使得所述计算机系统或网络执行所述方法的所有步骤。

在进一步的替换中,可以按其上具有功能数据的数据载体的形式实现本技术的实施例,所述功能数据包括当被加载到计算机系统或网络中时并因此在计算机系统或网络上操作时,使所述计算机系统能够执行所述方法的所有步骤的功能计算机数据结构。

对本领域的技术人员将清楚的是,可对上述示例性实施例做出许多改进和修改,而不脱离本技术的范围。

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