CN104321744B - 用于潜在动作预测的装置、方法和机器可读介质 - Google Patents
用于潜在动作预测的装置、方法和机器可读介质 Download PDFInfo
- Publication number
- CN104321744B CN104321744B CN201380027973.8A CN201380027973A CN104321744B CN 104321744 B CN104321744 B CN 104321744B CN 201380027973 A CN201380027973 A CN 201380027973A CN 104321744 B CN104321744 B CN 104321744B
- Authority
- CN
- China
- Prior art keywords
- application
- contextual information
- label
- utilization
- resources
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3452—Performance evaluation by statistical analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3058—Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Mathematics (AREA)
- Artificial Intelligence (AREA)
- Pure & Applied Mathematics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Computer Hardware Design (AREA)
- Algebra (AREA)
- Debugging And Monitoring (AREA)
- User Interface Of Digital Computer (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
描述了用于基于应用提供的上下文来促进所预测动作的执行的技术和系统的实施例。在实施例中,应用可以包括被配置为向预测引擎提供例如一个或多个标签形式的上下文信息的上下文组件。在实施例中,预测引擎可以使用所接收的标签为一个或多个所观察的动作和/或资源利用添加标签,从而使得当根据所观察的动作做预测时具有对应用状态的增加的知识。在实施例中,为了提早执行,还可以将标签应用于被用于确定潜在动作的当前动作。可以描述和要求保护其它实施例。
Description
相关申请的交叉引用
本申请要求于2012年6月29日提交的美国专利申请No. 13/539,157的优先权,特此通过引用的方式将上述美国专利申请的全部内容在其整体上并入本文以用于所有目的。
背景技术
许多用户在使用计算设备时体验过慢于预期的性能。具体而言,常常认为许多新的计算机和设备仅比其前辈稍快,这是因为系统对于用户输入的响应时间可能仍与较旧的系统类似。类似地,可能认为常见应用要花费大约相同的时间量来启动或完成。
例如,在用户接口中的按钮上进行点击或者启动新的命令常常趋向于导致系统之间的很大的恒定响应时间。这种性能可能表现为几乎独立于底层系统的实际性能和能力。虽然固态驱动器和智能缓存机制的使用在某些情况下可能有所帮助,但它们尚未解决该问题。
附图说明
通过下面的具体实施方式结合附图将容易地理解各个实施例。为了便于描述,相同的参考标号指示相同的结构元件。在附图的图示中,通过举例的方式而非通过限定的方式示出了各个实施例。
图1是根据各个实施例的、示出了示例预测动作执行系统的框图。
图2是根据各个实施例的、示出了示例概率引擎的框图。
图3根据各个实施例示出了示例动作预测和执行过程。
图4根据各个实施例示出了示例概率生成过程。
图5根据各个实施例示出了示例流结构生成过程。
图6根据各个实施例示出了示例观察结果收集过程。
图7根据各个实施例示出了示例流结构。
图8根据各个实施例示出了用于根据流结构生成概率的示例过程。
图9根据各个实施例示出了示例期望值结构。
图10根据各个实施例示出了示例预测动作执行过程。
图11根据各个实施例示出了适于实施本公开内容的示例计算环境。
具体实施方式
在下面的具体实施方式中,参考了附图,附图形成了具体实施方式的一部分,在附图中,相同的标号通篇指示相同的部分,并且在其中通过可以实施的说明实施例的方式示出。应当理解的是:可以在不脱离本公开内容的范围的情况下使用其它实施例并进行结构或逻辑上的变化。因此,下面的具体实施方式不应被视为具有限制意义,并且实施例的范围由所附的权利要求书及其等价物限定。
可以将各种操作以最有助于理解所要求保护的主题内容的方式描述为依次多个分立动作或操作。然而,描述的顺序不应被解释为暗示这些操作一定是依赖于顺序的。具体而言,这些操作可不以呈现的顺序来执行。所描述的操作可以与所描述的实施例不同的顺序来执行。在另外的实施例中,可以执行各种额外的操作和/或可以省略所描述的操作。
对于本公开内容的目的而言,短语“A和/或B”意指(A)、(B)或者(A和B)。对于本公开内容的目的而言,短语“A、B和/或C”意指(A)、(B)、(C)、(A和B)、(A和C)、(B和C)、或者(A、B和C)。
本说明书可以使用短语“在实施例中”或者“在多个实施例中”,其可以各自指代相同或不同实施例中的一个或多个实施例。此外,如同针对本公开内容的实施例所使用的,术语“包括”、“包含”、“具有”等等是同义的。
如本文中所使用的,术语“模块”可以指代作为以下的一部分或者包括以下:专用集成电路(“ASIC”)、电子电路、执行一个或多个软件或固件程序的处理器(共享的、专用的或组)和/或存储器(共享的、专用的或组)、组合逻辑电路、和/或提供所描述的功能的其它合适的组件。
现在参照图1,示出了图示示例预测动作执行系统的实施例的框图。在各个实施例中,预测动作执行系统可以包括预测动作引擎100(“PAE 100”)和概率引擎110(“PE 110”)。在各个实施例中,PAE 100可以被配置为:接收关于计算设备的历史和/或当前操作的信息。PAE 100可以被配置为:部分基于该信息,选择一个或多个动作以便支持经预测为可能在计算设备上发生的潜在动作和/或资源利用。在各个实施例中,动作可以包括诸如过程的启动、打开窗口或对话框、传入的网络事件、或者用户交互之类的事情。例如,PAE 100可以被配置为:进行选择以便针对预测即将执行的应用来预加载代码,或者可以将数据读入高速缓存。
如在图1的示例中所示,在各个实施例中,PAE 100可以被配置为:选择动作以便支持执行过程(例如过程150)的潜在动作和/或资源利用。在各个实施例中,过程150可以包括子过程160。在各个实施例中,PAE 100可以被配置为:预测第二子过程170可能在近期执行。因此,在各个实施例中,PAE 100可以被配置为:促进针对子过程170的代码的预取(和/或促进针对子过程170的代码的提早执行)。在其它实施例中,PAE可以被配置为:导致处于当前执行过程之外的可执行代码的预取和/或提早执行。例如,如果接收到具有特定文档类型的附件的电子邮件,那么PAE 100可以进行选择以便针对被配置为读取该文档类型的应用或过程来预取代码。
类似地,在一些实施例中,PAE 100可以被配置为:预测外部资源175(例如,网卡)近期可能被使用(例如,用于执行域名系统搜索)。因此,在各个实施例中,PAE 100可以被配置为:促进对外部资源175进行提早请求。认识到前述示例仅指示了潜在动作和PAE 100的能力,在其它实施例中,可以涉及不同的过程或外部资源。
在图1的示例中,可以在虚线的左侧示出预测动作执行系统的各个方面,而在虚线的右侧可以示出预测动作执行系统在预测动作时所针对的计算设备的各个方面。因此,在一些实施例中,预测动作执行系统可以被配置为:在与该预测动作执行系统分离的设备或装置上进行操作。然而,在各个实施例中,可以在对动作进行预测所针对的相同的计算设备上对预测动作执行系统的一个或多个方面进行操作。
在各个实施例中,PAE 100可以被配置为:接收要在计算设备上执行的潜在动作的一个或多个概率。在各个实施例中,PAE 100可以从PE 110接收这些概率。下面讨论了PE110的具体实施例。
在各个实施例中,PAE 100还可以被配置为:接收(或者以其它方式获得)针对计算设备的当前系统上下文120。在各个实施例中,系统上下文可以包括:计算设备的状态(例如,功率、性能、存储器、存储、负载、电池状态和/或热数据)、逻辑环境(例如,网络连接性、通过网络接收的数据)、和/或计算设备的物理位置(例如,计算设备是移动的、在家中、在办公室中、在飞机上、在国外等等)。在各个实施例中,上下文可以包括其它信息(计算设备外部和内部的)、数据、和/或可以根据该信息和数据得出的结论。
在各个实施例中,当前系统上下文可以是由PAE 100被动接收的,例如通过应用或系统过程向PAE 100报告系统上下文信息。在其它实施例中,PAE 100可以被配置为:主动请求和/或以其它方式从计算设备获得当前系统上下文120。在各个实施例中,PAE 100可以被配置为:基于可用系统资源(例如在当前系统上下文中标识的那些)来选择用于执行的动作。
现在参照图2,根据各个实施例示出了图示示例PE 110的框图。在各个实施例中,PE 110可以包括观察引擎250(“OE 250”)和分析引擎260(“AE 260”)。在各个实施例中,OE250可以被配置为:接收计算设备的动作和资源利用210。如本文中所描述的,OE 250可以基于由OE 250接收的历史数据来生成描述稳定状态和计算设备的转变的流结构250。该流结构可由AE 260使用,连同由计算设备执行的当前动作205的指示,来确定可能在所接收的当前动作205之后的潜在动作的一个或多个概率。如本文中所描述的,这些概率可由PAE 100用来选择用于执行的动作。
在各个实施例中,动作/资源利用210可由OE 250被动接收,例如,通过向OE 250报告已执行的动作和/或资源利用的指示的应用或系统过程。在其它实施例中,OE 250可以被配置为:主动请求和/或以其它方式从计算设备获得动作和/或资源利用210。
在各个实施例中,OE 250还可以被配置为:从在计算设备上执行的一个或多个应用220接收应用上下文信息。在各个实施例中,应用220可以包括:可以与OE 250通信以便提供上下文信息的上下文组件230。可以这样配置应用220,以便与否则在没有来自在计算设备上执行的应用的直接协助的情况下PE 110可用的信息相比,向OE 250并因此向PE 110提供更多信息。例如,编码环境应用220可以提供(例如,通过其上下文组件230)描述正在写入应用的代码的类型的标签。在另一个示例中,电子邮件应用220可以提供电子邮件已被接收的标签、电子邮件发送者的标签、以及描述附有.ppt文件的标签。该信息可由PE 110用于确定:每次从某个人处接收到具有.ppt文件的电子邮件,就有可能要执行PowerPoint。PAE100因此可以促进用于PowerPoint™应用的代码的加载。
在各个实施例中,上下文组件230可以向应用提供诸如但不限于下列各项的信息:应用状态、描述由应用220所访问的一个或多个文件的信息、由应用220接收的消息、信息的一个或多个接收者或发送者的身份等。在各个实施例中,上下文组件230可以以一个或多个标签的形式向OE 250提供应用上下文信息。如下所述,可以将这些标签附加到由OE 250接收的动作和/或资源利用210以便针对这些所接收的动作和/或资源利用210提供额外的上下文;这继而可以允许OE生成更加精确和/或详细的流结构250。类似地,在各个实施例中,OE 250可以向AE 260提供一个或多个上下文标签225,这些上下文标签可以用于向一个或多个当前动作205提供上下文。在各个实施例中,上下文标签255的这种提供可以促进AE260产生更加精确的概率270。在本文中描述了应用上下文信息和标签的具体使用。
图3根据各个实施例示出了示例动作预测和执行过程300。该过程可以开始于操作320,在操作320处,在各个实施例中,PE 110可以生成一个或多个由PAE 100使用的概率。下面讨论了操作320的具体实施例。接下来,在操作340处,PAE 100可以基于由PE 110在操作320处生成的概率来执行一个或多个预测动作。在实施例中,操作340处的预测动作的执行还可以部分基于当前系统上下文120。下面讨论了操作340的具体实施例。在各个实施例中,然后可以在操作320处针对额外的概率和预测动作来重复该过程。在一些实施例中,该过程替代地结束。
图4根据各个实施例示出了示例概率生成过程400。在各个实施例中,过程400可由PE 110执行以便实现过程300的操作320的一个或多个实施例。该过程可以开始于操作410,在操作410处,OE 250可以生成流结构250。下面讨论了操作410的具体实施例。接下来,在操作420处,AE 260可以基于所生成的流结构250和当前动作205来生成概率。下面讨论了操作420的具体实施例。
接下来,在操作430处,可以从AE 260输出该概率。在各个实施例中,可以对输出概率进行排序以便于PAE 100使用。因此,在一些实施例中,这些概率可以是根据可能性排序的。在其它实施例中,由AE 260输出的概率可以是根据时间上与当前动作205的假设距离排序的。然后该过程可以结束。
图5根据各个实施例示出了示例流结构生成过程500。在各个实施例中,过程500可由OE 250执行以便实现过程400的操作410的一个或多个实施例。该过程可以开始于操作520,在操作520处,OE 250可以从计算设备收集关于动作和/或资源利用的信息。在各个实施例中,还可以从一个或多个应用获得这些观察结果。下面参考图6的过程600描述了操作520的具体实施例。
现在参照图6,该图根据各个实施例示出了示例观察结果收集过程600。在各个实施例中,过程600可由OE 250执行以便实现过程500的操作510的一个或多个实施例。该过程可以开始于操作610,在操作610处,OE 250可以从应用220接收应用上下文信息。在各个实施例中,应用上下文信息可以是从应用220的上下文组件230接收的。在一些实施例中,应用上下文信息可以是以标签的形式接收的。对过程600的操作的以下描述因此可以具体参考标签,然而,可以认识到的是:在其它实施例中,所接收的应用上下文信息可以采取其它形式。
在操作620处,OE 250可以将最近接收的标签推送到栈数据结构上。在各个实施例中,使用栈以便允许上下文的方便删除,以及当各个栈应用于接收动作和资源利用时允许各个栈的嵌套;在其它实施例中,其它数据结构可以用于存储栈。
接下来,在操作630处,OE 250可以获得一个或多个动作和/或资源利用。如同上面所讨论的,在各个实施例中,这些动作和/或资源利用可以是被动接收的,而在其它实施例中,OE 250可以主动搜寻出动作和/或资源利用信息。接下来,在操作640处,OE 250可以使用最近接收的标签来为所接收的动作/资源利用添加标签。在各个实施例中,这种添加标签可以促进OE 250提供应用上下文信息来伴随所接收的动作和/或资源利用,从而提供改进的概率生成。在各个实施例中,OE 250可以重复操作630和640以便对额外的动作和/或资源利用进行接收(并添加标签)。
然而,OE 250还可以接收以下指示:与应用上下文信息相关联的应用上下文已经改变,例如在操作650处。因此,例如,应用220可以接收用户可以选择菜单的用户交互。应用220可以例如使用其上下文组件230,然后向OE 250发送指示该菜单选择的标签。随后,如果用户结束了菜单的选择,那么应用220的上下文组件230可以向OE 250指示相关上下文已经结束。然后,在操作660处,OE 250可以将标签从栈结构移除。这可以有效地终止使用所接收的标签对未来接收的动作添加标签。然后该过程可以结束。
返回图5的过程500,在收集关于动作和/或资源利用的信息之后,过程500可以继续进行操作530,在操作530中,OE 250可以标识计算设备的一个或多个稳定状态。在各个实施例中,如下所示,这些稳定状态可以表示计算设备在特定时刻处于一致状态的状态。在各个实施例中,稳定状态可以包括计算设备的上下文的一致状态。在一些实施例中,稳定状态可以包括计算设备的一个或多个内部变量的一致状态,诸如,例如,当前工作目录、网络设备的当前IP地址、一个或多个应用的当前运行状态等等。例如,在一个实施例中,可在高级别上将示例稳定状态描述为“电子邮件程序在前台运行,显示编辑器窗口,等待用户输入”。
接下来,在操作540处,OE 250可以标识可由计算设备执行的一个或多个转变的动作和/或资源利用。例如,在操作540处,OE 250可以标识:目录改变命令导致计算设备在目录稳定状态之间变化。在另一个示例中,在操作540处,OE 250可以标识:用于执行应用的命令可以导致计算设备变化到应用正在其中执行的稳定状态。在另一个示例中,转变的动作可以包括对来自用户的命令(例如电子邮件应用中的“发送”命令)的接收。
接下来,在操作550处,OE 250可以基于其接收的关于动作和资源利用的信息来生成这些稳定状态中的每个稳定状态的频率。可以在下面的图7处看到这些频率的具体示例。在操作560处,这些频率可以提供给AE 260用于确定要由PAE 100使用的概率。然后该过程可以结束。
图7根据各个实施例示出了具有稳定状态和频率的示例流结构。在图示的示例中,稳定的状态被示为图节点,而图转变示出在给定时段ob观察期间OE 260观察到两个稳定状态之间的特定转变的频繁程度的频率。如同图示的,流结构700示出,在各个实施例中,稳定状态可以包括对用于执行应用的命令(例如,“/usr/bin/bash”、“/usr/bin/make/”、“/bin/rm”)的接收,或者可以包括基于该命令的过程(例如,“/usr/bin/bash::bash”、“/usr/bin/make::make”)的执行。可以指出的是:虽然图7的示例流结构并不示出具有用应用上下文信息标记的稳定状态,但在各个实施例中,流结构可以额外包括应用上下文信息。因此,在各个实施例中,针对给定的目录或过程可以存在一个以上的稳定状态,但具有不同的标签。
图8根据各个实施例示出了用于根据流结构生成概率的示例过程800。在各个实施例中,过程800可由AE 260执行以便实现过程400的操作420。该过程可以开始于操作810,在操作810处,AE 260可以接收由OE 250生成的流结构。接下来,在操作820处,AE 260可以接收当前动作205的指示。在操作830处,AE 260可以从OE 250接收应用上下文标签255;这些标签可以用于更好地标识流结构中的相关稳定状态和转变。
接下来,在操作840处,AE 260可以计算所接收的动作随后的期望值。在各个实施例中,期望值可以是基于每个稳定状态与下一个稳定状态之间的直接频率计算的,并且可以不包括与正在计算期望值所针对的转变不相关的频率。在各个实施例中,AE 260可以利用所接收的流结构的子结构,其仅包括可以在当前动作205的执行之后达到的稳定状态。在各个实施例中,然后,AE 260可以针对在当前动作205之后可能达到每个后续稳定状态的频率来计算期望值。
现在参照图9,图9根据各个实施例示出了示例期望值结构900。如同在图9的示例中所示,在各个实施例中,AE 260可以计算以转变可能执行的次数的形式的100中的期望值。例如,如果基于当前动作,给定的应用预期要运行50%的时间,那么向该应用转变的期望值可以是50(100中的)。在另一个示例中,如果预期应用要平均运行两次,那么期望值可以是200(100中的)。在一些实施例中,期望值可具有作为上限的最大值。
返回图8,在操作850和860处,AE 260可以根据计算出的期望值来计算稳定状态(850)和资源利用(860)的有效概率。在各个实施例中,AE 260可以通过对概率形式的期望值直接进行相乘来计算有效概率。在其它实施例中,AE 260可以利用计算概率的其它方法,诸如使用基于人工智能的技术或者通过包括其它信息。最后,在操作870处,AE 260可以对计算出的概率进行排序,例如,通过可能性或者与当前动作205的距离(例如,流结构中的距离)。然后该过程可以结束。
图10根据各个实施例示出了示例预测动作执行过程1000。在各个实施例中,PAE100可以执行过程1000以便实现图3的过程300的操作340。该过程可以开始于操作1010,在该操作处,PAE 100可以从计算设备获得系统上下文。如同上面所讨论的,在各个实施例中,系统上下文可以包括(在各个实施例中):资源可用性(诸如存储器或存储能力)、当前工作负载、执行位置和/或环境信息,例如计算设备的温度。接下来,在操作1020处,PAE 100可以(例如,从PE 110)获得针对动作和/或资源的一个或多个概率。如同上面所讨论的,在各个实施例中,可以对这些概率进行排序以供PAE 100使用。
接下来,在操作1030处,PAE 100可以选择支持潜在动作和/或资源分配的动作和/或资源利用,并且这些动作和/或资源利用可以在计算设备的给定当前系统上下文的情况下执行。因此,在各个实施例中,在给定由系统上下文指示的能力的情况下,PAE 100可以针对接收概率所针对的潜在动作和/或资源利用来确定哪些支持可能执行的动作和/或资源利用。在各个实施例中,PAE 100在操作1030处可以确定在不导致用户可感知的计算设备减速的情况下这些支持动作和/或资源利用中的哪些可被执行。
最后,在操作1040处,PAE 100可以促进所选择的动作和/或资源利用的执行。在各个实施例中,PAE 100可以自身指引动作和/或资源利用的执行。在其它实施例中,PAE 100可以从其它实体请求动作和/或资源利用的执行。然后该过程可以结束。
图11针对一个实施例示出了适于实施本公开内容的实施例的示例计算机系统1100。如所示的,示例计算机系统1100可以包括:耦接到处理器1104中的至少一个处理器的控制逻辑1108、耦接到系统控制逻辑1108的系统存储器1112、耦接到系统控制逻辑1108的非易失性存储器(NVM)/存储1116、以及耦接到系统控制逻辑1108的一个或多个通信接口1120。在各个实施例中,一个或多个处理器1104可以是处理器核心。
一个实施例的系统控制逻辑1108可以包括:任意合适的接口控制器,用于提供到处理器1104中的至少一个处理器和/或到与系统控制逻辑1108相通信的任意合适设备或组件的任意合适接口。
一个实施例的系统控制逻辑1108可以包括用于提供到系统存储器1112的接口的一个或多个存储器控制器。系统存储器1112可以用于(例如,为系统1100)加载和存储数据和/或指令。在一个实施例中,系统存储器1112可以包括任意合适的易失性存储器,诸如,例如,合适的动态随机存取存储器(“DRAM”)。
在一个实施例中,系统控制逻辑1108可以包括用于提供到NVM/存储1116的接口以及通信接口1120的一个或多个输入/输出(“I/O”)控制器。
例如,NVM/存储1116可以用于存储数据和/或指令。NVM/存储1116可以包括任意合适的非易失性存储器(诸如,例如闪存),和/或可以包括任意合适的非易失性存储设备,诸如,例如,一个或多个硬盘驱动器(“HDD”)、一个或多个固态驱动器、一个或多个光盘(“CD”)驱动器、和/或一个或多个数字多功能盘(“DVD”)驱动器。
NVM/存储1116可以包括物理上是其上安装了系统1100的设备的一部分的存储资源,或者NVM/存储1116可由该设备访问,但并不一定是该设备的一部分。例如,可以经由通信接口1120通过网络访问NVM/存储1116。
具体而言,系统存储器1112和NVM/存储1116可以包括预测动作执行逻辑1124的暂时和持久副本。预测动作执行逻辑1124可以包括:当由处理器1104中的至少一个处理器执行时造成系统1100实行上述预测动作执行操作中的一个或多个操作的指令。在一些实施例中,预测动作执行逻辑1124可以附加地/可替代地位于系统控制逻辑1108中。
通信接口1120可以为系统1100提供用于通过一个或多个网络进行通信的接口和/或与任意其它合适设备进行通信的接口。通信接口1120可以包括任意合适的硬件和/或固件,诸如网络适配器、一个或多个天线、无线接口等等。在各个实施例中,通信接口1120可以包括使系统1100使用NFC、光通信(例如,条形码)、蓝牙或其它类似技术以便与另一个设备直接进行通信(例如,没有中间媒介)的接口。
对于一个实施例来说,处理器1104中的至少一个处理器可以与系统控制逻辑1108和/或预测动作执行逻辑1124封装在一起。对于一个实施例来说,处理器1104中的至少一个处理器可以与系统控制逻辑1108和/或预测动作执行逻辑1124封装在一起来形成系统级封装(“SiP”)。对于一个实施例来说,处理器1104中的至少一个处理器可以与系统控制逻辑1108和/或预测动作执行逻辑1124集成在同一个管芯上。对于一个实施例来说,处理器1104中的至少一个处理器可以与系统控制逻辑1108和/或预测动作执行逻辑1124集成在同一个管芯上来形成片上系统(“SoC”)。
以下段落描述了各个实施例的示例。在各个实施例中,用于对装置的活动进行预测的装置可以包括一个或多个计算机处理器。装置可以包括由一个或多个计算机处理器操作的上下文组件。可操作上下文组件以便在应用的执行期间确定应用的上下文信息,以及向观察引擎提供要在确定应用的潜在动作或资源利用中分析的所确定的上下文信息。在各个实施例中,装置还可以包括应用,其中,应用包括上下文组件。
在各个实施例中,上下文组件可以被配置为:针对描述应用状态的标签的应用确定来确定上下文信息。在各个实施例中,标签可以包括对由应用正访问的文件的指示。在各个实施例中,标签可以包括对由应用正使用的数据的数据类型的指示。在各个实施例中,标签可以包括对由应用经由网络所接收的信息的指示。
在各个实施例中,装置还可以包括:被配置为由一个或多个计算机处理器操作以便对计算设备的一个或多个动作或资源利用进行监视的观察引擎。在各个实施例中,观察引擎还可以被配置为由一个或多个计算机处理器操作以便接收所确定的上下文信息,使用应用的上下文信息来为一个或者所监视的一个或多个动作或资源利用来添加标签,以及向分析引擎提供所确定的上下文信息。
在各个实施例中,装置还可以包括分析引擎,所述分析引擎被配置为:由一个或多个计算机处理器操作,以便至少部分基于一个或多个所监视的动作或资源利用以及基于应用的上下文信息,针对所接收的动作来确定计算设备的一个或多个潜在动作或资源利用的一个或多个概率。
用于执行上述技术的计算机可读介质(包括非临时性计算机可读介质)、方法、系统和设备是本文中公开的实施例的说明性示例。另外,上述交互中的其它设备可以被配置为执行各种所公开的技术。
虽然为了描述的目的在本文中说明和描述了某些实施例,但是在不脱离本公开内容的范围的情况下,所设计的用来达到相同目的的各种各样替代方案和/或等效实施例或实现可以替代示出和描述的实施例。本申请旨在涵盖本文中所讨论的实施例的任何改变或变型。因此,其意图显然是:本文中所描述的实施例仅由权利要求来限定。
在本公开内容记载“一”或“第一”元素或者其等价物的情况下,这样的公开内容包括一个或多个这样的元素,既不要求也不排除两个或更多个这样的元素。另外,用于标识元件的序数指标(例如,第一、第二或第三)用于在元素之间进行区分,并不指示或暗示要求或受限数量的这样的元素,除非另有特别声明,否则它们也不指示这些元素的特定位置或顺序。
Claims (13)
1.一种用于对装置的活动进行预测的所述装置,所述装置包括:
用于确定当前在所述装置上执行的应用的上下文信息的单元,其中,确定应用的上下文信息包括确定描述所述应用的当前状态的标签,其中,所述标签包括对由所述应用正使用的数据的数据类型的指示;
用于向在所述装置上操作的观察引擎提供包括所述标签的所确定的上下文信息的单元,所确定的上下文信息要由所述观察引擎在确定所述装置的潜在动作或资源利用中进行分析。
2.根据权利要求1所述的装置,其中,所述标签还包括对由所述应用正访问的文件的指示和/或对由所述应用经由网络接收的信息的指示。
3.根据权利要求1或2所述的装置,还包括用于对计算设备的一个或多个动作或资源利用进行监视的单元。
4.根据权利要求3所述的装置,还包括:
用于接收所确定的上下文信息的单元;
用于使用所述应用的上下文信息为所监视的一个或多个动作或资源利用中的一个或多个添加标签的单元;以及
用于向分析引擎提供所确定的上下文信息的单元。
5.根据权利要求1-2中任意一项所述的装置,还包括用于至少部分基于一个或多个所监视的动作或资源利用以及基于应用的上下文信息,针对所接收的动作来确定所述装置的一个或多个潜在动作或资源利用的一个或多个概率的单元。
6.一种用于对装置的活动进行预测的所述装置,所述装置包括:
一个或多个计算机处理器;
由所述一个或多个计算机处理器操作的上下文组件,其用于:
通过描述包括所述上下文组件的应用的当前状态的标签的确定,来在所述应用的执行期间确定所述应用的上下文信息,其中,所述标签包括对由所述应用正使用的数据的数据类型的指示;
向观察引擎提供要在确定所述应用的潜在动作或资源利用中进行分析的包括所述标签的所确定的上下文信息。
7.根据权利要求6所述的装置,其中,所述标签还包括对由所述应用正访问的文件的指示和/或对由所述应用经由网络接收的信息的指示。
8.根据权利要求6所述的装置,还包括观察引擎,其被配置为由所述一个或多个计算机处理器操作以便对计算设备的一个或多个动作或资源利用进行监视。
9.根据权利要求8所述的装置,其中,所述观察引擎还被配置为由所述一个或多个计算机处理器操作用于:
接收所确定的上下文信息;以及
使用所述应用的上下文信息为所监视的一个或多个动作或资源利用中的一个或多个添加标签;以及
向分析引擎提供所确定的上下文信息。
10.根据权利要求6所述的装置,还包括分析引擎,所述分析引擎被配置为:由所述一个或多个计算机处理器操作,以便至少部分基于一个或多个所监视的动作或资源利用以及基于所述应用的上下文信息,针对所接收的动作来确定计算设备的一个或多个潜在动作或资源利用的一个或多个概率。
11.一种用于对计算设备的潜在动作进行预测的计算机实现的方法,所述方法包括:
通过所述计算设备来监视所述计算设备的一个或多个动作或资源利用;
通过当前在所述计算设备上执行的应用,来通过确定描述所述应用的当前状态的标签而确定所述应用的上下文信息;以及
通过所述计算设备向在所述计算设备上操作的观察引擎提供包括所述标签的所确定的上下文信息,所确定的上下文信息要由所述观察引擎在确定所述计算设备的潜在动作或资源利用中进行分析;
其中,所述标签包括以下中的一个或多个:对由所述应用正访问的文件的指示、对由所述应用正使用的数据的数据类型的指示,和/或对由所述应用经由网络接收的信息的指示。
12.根据权利要求11所述的方法,还包括:
接收所确定的上下文信息;
使用所述应用的上下文信息为所监视的一个或多个动作或资源利用中的一个或多个添加标签;以及
向分析引擎提供所确定的上下文信息。
13.一种机器可读介质,其上面存储指令,所述指令在被执行时导致所述机器执行如权利要求11-12中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/539157 | 2012-06-29 | ||
US13/539,157 US8990143B2 (en) | 2012-06-29 | 2012-06-29 | Application-provided context for potential action prediction |
PCT/US2013/042096 WO2014003921A1 (en) | 2012-06-29 | 2013-05-21 | Application-provided context for potential action prediction |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104321744A CN104321744A (zh) | 2015-01-28 |
CN104321744B true CN104321744B (zh) | 2019-03-08 |
Family
ID=49779213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380027973.8A Expired - Fee Related CN104321744B (zh) | 2012-06-29 | 2013-05-21 | 用于潜在动作预测的装置、方法和机器可读介质 |
Country Status (8)
Country | Link |
---|---|
US (1) | US8990143B2 (zh) |
EP (1) | EP2867766A4 (zh) |
JP (1) | JP6037320B2 (zh) |
KR (1) | KR101654726B1 (zh) |
CN (1) | CN104321744B (zh) |
AU (1) | AU2013281104B2 (zh) |
BR (1) | BR112014029958A2 (zh) |
WO (1) | WO2014003921A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10528385B2 (en) | 2012-12-13 | 2020-01-07 | Microsoft Technology Licensing, Llc | Task completion through inter-application communication |
US9313162B2 (en) | 2012-12-13 | 2016-04-12 | Microsoft Technology Licensing, Llc | Task completion in email using third party app |
US10706432B2 (en) * | 2014-09-17 | 2020-07-07 | [24]7.ai, Inc. | Method, apparatus and non-transitory medium for customizing speed of interaction and servicing on one or more interactions channels based on intention classifiers |
US11195126B2 (en) | 2016-11-06 | 2021-12-07 | Microsoft Technology Licensing, Llc | Efficiency enhancements in task management applications |
US10356200B2 (en) | 2016-12-28 | 2019-07-16 | Google Llc | Optimizing user interface data caching for future actions |
US10990912B2 (en) | 2017-02-15 | 2021-04-27 | Bank Of America Corporation | System for identification and integration of like resources and configuring resources for common use |
US10356074B2 (en) * | 2017-02-15 | 2019-07-16 | Bank Of America Corporation | Computing system for resource management based on resource attributes and predicting user actions |
US10476813B2 (en) | 2017-02-15 | 2019-11-12 | Bank Of America Corporation | Computerized system for identifying and redistributing complementary resources |
US11429725B1 (en) * | 2018-04-26 | 2022-08-30 | Citicorp Credit Services, Inc. (Usa) | Automated security risk assessment systems and methods |
US10817270B2 (en) | 2018-08-02 | 2020-10-27 | Oracle International Corporation | AI-generated instant micro apps |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6098064A (en) * | 1998-05-22 | 2000-08-01 | Xerox Corporation | Prefetching and caching documents according to probability ranked need S list |
US7679534B2 (en) * | 1998-12-04 | 2010-03-16 | Tegic Communications, Inc. | Contextual prediction of user words and user actions |
US6453389B1 (en) * | 1999-06-25 | 2002-09-17 | Hewlett-Packard Company | Optimizing computer performance by using data compression principles to minimize a loss function |
EP1381953A2 (en) | 2000-11-29 | 2004-01-21 | Netuitive Inc. | Enhanced computer performance forecasting system |
EP1223757B1 (en) | 2001-01-09 | 2006-03-22 | Metabyte Networks, Inc. | System, method, and software application for targeted advertising via behavioral model clustering, and preference programming based on behavioral model clusters |
US7007270B2 (en) | 2001-03-05 | 2006-02-28 | Cadence Design Systems, Inc. | Statistically based estimate of embedded software execution time |
US20020174217A1 (en) | 2001-05-18 | 2002-11-21 | Gateway, Inc. | System and method for predicting network performance |
US20020198991A1 (en) * | 2001-06-21 | 2002-12-26 | International Business Machines Corporation | Intelligent caching and network management based on location and resource anticipation |
JP2004008471A (ja) | 2002-06-06 | 2004-01-15 | Seiko Instruments Inc | 行動状況モニター装置、行動状況解析装置および行動状況解析システム |
US20040030882A1 (en) * | 2002-08-08 | 2004-02-12 | Forman George Henry | Managed application pre-launching |
JPWO2004068399A1 (ja) | 2003-01-31 | 2006-05-25 | 松下電器産業株式会社 | 予測型行動決定装置および行動決定方法 |
JP3698716B2 (ja) * | 2003-02-25 | 2005-09-21 | 松下電器産業株式会社 | アプリケーションプログラムの予測方法及び移動体端末 |
US7487296B1 (en) | 2004-02-19 | 2009-02-03 | Sun Microsystems, Inc. | Multi-stride prefetcher with a recurring prefetch table |
JP2005332127A (ja) | 2004-05-19 | 2005-12-02 | Nippon Telegr & Teleph Corp <Ntt> | 個人プロファイルによる状況予測システムおよび方法、プログラムおよび記録媒体 |
US7558822B2 (en) | 2004-06-30 | 2009-07-07 | Google Inc. | Accelerating user interfaces by predicting user actions |
JP4599923B2 (ja) * | 2004-07-16 | 2010-12-15 | ソニー株式会社 | 情報処理システム及び情報処理方法、並びにコンピュータプログラム |
US20070008989A1 (en) * | 2005-06-30 | 2007-01-11 | Intel Corporation | Packet processing |
US20070192065A1 (en) | 2006-02-14 | 2007-08-16 | Sun Microsystems, Inc. | Embedded performance forecasting of network devices |
US7788205B2 (en) | 2006-05-12 | 2010-08-31 | International Business Machines Corporation | Using stochastic models to diagnose and predict complex system problems |
US8626136B2 (en) * | 2006-06-29 | 2014-01-07 | Microsoft Corporation | Architecture for user- and context-specific prefetching and caching of information on portable devices |
US8112755B2 (en) * | 2006-06-30 | 2012-02-07 | Microsoft Corporation | Reducing latencies in computing systems using probabilistic and/or decision-theoretic reasoning under scarce memory resources |
US7672923B1 (en) * | 2006-10-31 | 2010-03-02 | Hewlett-Packard Development Company, L.P. | Grid network management via automatic trend analysis of a service level agreement |
US20080201332A1 (en) * | 2007-02-20 | 2008-08-21 | Souders Steven K | System and method for preloading content on the basis of user context |
US7844424B2 (en) | 2007-03-01 | 2010-11-30 | The Boeing Company | Human behavioral modeling and simulation framework |
US8032472B2 (en) | 2007-04-04 | 2011-10-04 | Tuen Solutions Limited Liability Company | Intelligent agent for distributed services for mobile devices |
US9009292B2 (en) * | 2007-07-30 | 2015-04-14 | Sybase, Inc. | Context-based data pre-fetching and notification for mobile applications |
US9211473B2 (en) | 2008-12-15 | 2015-12-15 | Sony Computer Entertainment America Llc | Program mode transition |
US20090216707A1 (en) | 2008-02-26 | 2009-08-27 | International Business Machines Corporation | File resource usage information in metadata of a file |
WO2009108344A1 (en) | 2008-02-29 | 2009-09-03 | Vkernel Corporation | Method, system and apparatus for managing, modeling, predicting, allocating and utilizing resources and bottlenecks in a computer network |
US8587402B2 (en) * | 2008-03-07 | 2013-11-19 | Palm, Inc. | Context aware data processing in mobile computing device |
EP2288987A4 (en) | 2008-06-12 | 2015-04-01 | Guardian Analytics Inc | USER MODELING FOR DETECTING FRAUD AND ANALYSIS |
US8209062B2 (en) | 2009-12-16 | 2012-06-26 | Robert Bosch Gmbh | Method for non-intrusive load monitoring using a hybrid systems state estimation approach |
US8412665B2 (en) | 2010-11-17 | 2013-04-02 | Microsoft Corporation | Action prediction and identification temporal user behavior |
US8606728B1 (en) | 2011-06-15 | 2013-12-10 | Google Inc. | Suggesting training examples |
US8176437B1 (en) * | 2011-07-18 | 2012-05-08 | Google Inc. | Responsiveness for application launch |
US8645300B1 (en) * | 2011-07-20 | 2014-02-04 | Usability Sciences Corporation | System and method for intent data processing |
US9043692B2 (en) | 2011-09-20 | 2015-05-26 | Oracle International Corporation | Predictive system recommended actions based on recent activities |
US9189252B2 (en) * | 2011-12-30 | 2015-11-17 | Microsoft Technology Licensing, Llc | Context-based device action prediction |
US20130218876A1 (en) | 2012-02-22 | 2013-08-22 | Nokia Corporation | Method and apparatus for enhancing context intelligence in random index based system |
US9132349B2 (en) | 2012-04-10 | 2015-09-15 | Sap Se | Third-party recommendation in game system |
-
2012
- 2012-06-29 US US13/539,157 patent/US8990143B2/en not_active Expired - Fee Related
-
2013
- 2013-05-21 EP EP13808727.5A patent/EP2867766A4/en not_active Ceased
- 2013-05-21 KR KR1020147032391A patent/KR101654726B1/ko active IP Right Grant
- 2013-05-21 BR BR112014029958A patent/BR112014029958A2/pt not_active IP Right Cessation
- 2013-05-21 CN CN201380027973.8A patent/CN104321744B/zh not_active Expired - Fee Related
- 2013-05-21 JP JP2015520189A patent/JP6037320B2/ja not_active Expired - Fee Related
- 2013-05-21 WO PCT/US2013/042096 patent/WO2014003921A1/en active Application Filing
- 2013-05-21 AU AU2013281104A patent/AU2013281104B2/en not_active Ceased
Also Published As
Publication number | Publication date |
---|---|
CN104321744A (zh) | 2015-01-28 |
KR20150002855A (ko) | 2015-01-07 |
JP2015521778A (ja) | 2015-07-30 |
US20140006335A1 (en) | 2014-01-02 |
BR112014029958A2 (pt) | 2017-06-27 |
US8990143B2 (en) | 2015-03-24 |
AU2013281104B2 (en) | 2016-05-05 |
EP2867766A4 (en) | 2016-02-24 |
AU2013281104A1 (en) | 2014-11-27 |
JP6037320B2 (ja) | 2016-12-07 |
KR101654726B1 (ko) | 2016-09-06 |
WO2014003921A1 (en) | 2014-01-03 |
EP2867766A1 (en) | 2015-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104321744B (zh) | 用于潜在动作预测的装置、方法和机器可读介质 | |
US9886667B2 (en) | Performance of predicted actions | |
US11651250B2 (en) | Automatically generated conversation output | |
CN102597979A (zh) | 用于分级架构内的结果优化的生成性分布 | |
US20150143340A1 (en) | Method of classifying application in android operating system and computer-readable recording medium having program for classifying application in android operating system recorded thereon | |
CN111045911A (zh) | 性能测试方法、性能测试装置、存储介质与电子设备 | |
CN104321763B (zh) | 用于对装置的活动进行预测的方法、装置和存储介质 | |
JP7521870B2 (ja) | 環境コンテキストへの能動的適応を通じて情報空間のセグメントを識別する技術 | |
CN110765136A (zh) | 标识符的管理方法、装置、介质及设备 | |
EP4047907A1 (en) | Method and apparatus for reporting asynchronous data, and storage medium | |
CN109271269A (zh) | 一种应用闪退的处理方法、装置及设备 | |
US20230412731A1 (en) | Automated interactive voice response interaction using voice prompt classification machine learning frameworks | |
KR101248470B1 (ko) | 자원 모니터링 컴퓨팅 장치, 방법 및 그 방법을 실행시키기 위한 프로그램을 기록한 기록매체 | |
US20240160498A1 (en) | Detecting impact of api usage in microservices | |
CN114139091A (zh) | 处理延迟的评估方法、装置、介质及电子设备 | |
KR20220072338A (ko) | 엣지 서비스 증설 제어 시스템 및 그 제어방법 | |
JP2022190752A (ja) | 計算機システム、推論方法、及びプログラム | |
US20040162843A1 (en) | Method, system, and article of manufacture for evaluating an object | |
CN112883184A (zh) | 对话管理方法、设备、计算机可读存储介质及程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190308 Termination date: 20210521 |