当前位置: 首页 > 专利查询>微软公司专利>正文

将后台工作和前台工作解耦合制造技术

技术编号:8190865 阅读:307 留言:0更新日期:2013-01-10 01:47
用于分开地加载和管理应用的前台工作和后台工作的系统、方法和装置。在一些实施例中,提供一种方法用于由在至少一个计算机上执行的操作系统使用。操作系统可以识别应用的至少一个前台组件和至少一个后台组件,并且可以与至少一个后台组件分开地加载至少一个前台组件用于执行。例如,操作系统可以执行至少一个前台组件,而不执行至少一个后台组件。在一些其它实施例中,操作系统可以使用与该应用相关联的规范来识别实现该至少一个后台组件的至少一个计算机可执行代码块。

【技术实现步骤摘要】
将后台工作和前台工作解耦合
技术介绍
传统的操作系统实现少许不同的执行模型来管理应用的前台工作和后台工作。可被看作前台工作的处理任务的示例包括但不限于呈现图形用户界面、响应用户输入以及与用户交互有关的任何其它类型的工作。可被看作后台工作的处理任务的示例包括但不限于下载和安装软件更新、与服务器 同步以及可以不牵涉用户注意力的任何其它类型的工作。在第一模型中,允许在前台和后台中并行执行任意数目的应用,并且竞争诸如处理器周期和存储器之类的资源。该模型在桌面型计算机和膝上型计算机上普遍实现。在第二模型中,除了“激活的”应用(B卩,用户正在主动与之交互的应用)之外,阻止执行所有应用。该模型在移动设备上普遍实现,其中在任意给定时刻,用户通常与满屏显示的单个应用交互。在第三模型中,将同一应用的前台工作和后台工作处理为互相排斥的,使得在前台中执行的应用不被调度来同时进行任何后台工作,反之亦然。在第四模型中,可以针对前台工作和后台工作分开地对应用进行实例化,其中两个实例并行执行并且竞争资源。
技术实现思路
前述内容是本专利技术的非限制性概要,本专利技术由所附权利要求限定。本专利技术人已经认识和理解到现有操作系统执行模型所产生的若干缺点,并且已经开发了新的执行模型,该新的执行模型提供诸如改善的电池寿命和用户体验之类的优点。在一些实施例中,可以将针对前台工作和后台工作的应用逻辑解耦合,使得允许操作系统分开地加载前台工作和后台工作,并且使得当作出调度决策时不同地处理前台エ作和后台工作。例如,应用可以包括分开的组件,一些组件指定为前台组件,其它组件指定为后台组件。操作系统可以基于组件的指定来向它们应用不同的策略,其中可以设计策略以促使资源的有效使用同时向用户提供丰富的多任务处理体验。在一些其它实施例中,可以在能够独立于彼此而执行的分开的可执行代码块中提供前台组件和后台组件。操作系统也可以在分开的进程中例如通过在受特定资源限制的指定环境中(例如对主机后台组件构建的沙盒(sandbox))隔离后台工作来加载前台组件和后台组件。备选地,操作系统可以在同一进程中但在不同线程中加载前台组件和后台组件,并且仍能够将与后台工作相关联的执行线程和与前台工作相关联的执行线程区分开并且相应地作出调度决策。在一个实施例中,提供ー种方法以供在至少ー个计算机上执行的操作系统使用。该方法包括以下的动作识别应用的至少ー个前台组件;识别应用(100)的至少ー个后台组件;以及与至少ー个后台组件分开地加载至少ー个前台组件用于执行。在其它实施例中,提供至少ー个计算机可读介质,其上至少编码有至少ー个第一计算机可执行代码块,实现应用的至少ー个前台组件;至少ー个第二计算机可执行代码块,实现应用的至少ー个后台组件;以及规范(specification),将至少ー个第二代码块识别为与应用的后台工作相关联。在另ー其它实施例中,提供一种计算机实现的方法,包括以下的动作响应于用户动作,执行实现应用的至少ー个前台组件的至少ー个第一计算机可执行代码块;以及使用与应用相关联的规范来识别实现应用的至少ー个后台组件的至少ー个第二计算机可执行代码块,其中执行至少ー个前台组件而不执行至少ー个后台组件。应理解到的是,前述概念和下面更详细讨论的附加概念(假设这样的概念并不相互矛盾)的所有组合被考虑为这里公开的本专利技术主题的一部分。特别是,出现在本公开结尾处的请求保护的主题的所有组合被考虑为这里公开的本专利技术主题的一部分。附图说明附图并不一定按照比例绘制。图I示出根据ー些实施例的具有针对前台工作和后台工作的解耦合逻辑的说明 性应用100。图2示出根据ー些实施例的针对应用的说明性状态图,该应用具有可以并行执行的前台工作和后台工作。图3A示出根据ー些实施例的其中操作系统在分开的进程中加载前台组件和后台组件的示例。图3B示出根据ー些实施例的其中操作系统在同一进程中加载前台组件和后台组件的示例。图4示出根据ー些实施例的适于分开地管理后台工作和前台工作的操作系统的示例。图5是根据一些实施例的可以响应于部署代理事件的请求而由代理(broker)组件执行的说明性进程的流程图。图6示出根据ー些实施例的可以由代理组件用来存储有关代理事件的信息的说明性数据结构。图7是根据一些实施例的可以由代理组件执行以确定何时通过信号发送代理事件的说明性进程的流程图。图8A是根据一些实施例的可以由代理基础架构执行以将后台组件与代理事件相关联的说明性进程的流程图。图SB示出根据ー些实施例的可以用来存储与后台组件相关联的代理事件的说明性数据结构。图9示出根据ー些实施例的可以由代理基础架构执行以确定何时执行后台组件和如何管理后台组件的执行的说明性进程900。图10示意性地示出其上可以实现本公开内容的各方面的说明性计算机。具体实施例方式本专利技术人已经认识和理解到现有操作系统执行模型所产生的若干缺点,并且已经开发了新的执行模型,该新的执行模型提供诸如改善的电池寿命和用户体验之类的优点。例如,允许并行执行任意数目的应用的第一执行模型可能导致太多进程竞争诸如处理器周期和存储器之类的资源。这可能又导致资源约束环境中的迟缓性能,资源约束环境诸如在具有有限处理速度和存储器的移动设备上。如果该移动设备依靠电池能量运行,则无差别地执行进程可能也导致缩短的电池寿命。另ー方面,阻止除了一个激活的应用外的所有应用的第二执行模型可能排除期望的多任务处理场景,诸如用户在写邮件,同时听音乐、接收全球定位系统(GPS)位置更新和/或接听进来的因特网协议上语音(VoIP)呼叫。这些多任务处理场景需要即使当用户主动与另ー应用交互时也能够一定程度地执行应用。第三执行模型,S卩,按照相互排斥方式执行同一应用的前台工作和后台工作,可以类似地排除期望的多任务处理场景,诸如用户经由网页浏览器阅读ー个网页页面,同时等待完成网页下载。尽管分开实例化的第四执行模型可以允许操作系统并行执行同一应用的后台エ作和前台工作,但仍然存在很多潜在缺陷。例如,太过于依赖应用开发者编写表现为与前台-后台区别一致的方式的代码。即使应用掲示呼叫參数以允许操作系统指示针对前台エ 作对应用进行实例化还是针对后台工作对应用进行实例化,开发者也可能非故意地忽略在针对前台工作对应用进行实例化时防止执行后台工作的程序逻辑,或者反之亦然。这破坏了操作系统有效控制后台工作的资源消耗的能力,因为操作系统可能难以确定声称的前台实例是否仅执行前台工作(例如,响应经由用户接ロ接收到的输入)并且不执行任何不必要或者效率不高的后台工作(例如,周期性地与服务器同歩)。分开实例化方法也可能给用开发者施加了负担来操控有关并行执行的复杂性。例如,当同一应用的前台实例和后台实例并行执行时,两个实例可能在不同的上下文中执行并且可能不共享状态。作为结果,两个实例可能能够仅通过明确由操作系统提供的机制来通信,这可能使得计算机代码复杂化。本专利技术人已经认识和理解到,尽管后台工作和前台エ作之间的这种解耦合可能是期望的,但也会期望赋予开发者选项,以不支持在不同上下文中并行执行多个实例。因此,在一些实施例中,提供更灵活的执行模型以允许操作系统与前台工作不同地管理后台工作。在ー个方面中,可以解耦合针对前台工作和后台工作的应用逻辑,使得允许操作系统分开地加载前台工作和后台工作,并且本文档来自技高网...

【技术保护点】
一种由在至少一个计算机(1000)上执行的操作系统(400)使用的方法,所述方法包括以下的动作:识别应用(100)的至少一个前台组件(105);识别所述应用(100)的至少一个后台组件(110A?C);以及与所述至少一个后台组件(110A?C)分开地加载所述至少一个前台组件(105)用于执行。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:JA小施瓦茨AU基尚RK涅夫斯DB普罗伯特H普拉帕卡AF格夫劳特
申请(专利权)人:微软公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1