计算机的延迟关停的制作方法

文档序号:12270458阅读:207来源:国知局
计算机的延迟关停的制作方法与工艺

本申请是申请日为2011年11月18日、申请号为201180065101.1、发明名称为“计算机的延迟关停”的中国发明专利申请的分案申请。

相关申请的交叉引用

本申请要求于2010年11月18日提交的、名称为“User Interaction in a Computer Operating System”的第61/415,243号美国临时申请的优先权,其全部内容通过引用合并于此。

技术领域

本文涉及用于与计算机操作系统的用户交互的系统和技术。



背景技术:

计算机(例如,台式PC、膝上型计算机、上网本计算机或者智能电话)用来操作的核心结构可以包括基本输入和输出系统或者BIOS、操作系统和其他部件,这些部件可以被称为占用为操作计算机提供基本功能的软件“栈”。可以在第一次接通和引导计算机时访问BIOS,并且BIOS可以提供用于计算机的基本功能,比如标识、测试和初始化系统设备,这些系统设备包括存储为了引导计算机而进一步需要的代码的存储设备。用于操作系统的代码可以存储于这样的附加设备上,并且可以提供计算机的进一步引导直至它被完全引导并且准备好操作。

操作系统一般用作在计算机硬件与计算机的用户之间的接口。操作系统可以提供多种功能。例如,操作系统可以提供图形用户界面(GUI),计算机的用户可以通过该GUI从计算机接收输出并且可以通过该GUI向计算机提供输入。操作系统也可以提供各种第三方应用在其上执行的平台,其中操作系统提供应用所需要的服务并且也提供如下机制,应用可以通过该机制与其他资源(比如其他应用、外围设备(例如,打印机、相机等)和与操作系统本身提供的服务)通信。



技术实现要素:

本文描述可以被实施为用于计算设备的操作系统的一部分或者在包括多个不同计算设备的系统中实施的系统和技术。例如,各种机制可以用来同步计算设备与在基于云的系统中存储的数据,由此使主控的计算机服务器系统可用于公众的成员访问系统,并且系统转而提供各种服务,比如数据存储和备份、文档存储、电子邮件寻路由和处置以及其他有用服务。计算设备可以是如下形式,该形式具有相对小的本地存储装置并且因此在主控的服务器系统存储用户的数据。附加地,可以配置设备以使得它实质上持续连接到网络(例如,无线网络)并且经由网络连接到因特网。作为结果,设备上的各种部件可以被布置用于根据接近常通方式操作。

具体地,下面详细描述用于在以下情况下延迟计算机关停的过程(例如,将计算机置于休眠模式或挂起模式,或者完全将计算机关闭),其中计算机实践中否则很快被关停以便保存功率,具体地电池功率(即,在设备没有接收AC功率的某些实例中关停可以更快速出现)。此关停通常由缺少用户与设备(例如,平板计算机或智能电话计算机)的交互或者关闭设备(例如,平板计算机或上网本)上的盖子触发。使用下文所述技术,此设备的关停可以基于计算机关于其环境和其他变量做出的确定有意延迟预定量。例如,相对于深夜,计算机可以基于白天的某时刻延迟关停一标准时间,例如,在假设用户可能简单地从办公室移向会议室同时他或她的膝上型计算机的盖子关闭的工作日期间延迟关停。

同样,计算机可以以基于正在计算机上执行的应用或者正在计算机上显示的内容的关停时序为基础。例如,假设用户应当在其旨在长时间退出使用计算机之前已经保存并关闭了文档,如果文字处理文档为打开(并且可选择地,如果文字处理文档打开并且具有未保存的改变),则计算机可以延迟关停预定量。在进行这种延迟确定时,计算机的位置也可以被考虑。例如,针对在工作或在家的用户,计算机可以延迟关停,但如果用户处于其他地方则不延迟,假设用户在其关闭计算机时可能正要离开不熟悉的位置,因此将会长时间不再使用计算机。另外,定位技术(例如,GPS)可以用于确定计算机的速度,并且在某个速度之上更快关停可以被触发,假设用户关闭盖子并且骑自行车或在汽车中(其是当计算机可能具有高速的两个示例)用户并不期望使用设备。类似地,用户的电子日历可以被咨询以确定是否关闭设备。例如,如果用户在其日历两个会议之间的时间关闭设备上的盖子,则系统可以假设其不久将在下一会议打开并且可以避免关停,而如果日历示出是最后一个会议并且日历中没有其他事情,则设备可以立即关停假设用户将去做一些不需要使用计算机的事情(如做些运动)。另外,剩余电量可以与先前考虑的一个或多个混合,使得当电池电量更低或低于预定阈值时设备更容易被关停。

在关停计算机方面确定的延迟还可以取决于计算机以及在该计算机上操作的设备的直接环境。例如,如果设备上的近距离传感器指示某物接近设备(尤其在其顶部或底部),假设设备已经被滑入手提袋而不是被简单地携带在用户的手中,该设备可以被更快速地关闭。类似地,可以确定设备相对垂直的方向,并且系统可以确定垂直设备(高于其厚度)指示长关闭的可能性或大于或小于水平设备。此外,计算机上设备(诸如网络接口)的活动可以提供附加指示。例如,当3G接口或4G接口在设备上被激活时相比当WiFi接口被激活时,设备可以更快或更慢关停。

在其他示例中,计算机可以学习用户的偏好以在做出通常被认为是关停计算机的指示(诸如通过关闭盖子)的指示之后重新使用计算机。例如,每次用户关闭并重新打开盖子,操作系统可以记录盖子被关闭的时间长度,并且可以记录上文所述因素(例如,白天的某时刻、地理位置、设备上打开的应用、设备的速度、电池电量以及应用中出现的内容及其状态)中一个或多个因素的状态。在足够次此类循环之后,系统可以使用标准统计技术来标识“长”关闭(其指示设备应当快速被关闭)和“短”关闭(其指示设备不应当被关闭以便当用户重新打开时可以快速可用)之间的关联。统计关联继而可以被分析用于形成模型以应用于确定将来延迟设备关停多长时间。例如,此类分析可以确定工作日上午9点与下午4点之间实例的90%是“短”关闭,使得生成的模型在此情况下产生更大的延迟。还可以确定下午5点之后当只有web浏览器打开的实例的95%是“长”关闭,使得其在此情况下可以被更快速地关闭。

这里所述技术的某些实现方式可以提供一个或多个优势。例如,用户可以从当他或她离开会议或关闭其盖子时使得计算机不自动关停中受益。因此,用户可以立即回到工作而不需要等待计算机重启。同样,用户可以避免尝试在其手臂上平衡打开的膝上型计算机同时站在会议室外,然后试图携带着该膝上型计算机、笔记本并同时打开门的尴尬情况。因此,用户对该设备的满意度可以提升并且用户可以从相同制造商购买更多设备或者向好友或其他熟人推荐所述设备。同时,设备可以在动作适当时快速关停,并且可以因此节省电能并避免生成不必要的热量。在一个实现方式中,公开了一种计算机实施的计算机关停方法。所述方法包括:标识计算设备已经从其中所述计算设备上的输入和输出机制对于用户可访问的打开配置移向其中所述输入和输出机制中的至少某些对于用户不可访问的关闭配置;响应于标识所述计算设备已经从所述打开配置移向所述关闭配置,启动关停定时器;等待由所述关停定时器建立的预定时间段,并且从所述关停定时器确定所述计算设备可以从活跃状态转变成其中所述计算设备的功耗组件被掉电的休眠状态;以及在确定所述计算设备可以被转变之后,将所述计算设备从所述活跃状态转变成所述休眠状态。标识所述计算设备已经从所述打开配置移向所述关闭配置可以包括从所述计算设备上的盖开关接收信号。同样,标识所述计算设备已经从所述打开配置移向所述关闭配置可以包括从连接至所述计算设备的摄像头获得预定类型的信号。例如,所述计算设备采取翻盖设备或滑盖设备的形式。

在某些方面,所述方法还包括监视所述计算设备上由将所述设备从所述打开配置移向所述关闭配置发起的关停序列,以及延迟所述计算设备从所述活跃状态到所述休眠状态的转变,直到所述预定时间段之后并且所述关停序列结束。所述方法还可以包括从所述计算设备的用户接收用于改变所述预定时间段的输入,并且保存所述用户输入供所述关停定时器稍后访问,以及随后标识所述计算设备已经从所述关闭配置移向所述打开配置,并且取消所述关停定时器。在其他方面,所述方法包括随后标识所述计算设备已经从所述打开配置移向所述关闭配置,并且重新启动所述关停定时器。

在另一实现方式中,描述了一种计算设备中计算机实现的活动控制系统。所述系统包括:传感器,被布置为确定何时所述计算设备已经从其中输入和输出机制对于用户可访问的打开配置移向其中所述输入和输出机制中的至少某些对于用户不可访问的关闭配置;关停定时器,响应所述计算设备已经从所述打开配置移向所述关闭配置的确定,并且编程用于访问定义可变关停延迟时间段的值的数据;以及计算机活动管理器,响应所述关停延迟定时器,并且编程用于延迟所述计算设备从活动状态到其中所述计算设备的功耗组件被掉电的休眠状态的转变,直到所述关停延迟时间段到期。所述系统还可以包括开关,被布置为当所述计算设备从所述打开配置移向所述关闭配置时被触发。此外,所述系统可以包括用户接口,编程用于接收延迟时间段的用户输入并且将所述用户提供的延迟时间段保存为所述可变关停延迟时间段的值。

在某些方面,所述传感器包括与软件交互的摄像头,用于将所述摄像头中出现的预定图像与将所述设备从所述打开配置移向所述关闭配置的事件相关。同样,将所述设备从打开配置移向所述关闭配置可以包括执行用于禁用所述计算设备上虚拟键盘的动作。另外,所述计算设备可以包括顶部,以及通过滑动机制连接至所述顶部的底部,并且其中将所述设备从打开配置移向所述关闭配置包括在所述底部上滑动所述顶部。在某些方面,系统进一步包括关停监视器响应关于所述计算设备上运行的应用的状态的信息,并且其中所述计算机活动管理器被布置为延迟所述计算设备从所述活跃状态到所述休眠状态的转变,直到所述关停延迟时间段之后并且由所述关停监视器确定的应用的活动到期。

在又一实现方式中,公开了一种计算设备中计算机实现的活动控制系统,所述系统包括:传感器,被布置为确定何时所述计算设备已经从其中输入和输出机制对于用户可访问的打开配置移向其中所述输入和输出机制中的至少某些对于用户不可访问的关闭配置;关停定时器,响应所述计算设备已经从所述打开配置移向所述关闭配置的确定,并且编程用于访问定义可变关停延迟时间段的值的数据;以及用于将所述计算设备从活动状态转变成其中所述计算设备的功耗组件仅在所述关停延迟时间段到期之后被掉电的休眠状态的装置。

在附图和下文描述中阐述一个或者多个实施方式的细节。其他特征和优点将从描述和附图以及从权利要求变得清楚。

附图说明

图1是用于提供计算设备的延迟的锁定的过程的概念图。

图2是使用上下文对象的操作系统的概念图。

图3是用于维持计算设备上的存储器控制的系统的概念图。

图4是利用在计算机过程之间的消息传递提供线程亲合性的系统的概念图。

图5是提供无状态环境中的状态信息的系统的概念图。

图6是跨越网络为计算设备提供成像的系统的概念图。

图7是提供计算设备的远程监视和控制的系统的概念图。

图8是用于提供在计算设备上高速缓存集中存储于主控的计算机系统上的数据的系统的概念图。

图9是用于提供计算设备的延迟的锁定的过程的流程图。

图10是用于管理操作系统中的上下文对象的过程的流程图。

图11是用于维持计算设备上的存储器控制的过程的流程图。

图12是用于利用在计算机过程之间的消息传递提供线程亲和性的过程的流程图。

图13是用于提供无状态环境中的状态信息的过程的流程图。

图14是跨越网络为计算设备提供成像的过程的流程图。

图15是用于提供计算设备的远程监视和控制的过程的流程图。

图16是用于提供在计算设备上高速缓存集中存储于主控的计算机系统上的数据的过程的流程图。

图17示出可以用来实施这里描述的技术的计算机设备和移动计算机设备的示例。

各种附图中的相似标号指示相似单元。

具体实施方式

本文描述用于例如使用在计算设备(比如移动智能电话或上网本)上运行的操作系统的元素来提供用户与设备的交互的系统和技术。在某些实现方式中,系统和技术可以提供可以与一个或者多个主控的服务器系统通信并且可以从服务器系统服务的各种操作系统部件。具体而言,可以设计操作系统以使得运行它在执行它的时间中的多数时间有因特网连接。作为结果,可以设计由操作系统执行的操作中的许多操作以假设网络连接可用并且依赖于高速缓存技术或者其他桥接方式直至可以恢复网络连接。具体而言,这里描述的设备可以具有与一个或者多个蜂窝电话网络的数据部分通信以达到因特网的接近总是连接的无线数据接口。

具体地,这里详细描述了一种可以改变设备关停(即,完全关机或进入需要花费片刻从其恢复的功率节省模式)时间量的设备,当用户采取动作,设备可以感测该动作可能指示或可能不指示用户期望将长时间不使用设备时,设备因此应当进入不活跃状态(例如,挂起模式或休眠模式)从中恢复将花费微不足道的时间量。设备可以基于设备状态的多个观察量做出延迟或不延迟的决定,或者延迟多少的决定,包括设备上硬件的状态(计算机上正在运行的设备)、设备周围的环境(例如,其他对象靠近、白天的某时刻、温度、使用设备上的仪器的加速度和速度读数以及设备的地理位置)、操作系统中运行的对象的状态(哪些应用正在该设备上运行以及这些应用正在做什么,包括是否当前正在显示可能不需要用户保存的文档或其他内容)。

图1是用于提供计算设备的延迟的锁定的过程的概念图。一般而言,系统提供一种用于允许便携计算设备的用户采取动作以关停便携计算设备而不立即关停设备(即,设备有意延迟关停)的机制。作为结果,如果用户在采取这样的动作之后改变他的或者她的想法,则用户可以重新激活设备而无需采取对于这一特征而言原本如果设备将在用户采取这样的动作时立即关停则将另外需要的其他步骤。

在该图中,示出在这一情况下为具有翻盖(clamshell)设计的膝上型计算机的便携计算设备的三个不同状态。在第一状态102中,计算机打开并且操作,并且时间是中午12点钟。计算机上的显示器108指示锁定定时器已经被设置成10秒。这里通过示例提供显示器108,但是在实际使用中,设备不会显示定时器上剩余的数量,并且定时器不会已经在状态102所示点开始操作。

在状态104,在五秒之后,显示器被关闭到计算机的基部——如下动作,该动作将正常地使计算机立即开始进入休眠或者其他形式的不活跃模式。这样的改变将包括使计算机上的微处理器掉电、关断显示器108、关断冷却扇和其他关联机制、使图形处理单元(GPU)掉电以及在设备上执行其他功率节省技术。这些动作中的每个动作可以使得当盖子被重新打开时对设备的操作延迟,并且此延迟对于不期望关停只是暂时关闭盖子的用户而言是恼人的。虽然未由状态104示出,但是设备在它已经被关闭仅数秒时尚未完全掉电或者开始掉电,因为在这一示例中,设备具有在它甚至将开始关停序列之前的10秒内置延迟(并且甚至可以有在该序列开始之后的某一不确定时间直至设备经过它可以被重新激活的点而无大量用户介入,比如录入解锁口令)。取而代之,可以比如通过关断显示器108来使有限数目的特征掉电以便向用户给予设备在掉电这样的印象。但是重新激活设备可以此时无需比再次打开设备更多的任何动作,并且其可以实质上立即可用于执行工作(例如,对于平均上电而言小于1秒或5秒)。

在关闭设备之后的14秒和9秒之后,在状态106,例如打开设备,因为用户的设备决定他们不想停止使用设备并且取而代之需要使用设备来执行附加工作。由于定时器被设置成在10秒之后到期,所以设备尚未向它的休眠或者其他掉电状态转变。取而代之,设备上的需要大量时间来恢复功率的所有系统已经保持上电,并且仅有限系统已经被掉电,比如显示器108。也在这一示例中,定时器已经再次被重置成10秒,从而使得如果用户再次关闭设备,则它不会在闭合之后的10秒内开始进入休眠或者其他不活跃模式。也在某些实施方式中,设备可以响应于一个输入而不是另一输入来立即进入睡眠。例如,录入控制键组合可以使设备立即进入睡眠,并且录入这样的组合可以被假设为用户更有意图。对照而言,关闭翻盖设备可以实施预定延迟,因为这样的动作可以更可能被预计为暂时动作(例如,在用户将设备从一个地点移向下一地点时)。

用于开始使设备掉电的过程的特定延迟时间可以由设备的用户设置。例如,如果用户不想最大化电池节省并且频繁关闭他们的计算机并且然后立即或者之后不久确定他们想要再次开始在他们的计算机上工作,则用户可以设置用于定时器在设备开始使它的各种系统掉电以进入睡眠或者休眠模式之前倒计时的相对长的时段。

尽管这里将设备示出为具有翻盖布置,该翻盖布置将在计算机的铰链附近包括开关,从而使得可以在翻盖关闭并且计算机可以确定进入掉电模式时按下开关,但是也可以使用其他实现方式。例如,平面触屏写字板或者平板计算机可以允许用户通过按压设备的前表面、后表面或者外围边缘上的电源按钮来使它掉电。这样的动作可以使设备上的显示器立即关断以便向用户给予设备正在完全掉电这样的印象。然而,设备上的其他子系统(比如微处理器、存储器控制器、图形处理单元和其他这样的子系统)可以如上文讨论的那样在超时延迟的持续时间内保持接通。

除了使系统掉电之外,定时器还可以用来延迟开始在计算设备(比如所示计算设备)上重置的安全装置。例如,可以布置某些计算设备以使得在它们被置于睡眠模式或者其他不活跃模式时用户将请求口令或者其他安全机制以使设备恢复完全活跃模式。在没有这里讨论的定时器的情况下,用户如果他们关闭他们的设备或者以其他方式使它不活跃并且然后快速想起他们需要再次使用设备,则可能被迫重新录入他们的口令。在具有定时器(比如这里讨论的定时器实现方式)的情况下,用户可以在他们已经完成某个操作以使他们的设备不活跃之后快速按压按钮或者打开设备,并且他们可以让用于设备的主页或者桌面接近立即向他们显示而无需他们重新录入他们的口令或者其他证明信息以解锁设备。简言之,设备上的从解锁状态到锁定状态的转变可以被有意地延迟确定的和用户可选的时间段。

如上文更全面所述,延迟时间可以改变并且由设备自动计算。例如,延迟时间可以基于在设备被关闭时可以被标识的多个变量由设备确定。例如,如上文所述,设备上应用的状态可以被分析(如白天的某时刻)以便例如更可能施加延迟或将施加相对更长的延迟,其中在工作日以及未保存文档在设备上打开期间该事件发生。类似地,设备的方向、设备的运动(均经由速度测量并且来自可以指示用户在汽车中而不是走路的加速计)以及在进行确定时还可以被考虑的其他类似因素。

如上文所述,多个此类因素可以被组合以便在将确定。例如,白天的某时刻和设备的地理位置的组合可以被组合,并且在计算得分时每个分量可以被给定特定权重,其中得分可以线性相关或者对应于施加延迟的长度。类似地,学习系统可以基于先前设备状态的观察量及其出现打开和关闭事件时周围环境来确定延迟。例如,每次关闭设备时可以拍摄设备的快照,并且可以记录关闭设备与下一次重新打开设备之间的时间。设备的某些状态继而可以统计上与用户是否将不久再次打开设备或不打开设备相关。这些状态继而可以用于“延迟模型”,通过该模型用于延迟设备关停的时间可以作为先前学习的相关性的函数。特定学习系统和针对此类系统的统计分析是已知的,并且可以用于这里所述分析的上下文中。

以这一方式,这里描述的系统和方法可以提供用户与计算设备的更方便体验。设备可以在用户已经指示掉电命令之后略微延迟它的掉电,并且这样的延迟可以用来如果用户快速改变他的或者她的想法则允许设备快速上电。在相同时间,掉电延迟可以相对短,从而使得设备未用完过量电池功率。

图2是使用上下文对象的操作系统的概念图。一般而言,上下文对象是操作系统对象,该操作系统对象已经随它或者为它存储关于上下文的信息,对象先前已经在该上下文中存在于操作系统中,包括通过描述在第一对象已经在操作系统中被创建和/或活跃时已经在操作系统中存在和活跃的其他对象。

在该图中,以基本翻盖膝上型计算机的形式示出计算机202,但是计算机202可以采取其他形式,比如智能电话、触屏写字板或者平板设备。在计算机202的屏幕上示出对象的多个可视表示,并且这些可视表示包括在计算机202上加载的应用的图标和表示。例如,图标208代表比如通过存储于计算机202上的持久存储装置上或者从计算机202可访问的服务器系统来从计算机202可访问的特定字处理文档。例如,计算机202可以存储cookie或者其他机制,它可以通过该cookie或者其他机制向服务器系统标识它本身以指示与服务器系统的向计算机202的用户注册的账户。计算机202可以使用这样的机制以便从服务器系统获得信息,比如获得代表图标208的文档的数据。用户可以然后通过选择图标来调用文档。

小部件或者小配件212由计算机202的显示器上的时钟代表并且指示也可以在计算机202上显示的对象类型。小部件或者小配件212可以采用多种熟悉形式并且可以从第三方被提供为代码,这些第三方草拟应用以补充以其他方式在设备202上加载的操作系统上可用的功能。新闻馈送214以新闻聚合器的形式代表在设备202上运行的活跃应用,该新闻聚合器向计算机202的用户示出新近当前事件更新。

图标204以计算机202将执行的持久搜索的形式代表对象。持久搜索是由设备(比如计算机202)自动重复的搜索。例如,计划去欧洲度假的用户可以建立去欧洲的航空公司航班的持久搜索,从而使得如果航班在某一价格变得可用则可以立即通知用户。

一对框206、210指示可以与对象208和204之一关联地保存的上下文数据。例如,框210指示用于文档或者字处理文档(比如文档208)的上下文信息。在框210中示出各种字段以指示可以随对象保存的上下文信息类型。例如,对象包括描述它属于的对象类型的名称和关于计算机202上存储的所有其他对象唯一标识对象的标识号。

框210也示出初始地创建对象的时间和在创建对象208时也在计算机202上打开的对象的列表。附加地,框210包括在上次使用对象208时打开的其他对象的列表。在这一示例中,用户在创建字处理对象208时和上次使用它时均回顾网站www.test.com。也在创建字处理文档时,持久搜索对象204在计算机202上活跃。这样的共同出现可以指示文档被用户创建以包含由持久搜索生成的信息。例如,如果用户从持久搜索结果向剪贴板复制信息、创建文档并且然后向文档中粘贴搜索结果或者其他复制的数据,则可以形成就这一点而言的又一更强推断。也可以如框210中所示与对象208关联地存储这样的信息(例如,通过确定上次何时保存文档、由当时打开的其他应用共享文档中的什么信息,因此指示在文档与对象之间复制内容)。

框210也示出文档对象208已经与之交互的对象。在这一示例中,文档208已经与应用web打印机交互,这可以指示已经在该打印机上打印出文档208。可以存储在对象之间的特定直接交互,因为它们可以提供在对象与其他对象之间的尤其强连接的指示。这样的连接可以用来标识用户,该用户是对象在特定情形中的预计用户。

框206指示已经与对象204关联地存储的上下文信息。同样,对象的名称包括唯一标识号以及创建对象的时间。如框206中所示,四个不同其他对象在创建持久搜索对象204时活跃。这些其他对象包括字处理文档、电子表格文档和在创建持久搜索对象时在计算机202上查看的两个不同网页。框206也指示持久搜索对象已经与计算机202上的地图应用和联系人应用交互。访问日志也指示用户已经访问对象的时间并且也可以包括指示用户与对象做过什么的信息。

使用这里所示的信息,可以用计算机202向用户提供多种服务。例如,在下次在计算机202上起动对象208时,计算机202可以查看信息框210(实际上是计算机202或者另一设备上存储的数据,但是框210在这一幅图中代表这样的数据)以确定设备202的用户在特定文档也已经打开以用于字处理时已经频繁让www.test.com网页在浏览器中打开。这样的确定可以在适当境况中用来在打开文档时自动起动浏览器,其中网页在浏览器中活跃。以这样的方式,用户可以通过选择用于与多个推断有关的应用之一的仅一个图标来使这些应用被激活。

图3是用于维持计算机设备305上的存储器控制的系统300的概念图。示例系统300可以包括控制在设备305上执行软件应用310的操作系统330。在一个实现方式中,设备105可以是包含操作系统330的蜂窝电话,操作系统330能够同时执行若干软件应用。在备选实现方式中,计算设备305可以是膝上型计算机、个人计算机、个人数字助理或者其他适当计算设备。

在设备305是电话的一个实现方式中,在接通电话之后,可以从持久存储器320加载电话的操作系统330,并且操作系统330可以向用户呈现包含预定图标显示的图形用户界面。每个图标可以是可为用户所用的应用或者用于应用的代理;在被选择时,选择的图标如果必要则可以向操作系统330传递关联应用的参数和在存储器中的文件位置,操作系统330转而可以执行应用310。每个执行的应用使用电话的持久存储器320的段;随着应用继续运行,它的存储器要求可以增加。随着用户执行更多应用310或者运行的应用310消耗附加存储器,电话的存储器320可以最终变得不足以适应应用310的存储器需求。

在示例性实现方式中,存储器管理系统300可以通过在持久存储器320已经被耗尽时终止一个或者多个应用310并且在用户返回到应用时恢复终止的应用来对存储器短缺做出响应。在某些实现方式中,由于终止的应用窗口可能被另一应用窗口完全或者部分遮蔽,所以用户可能未意识到已经终止了应用。在用户选择切换回到应用时,可以重新起动应用,并且除了可能在显示应用时的迟缓响应之外,用户可能不知道应用被暂时终止。

在示例实现方式中,操作系统330可以根据用户与图形用户界面的交互对应用310排行,并且每个应用310可以响应于来自操作系统的信号生成和保存关于它的当前状态的信息。应用可以自行保存这样的状态信息或者可以向操作系统330提供信息,操作系统330转而可以向持久存储装置(例如,闪存)保存信息。

如果存储器320被耗尽,则操作系统330可以终止一个或者多个排行的应用310并且稍后响应于用户请求重建终止的应用。例如,一旦操作系统330已经加载,则用户可以选择文档查看应用以读取存储的文档。随后,在文档查看器仍然在运行之时,用户可以打开web浏览器并且开始因特网冲浪。在web浏览会话的中间,用户响应于电子邮件已经到达这样的通知可以选择电话的电子邮件应用以回顾新邮件。随着用户阅读电子邮件,用户可以尝试运行日历应用以创建用于在电子邮件中提到的事件的提醒。

在示例性实现方式中,随着用户打开新应用,操作系统330可以根据一个或者多个动态标准对应用310排行。这里,操作系统330可以用以下方式按照重要性的降序对运行应用310排行:电子邮件应用、web浏览器和文档查看器。这样的排序可以按照各种方式出现。例如,可以将应用分离成各种类别,比如必需业务应用、娱乐应用等。在一些实现方式中,操作系统330可以识别特定应用在它在后台中时处于休眠,因此它可以将该应用分类为低优先级。但是另一应用可以持续通过网络访问信息(例如,消息接发程序)并且因此可以被排行为更高优先级应用。在一些实现方式中,将应用划分成两个类别:可见应用和不可见应用。不可见应用(即窗口对用户不可见的那些应用)比可见应用排行更低。在备选实现方式中,应用的开发者可以自行对应用分类,或者用户可以对应用分类或者以其他方式排行,并且可以向操作系统330提供这样的分类或者排行。

随着用户与应用310交互,每个应用可以生成和保存关于应用的当前状态的信息。例如,在应用进入其中它可以在任何时间被操作系统330关闭的状态(例如,应用不再对用户可见)时,操作系统330可以通知应用保存它的当前状态。

返回到例示性示例,由于电话的存储器320可能不足以一次运行所有四个应用,所以操作系统330可以在它打开日历应用时选择终止最低排行应用(在这一示例中为文档查看器),因为它已经用完存储器。在备选实现方式中,操作系统330可以预测即将来临的存储器短缺并且终止一个或者多个应用以防止存储器用完。例如,如果当前可用存储器数量降至预定阈值以下,则操作系统可以关闭低排行应用以将当前可用存储器数量带到阈值以上。在备选实现方式中,操作系统330可以比较应用310的即将到来的存储器请求与当前可用存储器数量;如果请求的数量超过当前可用数量,则操作系统将关闭一个或者多个应用。

在这样的情形中,操作系统330可以标识一个或者多个最低排行应用并且暂时终止它们。操作系统330也可以设置标志作为可能需要在稍后时间(例如,在存储器释放时)自动重新起动的应用的指示。

选择待关闭的应用可以通过其他技术而出现。例如,操作系统330可以确定特定应用所需要的存储器数量并且然后标识可以释放该存储器数量加上某一开销存储器安全区的其他操作应用。作为一个示例,应用可以请求3000K的额外存储器,并且三个其他应用可能各自能够分别释放2000K、3000K和35000K的存储器。操作系统330可以确定可以通过关闭前两个程序来实现对存储器的最少“损坏”或者可用存储器的最佳使用,因为它们最接近地迫近需要的存储器数量。备选地,操作系统可以被编程用于偏好于关闭尽可能少的应用。在这样的情形中,在该示例中将关闭第三个应用。

一旦用户已经完成使用日历应用,则用户可以选择返回到文档查看应用。在操作系统330检测到用户尝试返回到已经被暂时关闭的文档查看应用时,操作系统330可以使用保存的状态信息来重建应用。

为了这样做,操作系统330可以先感测用于访问文档查看应用的命令,并且可以从存储的标志察觉这样的应用活跃、但是已经被暂时关闭。操作系统330然后可以起动应用并且向应用传递保存的状态信息以使得可以用应用在它被暂时关闭时的形式或者基本上用它在它被暂时关闭时的形式重建它。备选地,应用可以已经与操作系统配合存储了它自己的状态信息,并且可以自己访问和实施这样的信息。

图4是利用在计算机过程之间的消息传递提供线程亲合性的系统的概念图。一般而言,系统示出一对过程,该对过程在计算设备上执行并且相互通信以在过程之间传递信息。例如,一个过程可以将消息与关于第二过程将如何对消息做出响应或者反应的信息一起向第二过程传递,并且第二过程一旦它已经对消息做出响应或者反应则可以向第一过程提供确认。更具体地参照图4,系统400包括第一过程402和第二过程404。过程402、404二者可以在单个计算设备以时间重叠方式同时或者基本上同时执行。

第一过程402可以例如是显示一个或者多个文档412的文档管理程序。文档管理程序可以例如是字处理应用或者在Web浏览器中实施字处理应用的Web应用。在某些实例中,Web浏览器可以是操作系统的一部分,其中Web浏览器是用于操作系统的仅有本机应用,并且所有其他应用作为Web应用内的Web应用来操作。

第二过程404示出执行地图应用414。例如,在系统中运行的不同Web应用可以访问基于服务器的地图服务并且可以用公知方式提供信息以用于使用地图地理的图形瓦片来显示地理位置。例如,可以使用别针或者其他图标在地图上指示执行过程402、404的设备的用户的位置。也可以在设备上将单独过程402、404表示为单个Web浏览器的单独标签页,其中过程互为沙盒,包括通过一般防止在不同域之间的通信出现于Web浏览器内的实现方式。

在过程402、404之间传递的箭头集合指示可以从过程之一向另一过程以及相反传达的消息和信息。例如,可以初始地从过程402向过程404发送消息406。例如,消息可以指示将引起用于过程404的显示改变的信息。在这一示例中,例如,消息406可以包括可以用来使地图应用414中显示的地图的不同区域被示出的纬度和经度或者地址描述。

附加地,过程402可以向过程404传递关于过程404将执行涉及消息406的一个或者多个命令的方式的信息。在这一示例中,信息是按照优先级命令408的形式。优先级命令408可以向过程404通知它应当向它的涉及消息406的执行给予的优先级。例如,如果过程402不是时间敏感的过程形式,则优先级命令408可以指示对消息406的响应不会被过程404视为高优先级。

可以根据特定境况向过程404单独或者一起和直接或者间接传递消息406和优先级命令408。例如,当在单个更大消息中一起传递消息406和优先级命令408时,过程404可以解析更大消息以标识消息的消息部分和在消息内嵌入的优先级命令。在其他示例中,可以随消息406包括附加信息,并且可以如对于过程402和过程404被编程用于操作和互操作的方式而言适合的那样标识和处理附加信息。过程402和过程404的互操作性可以由两个过程维持,这些过程符合用于格式化在过程之间的通信的应用编程接口(API)或者其他相似标准。

在某些实现方式中,过程404可以向处理器402传递回消息。一个这样的消息是确认410,该确认410向过程402指示过程404已经完全作用于消息406。在某些实现方式中,确认410可以简单地通过过程404响应于接收消息406向过程402提供回信息而出现。在这一具体示例中,这样的信息可以包括可以向由过程402管理的文档412中自动集成的、由应用404确定的地图区域的图像。

以这一方式,可以通过允许一个过程向另一过程传达附加信息来增强过程间通信,该附加信息包括过程何时是在Web浏览器应用中在沙盒环境中运行的单独窗口或者标签页的部分。这样的通信可以允许第一过程控制另一过程执行某个代码的方式、包括第二过程向代码的执行给予的优先级。作为结果,可以提供在过程之间的更紧密互操作性而仍然维持防止过程之一非法控制或者影响其他过程之一的高安全性水平。

图5是在无状态环境中提供状态信息的系统的概念图。一般而言,系统500使用服务器系统502以代表服务器系统502的特定用户保存关于登录到服务器系统502的各种设备上的浏览器应用的状态的最新状态信息。例如,在浏览器是设备(比如计算设备504)上的操作系统的仅有本机应用时,可以持续向服务器系统502上传并且在服务器系统502中更新状态信息。以这样的方式,如果用户关断计算设备504或者以其他方式移向另一计算设备并且从另一计算设备登录到服务器系统502,则可以向在该另一设备上运行的应用复制用于浏览器应用的状态信息,其中该应用也可以在其中Web浏览器应用为仅有本机应用的操作系统中运行,并且所有其他应用是在浏览器应用内运行的web应用。同样,如果用户关闭一个设备上的会话并且稍后启动相同设备,则这里讨论的技术可以使用在服务器系统而不是在设备本身上存储的状态数据来重建会话。作为结果,系统可以操作而无需用于在设备上存储这样的信息的过量存储器,并且可以在设备之间更容易共享状态信息。

系统500在这一示例中包括通过网络506(比如因特网和有关连接网络)与服务器系统502通信的计算设备504。可以容纳服务器系统502作为向系统500的用户提供各种Web服务的系统中的更大数据中心的一部分。例如,服务器系统502可以包括一个或者多个Web服务器,该Web服务器可以提供用于生成用于在计算设备504上显示的文档的HTML代码。

计算设备504包括多个特定部件,这些部件允许存储用于将通常为无状态应用的浏览应用的状态信息以使得可以在稍后时间在设备504上或者在另一设备上复制计算设备504的状态。例如,如果用户将设备504置于睡眠模式或者关断设备504,则在操作系统允许设备504完全进入睡眠模式之前可以已经向服务器系统502保存了(例如,在用户利用web浏览器执行他的或者她的最后动作时)或者可以向服务器系统502上传了设备504的最当前状态。例如,如果设备504被编程用于每当设备504上的状态信息有改变时上传状态信息改变的指示符,则状态信息可以先前已经存储于服务器系统502。状态信息除了为了重建设备的状态而需要的其他相关信息之外还可以包括用于当前显示于设备上的页面的文档对象模型(DOM)。

现在参照可以在设备504中实施的特定部件,示出浏览器应用510,并且浏览器应用510可以是在设备504上本机执行的仅有应用。可以在设备504上单独存储HTML 508以使得浏览器应用510可以渲染它。HTML 508可以采用多种形式并且可以在一个或者多个示例中被表示为文档对象模型(DOM)树。设备504也可以存储和实施JavaScript 512和JavaScript变量514。例如,在渲染HTML 508时,HTML可以包括指向将在设备504上运行的各种JavaScript程序的指针或者对这些程序的调用。这些程序在执行时可以取回或者生成在程序的操作中需要的变量或者其他信息。

用户接口516也可以被存储于设备上并且可以代表各种参数,这些参数包括在设备504的可视显示器或者屏幕上显示的内容的当前表示。例如,用户界面516可以存储关于浏览器的什么标签页在特定时间打开的信息和/或操作系统是否支持特定类型的应用(比如在浏览器的顶部之上显示的浮动窗格)作为特征状态,以及可以用来描述设备504上的显示的当前状态并且可以进一步用来重构与设备504上的当前显示的信息匹配的显示的其他适当信息。

网页保存应用518也可以被实施于设备504上,并且可以跟踪浏览器510和其他浏览器或者在设备504上执行的其他程序的当前状态。例如,网页保存应用518可以截获对或者来自设备504上的特定部件的调用以确定关于由浏览器510代表的内容或者关于其他信息已经进行的改变。网页保存应用518然后可以使通信由设备504生成并且被引向服务器系统502以指示在浏览器510的当前状态中已经进行的改变。例如,设备504可以向服务器系统502提供如下信息,该信息指示已经打开浏览器标签页并且也提供用于该标签页的URL。

网页保存应用518和设备504上的其他部件也可以具有对图像520的数据存储库的访问权。在某些方面中,图像520简单地是操作系统级图像,比如用于为了运行设备504和重建设备504的状态而需要的一般图标和其他基本信息的图像。图像也可以是网页上的图像或者由设备504上的Web应用使用的图像,并且可以代表网页保存应用518存储图像以用于在应用518中或者由应用518稍后访问。

在一个示例中使用这里描述的系统500,可以捕获并且向服务器系统502上传用户的设备的当前状态。用户然后可以比如通过从家用计算机移向网络计算机来移向另一计算设备并且在用户已经引导另一设备并且可能提供证书以向服务器系统502标识他们自己(人工或者经由另一设备上的保存的cookie)时可以让设备504的完全状态在工作计算机或者其他这样的设备被复制。作为结果,用户可以从一个设置向另一设置切换或者可以回到他们更方便地离开并且可以能够更高效地使用设备504上的应用的地方。例如,如果用户建立应用或者代表用户在浏览器501中执行的Web应用,则用户可能想要保持那些Web应用在稍后时间或者在另一设备运行。例如,用户可能偏好于让电子邮件Web应用、文档编辑应用、地图应用和一般web浏览窗口始终打开,并且状态复制技术可以无论用户何时从一个机器移向另一机器都允许用户这样做而无需人工重建状态。

可以使用系统500中的其他部件来影响当用户提供关于用户是否希望设备进入不活跃状态的模糊标识时设备进入不活跃状态的方式—即用户标识可以被合理地解释为旨在停止使用设备504一段较短时间(例如在5分钟以下或者在10分钟以下)或者一段较长时间(例如多于5分钟,或者多于10分钟,或者多于15分钟)。例如,可以包括定时器522以识别是否已经发生关于是否关停机器的模糊用户标识(例如,盖子已经被关闭,用户已经停止键入或者存在诸如触摸屏输入的其他交互的停止),并且可以开始计数以确定足够的时间何时已经到期,使得可以发生关停序列。延迟模块524可以标识相关变量用于在事件发生时确定延迟时段,并且可以向定时器提供在当前环境下由系统500确定为适当延迟时间的时间。延迟模块524可以考虑上文讨论的因素的变化。同样,学习模块526可以从定时器522获得盖子关闭以及重新打开的时间,并且也可以收集当此类改变发生时关于设备的状态的数据,诸如一天中的时间、设备的地理位置(例如使用GPS包)、设备的定向、在设备上执行的应用、在这些应用中的任何应用中的内容等等。学习模块可以跨越打开和关闭设备的许多不同实例分析此类信息并且学习模块或者单独的服务器系统可以执行静态分析以开发定义在关闭计算机不久之后用户何时有可能或者不可能希望再次使用计算机的模型。系统500使用的特定数据可以总是特定用于用户,或者可以是服从于多个用户并且由服务器系统向设备504提供的数据。两种类型的数据可以是静态的,或者最初可以以默认形式提供,并且随后可以使用学习模块526和针对设备504的用户随时间关于实际活动的观察量来更新。

图6是跨越网络为计算设备提供成像的系统600的概念图(其中这里的图像是系统映像而不是图形图像,比如照片)。一般而言,系统600包括多种设备,比如可以通过网络606(比如因特网)与主控的服务器系统602通信的移动计算设备604。除了提供各种主控的服务(比如搜索引擎服务、地图服务、电子邮件服务、文档管理服务等)之外,主控的服务器系统602也可以与设备604上的操作系统配合以便管理设备604上的操作系统。例如,设备604上的操作系统可以是具有形式为Web浏览器的单个本机应用的操作系统,并且在设备604上执行的其他应用可以作为Web浏览器中的Web应用来这样做。这样的方式可以最小化需要存储于设备604上并且由设备604管理的本机应用的数目。附加地,如这里描述的那样,这样的布置可以简化设备604可以由主机计算机系统602管理的方式。

在这一示例中,将设备604示出为存储图像608。图像可以定义什么部件持久存储于设备604上。例如,图像608可以包括超出设备604上的固件以外的基本操作系统,具体为程序,其中单个程序可以是设备上的操作系统的图像的一部分,该操作系统具有形式为Web浏览器的单个本机应用。一般而言,图像可以用来保证多个计算机具有它们中的部件的共同基线以便提高用于管理和维持这样的计算机的可操作性的能力。具体而言,公司可能想要某一数目的软件部件可用于它的雇员而其他部件不可用,因此它可以定义图像并且可以在首次部署雇员的机器时在机器上安装该图像。

在这一示例内,服务器系统602与设备604和从系统602接收服务的其他设备配合以便维持或者修复设备上的图像。如图中所示,服务器602可以在提供这样的服务时运用多个特定部件。例如,可以提供图像接口610以与远程设备(比如设备604)交互。图像接口610可以例如与设备通信以验证每个设备上的图像仍然准确。例如,在不允许向设备添加应用时,比如在仅有本机应用是浏览器而附加应用是未被持久存储的web应用时,哈希可以由设备604上的本机部件组成,并且可以存储和比较该哈希与每当引导设备604时计算的后续哈希。如果哈希不匹配,则这可以指示已经危及了用于设备604上的操作系统的核心部件。在这样的情形中,设备604可以向图像接口610发送消息,该消息可以使接口610转而使服务器系统602的其他部件执行某些操作。

例如,图像重构器616可以被编程用于标识、收集和组装用于图像的特定部件,该图像可以是用于设备604的替换图像。图像重构器616可以初始地查看图像索引618以标识假设安装于设备604上的图像的形式。例如,可以针对设备604提供用于操作系统的特定修订号。备选地,按照不同制造商或者用户基础的设备可以各自具有定制图像,但是单个制造商提供的线中的设备可以具有共同图像。因此,图像索引618可以能够接收用于设备或者操作设备的公司的制造商和机型的标识符,并且标识将响应于来自这样的设备的请求而构建的图像(其中图像可以从由系统存储的共同可交换部件构建)。

在这一示例中,图像可以由图像片段构建。例如,操作系统的某些级别可以是图像的一部分,并且模块操作系统中的每个级别可以是用于图像的单独片段。同样,共同级别中的不同特征也可以被视为和存储为单独图像片段。图像重构器616或者图像更新器614可以使用来自图像索引618的信息,该信息例如可以将图像标识符映射到组成整个图像的各种片段或者部件。

同样,用户设备映射622也可以执行功能,比如先前针对图像索引618描述的功能,包括通过将特定用户或者用户组或者特定机器类型映射到特定图像。例如,设备的用户可以登录系统602并且可以被提供一个或者多个网页,用户可以在该网页上针对他们想要在他们的设备604上呈现的图像选择特定部件或者片段。可以与用于用户的标识符关联地保存这些部件,从而使得对重建图像的后续尝试可以自动选择由用户先前选择的那些部件。

利用重构的图像,图像更新器614与可以控制这里讨论的在部件之间的一般操作和协调的操作接口612配合可以通过图像接口610和网络606向设备604供应更新的图像。比如在服务器系统602已经通过网络606意外或者有意地擦除(wipe)设备604时,更新可以包括用于设备604的整个图像。

在某些实现方式中,可以运用服务器系统602以从设备604远程擦除图像并且在一些实例中用新图像替换图像。例如,如果设备604被窃,则系统602可以擦除设备604上的图像并且可以使用可以向设备604上的固件中并入的标识符以防止设备604再次获得图像。备选地,设备604可以被系统602远程擦除并且然后可以被恰当所有者恢复,从而使得一旦所有者已经验证设备回到恰当控制中,服务器系统602然后可以向设备604提供新的和更新的图像。

例如,在初始地引导设备604时,公共密钥可以存储于固件的小型只读段中,并且密钥可以用来检查设备604上的内核。可以比如通过创建原有标识符的相同哈希函数运行部件来检验密钥或者不同标识符(比如设备上的操作系统部件中的一个或者多个操作系统部件的哈希版本或者其他哈希版本(在密钥本身是哈希版本时)与在引导时间在设备上的部件。如果未产生匹配,则这可以指示已经危及设备604(因为核心代码在它不应已经改变时已经改变)并且某人已经尝试改变设备600上的本机文件以比如将设备604转变成傀儡(bot)或者用于其他目的。

在操作栈的低级别的通信接口然后可以在用户可以干扰引导序列之前产生与服务器系统602的网络连接,并且可以指示图像中的失败已经出现于设备604上。服务器系统602然后可以使用上文讨论的部件以构建用于设备604的新图像并且向设备604传送新图像。设备604然后可以用新图像替换潜在毁坏的图像并且用新图像操作,包括通过完成危及的图像。

设备604也可以向服务器系统602传递回危及的图像或者表征危及的图像的数据。服务器系统602然后可以分析危及的图像尝试确定什么引起危及。例如,服务器系统602可以比较危及的图像与来自被服务器系统602分配相同初始图像的其他设备的危及的图像。如果标识了多个匹配的危及的图像,则这样的标识可以指示单个实体对抗设备的协调攻击已经出现。

因此,以这里描述的方式,远程重新成像系统600可以提供用于以方便方式更新设备(比如设备604)的机制。例如,由于设备604未持久存储大量代码,因此对图像的频繁更新可以提供对设备604的用户的最少破坏。如上文讨论的使用云发表的图像数据也可以提供用于擦除特定客户端设备并且然后从服务器系统602对它们重新成像的方便方式。附加地,服务器系统602可以能够通过简单地使用一起组成整个图像的可交换部件并且然后将那些部件的组合映射到用户设备映射数据库622中的特定设备来存储用于大量不同用户设备的图像,以便能够从跨越所有设备或者特定大设备组而共同的构建块的相对唯一组合重构特定图像。

图7是提供计算设备的远程监视和控制的系统700的概念图。一般而言,系统700涉及计算设备702,该计算设备702可以是以便携计算设备(比如智能电话或者平板计算机或者膝上型计算机)的形式。计算设备702可以是加载有很轻操作系统的设备,该操作系统比如是仅有形式为Web浏览器的本机应用的操作系统,并且其中以在Web浏览器上运行的Web应用的形式提供其他应用。与上文描述的其他设备一样,设备702可以通过网络708(比如因特网)交互以与台式计算机706中的服务器系统704通信。台式计算机706可以是由与拥有计算设备702相同的人拥有的计算机。例如,用户可以在工作地或者家里具有台式计算机并且可以在路上使用便携计算设备702。这里描述的系统700可以涉及通过使欺诈者或者类似人更难以干扰用于设备702的操作系统并且提供检查用于检查恶意代码或者内容的机会来提供计算设备中的更大安全性。

图中的示例栈示出用于在引导过程期间的较早阶段标识安全漏洞的一个示例机制。栈在这一示例中被相对压缩并且在它的最低级别包括可以在固件中实施的BIOS 716。BIOS可以执行用于BIOS的传统操作并且也可以包括用于与服务器系统704建立有限网络连接的代码。有限连接在这一示例中用来从设备702向服务器系统704(在引导过程已经达到可以容易被黑客的级别之前)或者从服务器系统704向设备702报告恶意活动。作为一个示例,用户可以发现设备702已经被窃并且可以使用计算机706登录到计算机系统704。用户然后可以请求擦除、关停设备702或者它可以拍摄当前用户的图片并且报告设备702的当前位置或者其他适当动作。在下次引导设备702时,BIOS 716可以通过由网络硬件718发送的消息通知服务器系统704,网络硬件718可以包括用于执行无线通信的机制。服务器系统704可以用状态消息做出回应。通常,状态消息可以指示所有事物都好。然而,由于用户已经登录并且报告设备702遗失,所以服务器系统704在这一示例中向设备702指示已经有问题。

服务器系统704如在网络708与设备702之间的返回箭头所示可以提供用于设备702的后续操作的指令。例如服务器系统704可以通知设备702比如在设备702感测到有人在设备702上键入时拍摄设备702的用户的数字图像。已经完全引导的设备702可以自动上传图片而未通知当前用户(假定为窃贼)。附加地,这样的图像可以伴随有指示设备702的当前位置的GPS数据。以这一方式,执法当局可以知道前往何处发现设备702并且也可以具有特定用户在设备702被窃之时使用设备这样的证据。

用于引导设备702的栈的其余部分也相对紧凑。例如在已经使用BIOS代码716来进行基本安全检查之后,可以执行用于操作系统714的代码并且可以起动操作系统的基本部件。作为操作系统起动的部分或者作为相似、但是单独动作的部分,然后可以打开服务712并且使服务712在设备702上可用,并且可以起动应用710、比如用于操作系统714的专用本机Web浏览器应用。

也可以自动和定期、包括在已经出现完全引导之后执行安全检查。例如看门狗定时器702可以在设备702上运行并且可以使设备702上的安全性被定期检查。例如这里所示栈可以在它自己的系统分区中并且在它被更新时可以让功能应用于它的代码以便创建哈希值。在触发看梦定时器720时,如果操作系统是其中这些部件中的每个部件总是在栈中并且除了在更新期间之外不变,则可以对栈在当时包含的无论任何内容执行相似哈希。然后可以比较新哈希与用于栈的存储的哈希(也可以对栈中的少于所有部件执行哈希)。如果值已经改变,则可以通知服务器系统704并且服务器系统704可以随后向设备702发送出信号以比如锁定设备、擦除设备702上的存储装置、重新格式化设备上的存储介质或者执行其他这样的操作。服务器系统704也可以通过备份信道、比如工作电子邮件或者文字消息通知来通知设备702的合法用户。

设备702在向服务器系统704报告问题时可以在发现问题时立即或者更晚时间报告。例如BIOS 716可以生成用于指示设备702的问题的标识符。BIOS 716然后可以允许栈的其他部件被执行以便使设备702有完全特征。一旦完全引导设备702,可以使网络硬件718向服务器系统704提供标识符使得服务器系统704知道和理解设备702具有问题并且使得服务器系统704可以向设备702发送适当消息、比如用于重新引导的消息并且重新引导一个或者多个特定过程而且擦除设备702上的存储介质或者重新格式化设备702上的存储介质。

图8是提供在计算设备上高速缓存集中存储于主控的计算机系统上的数据的系统的概念图。一般而言,系统800使用计算设备802上的存储装置808以用作为用于服务器系统804上的存储装置810的高速缓存。以这样的方式,可以通过在许多境况中允许高速缓存的数据808停留在设备802并且在相对更少实例中需要通过网络806的往返以便加速处理来使设备802的操作更高效和迅速。这里可以如同上文讨论的其他设备实施设备802为具有如下操作系统,对于该操作系统而言Web浏览器是仅有应用并且其他应用作为Web浏览器Web应用来操作。也可以在设备802上实施针对图7讨论的栈。

在该图中,示出设备802存储三个特定值:A、B和C。类似地,服务器系统804以对应方式以A和B形式存储那些值中的两个值。服务器系统804也存储用于D的值。示出存储装置810中的用于A和B的值而在它们周围有括号以指示那些项目为“脏”并且可以未被尝试访问存储装置810的其他设备所信任,因为它们可能已经在存储装置808中被设备802改变。实质上,服务器系统804操作如同设备802已经检查这些值一样——即使另一设备针对它们产生请求,服务器系统804仍然可以查询设备802以获得它们的最新值并且从设备802重获对它们的控制。也如图该图中所示,仅项目B如存储装置808中的项目B上的撇号所示已经在设备802相对于从服务器系统804获得的项目的版本有改变。

在操作之时,设备802可以执行造成用于项目A、B和/或C的值改变的各种操作。在适当时间点,设备802可以向服务器系统804提交这样的改变,该服务器系统又可以更新存储装置810中的用于项目的值。设备802也可以指示使用项目来完成它,并且作为响应,服务器系统804可以解除将项目标记为系统800中的受控类型的值。以这一方式,可以在设备802上运行的Web应用与用于服务器系统804的数据存储库之间方便地高速缓存数据。

图9是用于提供计算设备的延迟锁定的过程的流程图。一般而言,该过程可以在被布置成用于在用户比如通过关闭翻盖设备的盖子或者通过按压写字板设备上的按钮或者其他部件以将它置于安全睡眠模式来关闭设备时延迟从活跃模式转向安全或者锁定模式、比如睡眠模式的计算设备上执行。在这一示例中,安全睡眠模式是如下模式,用户在该模式中必须录入口令或者执行另一相似操作以解锁设备以便再次使用它。一般而言,这样的设备称为被锁定,因为它除了简单地恢复接通设备之外还需要用于重新激活的活跃输入,并且还花费了大量时间被激活(例如,多于若干秒)。

这里描述的过程有意地引入的延迟可以允许用户在他们指示他们想要设备进入睡眠或者锁定模式之后在用户在完全将它置于睡眠模式之前快速改变他们的想法并且需要再次使用设备的情况下在短时间段内返回到设备。在延迟被适当定时并且短暂时,这样的延迟可以向过程引入最少安全负担,因为恰当和原有用户可能贯穿延迟时段停留在设备附近使得擅入者不能在设备向锁定模式转变之前拿走它。

该过程始于框302,其中它开始监视计算设备以确定用户是否已经指示它应当执行特定动作。在框304,该过程接收关于锁定时间的用户输入。例如用户可以配置他们的计算设备以便具有在将设备改变成睡眠模式之前的可以针对特定用户而变化的延迟。例如在这一实例中,用户可以标识9秒的延迟以便提供用于用户改变他的或者她的想法并且重建设备的活跃状态的充分时间。响应于用户的关于用于锁定设备的延迟时间的输入,在框506,该过程调整用于设备的锁定时间参数。这样的参数可以持久存储于设备上使得从一个会话到另一会话,用于锁定设备的延迟时段相同,并且用户可以开始感觉舒适,因为如果时间尚未到期,则他们将能够使设备快速复活。

在框908,该过程标识设备已经比如通过用户关闭设备上的壳盖以推动设备上的功率开关或者通过用户直接按压用于关断设备或者将它移入睡眠模式的开关从打开配置移向关闭配置。这里讨论的相关转变是如下转变,该转变需要大量用户输入以返回到用于设备的活跃可操作模式使得它多于简单地将设备从关闭配置移向打开配置,这可以关断屏幕、但是容易可逆,因为未锁定设备并且大量部件尚未响应于模式改变而掉电。然而为了向用户给予已经接收他们的输入这样的反馈,即使正在延迟将设备移向需要大量用户输入来恢复的睡眠模式,仍然可以在设备从打开配置移向关闭配置之后立即闪烁设备上的屏幕。

在框910,该过程启动与在时间超速到期时锁定设备连结的关停定时器。时间参数在这一实例中是用户在框904选择的并且设备在块906应用的参数。例如设备可以一旦它被关闭就闪烁屏幕并且启动9秒倒计数定时器、但是可以直至定时器到期才移向不同模式。因此在912,该过程反复检查以确定设置的定时器是否已经到期。如果它未到期,则该过程在块914检查是否已经打开设备。如果已经打开设备,则该过程返回到在块902监视计算设备。随后,用户可以设置输入用于锁定定时器的新时间或者可以再次将设备从打开配置移向关闭配置并且因此重复这里讨论的动作中的一些或者所有动作。

如上所述,定时器应用的特定量的时间可以基于设备和周围环境的状态以及用户随时间使用设备的方式而以多种不同方式改变。例如,如上所具体解释的那样,在输入进入锁定模式时可以测量多个参数,并且可以结合多个参数以计算针对定时器的延迟时段。并且可以通过(经由上文讨论的各个变量)将在锁定输入时设备的状态与针对用户用多长时间来启动使用该设备或者再次尝试使用该设备(例如由于需要用户向锁定设备中输入密码)进行相关而随时间追踪用户的实际使用。

一旦定时器已经到期,该过程然后在框916锁定设备。设备的这样的锁定除了需要用户解锁输入以将设备带回到活跃状态之外也可以涉及到减缓设备上的特定处理器或者完全去除供给它们的功率、关断显示屏幕、关断空气流通扇和汲取电功率的其他项目并且等待用户重新激活和解锁设备。

图10是用于管理操作系统中的上下文对象的过程的流程图。一般而言,该过程涉及到关联操作系统中的对象与元数据,该元数据描述在创建那些对象时和/或当在设备上改变或者另外操控它们时在它们周围的上下文。

该过程始于1002,其中在操作系统中实例化对象。对象可以采用多种形式并且这里出于示例目的而为可以在字处理应用中编辑的字处理文档。在框1004,该过程标识上下文元数据,该上下文元数据定义其他打开对象在启动时间的状态。例如用户可以让Web浏览器向特定URL打开并且该过程可以存储用于Web浏览器和用于URL的标识符。这样的上下文元数据如果它指示用户在查看网页、然后决定在字处理程序中关于网页做笔记则可以是相关的。因此,它可以有益于创建和存储在浏览器应用中的网页URL与字处理应用中的字处理文档之间的相关性。并且作为结果,在框1006存储上下文元数据,并且在框1008存储关于实例化的对象的信息。

在框1010,可以在某一时间之后、比如在用户向字处理文档中键入信息并且完成编辑文档之后关闭对象,并且随后可以比如在用户想要编辑文档更多一些时接收用于打开对象的请求。在重新打开对象时,各种其他应用可以在当时运行,并且它们可以再次与用户打开这一文档的原因相关。同样例如浏览器可以向与用户相关的话题并且通过延伸向作为对象的文档打开。

作为结果并且为了捕获这样的信息,在块1012,该过程用关于打开对象而不是实例化的对象的信息更新上下文元数据。因此,可以在用户连续打开、关闭和操控对象时创建、添加到和更新用于对象的元数据贮存库,该元数据贮存库可以是代表对象本身的域文件的部分——其中向它添加的数据代表对象在如在相同时间执行的其他应用定义的每个境况中的上下文和关于那些其他应用在做什么的信息。因此在框1014中,用户经历关闭和打开对象的其他循环,并且更新元数据。

这样的上下文元数据可以在它被确定为充分指示用户的意图时最终用来执行自动动作。例如在用户打开文档时系统可以向浏览器中的搜索引擎自动执行搜索并且可以随文档显示搜索结果——如果上下文元数据的分析指示用户通常在打开文档时执行搜索(例如,如果文档跟踪用于公司的估价并且搜索用于公司的当前估价使得他或者她可以向文档中剪切和粘贴它)。

图11是用于维持计算设备上的存储器控制的过程的流程图。该过程1100可以例如由系统、比如系统400执行。然而另一系统或者系统组合可以用来执行过程1100。

参照图11,过程1100图示应用在用于管理计算设备上的潜在存储器短缺的示例方法中的生命周期。该方法始于步骤1105,其中执行应用。例如操作系统可以响应于用户请求或者在另一应用要求时从持久存储器加载应用。接着在步骤1110,系统400确定应用的状态是否已经改变。在一些实现方式中,应用监视器220可以记住应用何时取得聚焦、何时已经创建新应用或者何时已经终止应用。在一个备选实施方式中,除了上文提到的改变之外或者取代这些改变,应用管理器还可以监视用系统的用户输入(例如按键、鼠标电极、触笔或者手指敲击等)以确定应用何时已经改变状态。

如果未检测到状态改变,则该方法继续步骤1115,其中系统确定储存器短缺是否存在。如果系统确定系统存储器短缺确实存在,则该方法继续下文讨论的步骤1130。然而如果存储器短缺未存在,则重复步骤1110。

一旦检测到状态改变,该方法继续步骤1120。在步骤1120,生成和存储状态信息。由于可以在任何时间取消在某些状态中的应用,所以在应用监视器检测到状态改变之后,应用监视器可以通知应用生成并且在持久存储器中存储状态信息。在示例实现方式中,状态信息可以包括用来重建应用如同应用在它被终止之前一样的信息。例如状态信息可以包括但不限于应用的窗口在显示器上的位置、用户对应用文件进行的任何改变和用户的优选查看模式。一旦生成状态信息,应用可以向持久存储器存储状态信息。

在生成和保存状态信息之后,该方法继续步骤1115,其中系统确定存储器短缺是否存在。如果系统确定存储器已经用完,则内核可以通知应用终止器通过取消一个或者多个应用来使存储器可用。在备选实现方式中,内核可以确定存储器是否变得稀缺。内核可以通过比较来自应用的存储器请求与当前可用存储器来检测迫在眉睫的存储器短缺。内核也可以确定可用存储器数量是否低于预定阈值。在检测到短缺时,内核可以采取步骤以释放足够存储器以保证选择的应用将具有充分存储器以继续正常操作。

如果系统已经确定需要存储器,则该方法继续步骤1130,其中应用终止器确定应用是否为最低排行应用、即应用是否在应用分级的底部。如果应用未在分级224的底部,则该方法返回到步骤1110,其中系统监视应用的状态改变。如果应用在分级的底部,则该方法继续步骤1140,其中取消应用。在一些实现方式中,应用终止器确定应用是否为程序栈中的最后应用。如果是这样,则取消应用和任何关联线程。

在步骤1150,系统确定是否应当恢复应用。在示例实现方式中,如果系统检测到用户尝试返回到取消的应用,则该方法返回到步骤1105,其中使用存储的状态信息来恢复应用。例如系统可以检测用户尝试关闭或者最小化覆盖取消的应用的窗口。作为响应,系统400从持久存储器加载用于应用的状态信息并且使用存储的信息以恢复应用。

如果系统400未检测到尝试与取消的应用交互,则该方法返回到步骤1150,其中系统400再次确定是否恢复应用。

图12是用于用在计算机过程之间的消息传递提供线程亲和性的过程的流程图。一般而言,这里示出该过程为出现于在单个计算机上执行的过程之间。例如两个过程可以代表在设备上运行并且被布置用于相互沙盒以便保护设备41上的存储器免于其他应用的两个不同应用。该过程始于块1202,其中实例化每个过程。

在块106并且在过程已经运行一段时间之后,过程可以确定它需要过程B的动作或者需要从过程B接收回信息。并且作为结果,在框106,过程A传递具有信息的消息,该信息定义过程B需要代表过程A对多快工作于消息。因此,在块108,过程B接收消息并且在块110从优先级信息分离消息的正文。过程B然后使用优先级信息或者可以从过程A随消息传递的其他信息以确定如何处置消息。例如过程A可能需要关于计算机设备的当前状态的报告以便完成它的工作,并且如果等待信息以这样完成将明显减缓用户立即需要的过程,则过程A可以提供信息,该信息可以过程B使它的操作优先于所有其他操作。因此在框1212,过程B可以基于优先级信息改变它的聚焦。例如如果过程B先前经过长久、但是非时间敏感的过程工作,则它可以保存用于这样的活动的状态信息并且可以搁置它的工作直至过程B已经对过程A做出响应。以这一方式,过程可以用方便方式相互来回通信以便提供针对通过过程产生的请求的更聚焦响应。

图13是用于提供无状态环境中的状态信息的过程的流程图。一般而言,该过程涉及到跟踪应用、比如web浏览器的窗格或者在web浏览器中运行的一个或者多个web应用的状态改变并且向存储关于那些改变的信息的服务器系统传递这样的信息。针对相同用户而登录的以后计算机然后可以从服务器系统获得状态信息并且可以相应地重建上次保存的状态。

该过程始于框1302,其中用户以正常方式操作计算设备。计算设备可以执行操作系统,该操作系统执行形式为Web浏览器的单个本机应用并且其他应用在Web浏览器以内运行、比如作为Web应用来运行。浏览器中的每个窗格和每个Web应用可以出于安全目的而在它自己的隔离过程中被沙盒。

在块1304,该过程定期或者响应于设备上的状态改变而保存设备上的一个或者多个活跃DOM的图像。这样的活动可以出现于相关状态是网页的当前状态、比如用户是否与网页上的活跃内容(例如JavaScript创建的内容)交互时。取代DOM信息或者除了该信息之外也可以包括其他状态信息以便完全捕获设备的和设备中的不同过程的当前状态。例如可以维持和更新设备上的每个活跃过程的列表并且也可以更新定义那些过程的当前状态的特定参数。这样的信息可以在相同时间或者以后向服务器上传,该服务器向计算设备提供信息,并且服务器系统可以组织信息使得可以以后重构设备的上次保存的状态。

在块1308,针对这样的重构的请求出现。例如用于向与第一设备相同的用户经由服务器系统注册的设备的引导过程可以自动到达服务器系统以获得用于注册的设备的用户账户的最新近状态信息。服务器系统然后可以访问用于特定设备的存储的图像(其中用户或者用户组)可以定义用于他们的设备的图像,设备将在它们被引导时自动拍摄这些图像。设备也可以使用与图像的部件关联的数据以重构网页和其他对象到它们在用户上次使用向用户的与服务器系统的账户注册的计算机时的状态,无论更早的计算机和更晚的计算机是否系统或者互不相同。

在框1314,该过程显示页面和其他对象而它们的先前保存状态不变。

图14是跨越网络为计算设备提供成像的过程的流程图。一般而言,这里示出该过程出现于与主控的服务器系统通信的一个或者多个客户端设备上。仅出于示例目的而提供在这一示例中示出的特定工作划分,并且其他动作可以在不同实现方式中由相似部件或者由不同部件进行。这里所示过程主要涉及到存储用于构造图像的图像数据,这些图像各自定义客户端设备将在它被引导时如何操作。在主控的中心服务器系统存储和构造图像,并且在引导时间向客户端设备提供图像数据。

该过程始于框1402,其中多个不同客户端设备以普通方式由设备的用户操作。每个用户可以比如在框1404在他们的特定设备上为图像建立参数并且可以向主控的服务器系统提交设备图像,该服务器系统可以在框1406接收图像。例如用户可以想要在他们引导他们的设备时加载特定应用(比如Web应用)并且可以想要以特定方式设置设备上的设置。

在框1408,服务器系统比较用于特定设备的图像与在服务器系统的存储的数据。例如服务器系统可以存储一起组成各种不同图像的部件并且可以简单地存储每个部件的一个副本和将部件映射到用于客户端设备的每个图像的基本文字或者相似文件。例如数的二进制列表可以用来标识整个图像,其中列表中的每个位置可以标识可以存在于或者可以未存在于特定图像中的特定部件,并且其中针对特定设备在该位置存在一可以向服务器系统指示设备在它的图像中具有特定部件。因此例如在框1410,该过程用更小同义词替换设备图像的部分。在刚才描述的示例中,同义词可以是简单位值,而在其他实现方式中,同义词可以是对于系统中的特定部件而言唯一的文字数字标识符。

在框1412,服务器系统随设备标识符保存减少大小的图像,该设备标识符指向属于特定图像的设备。例如系统可以在一个位置存储用于特定部件的代码并且可以与上文讨论的二进制流一起并且在其他位置存储对于设备而言唯一的设备标识符。

在以后时间,特定设备可以如框1414所示请求图像,并且服务器系统可以在块1416访问用于该设备的图像并且扩展它。作为一个示例,设备可以每当它被引导时请求图像并且可以在它关断时未本地存储它的图像。这样的扩展可以涉及到遍历二进制列表、比如上文随服务器系统讨论的二进制列表并且收集其中列表中的每个值是一而不是零的部件。也可以使用其他用于收集部件或者另外构建用于设备的图像的技术。

在框1418,服务器系统向客户端设备传输回它已经构建的图像,在框1420,客户端设备加载图像并且允许设备由设备的用户完全操作。并且使用这里讨论的技术,特别是在大量设备关于主控的系统操作,可以在系统以跨越系统减少大小的方式存储图像数据。

图15是用于提供计算设备的远程监视和控制的过程的流程图。一般而言,该过程通过在操作系统栈中的低级别进行安全检查以便减少黑客在检查出现的级别以下的级别进入栈来为客户端计算设备提供安全性。

该过程始于框1502,其中用户接通设备。在框1504,设备访问它的引导固件并且以熟悉方式开始引导过程。固件可以是bios的部分或者设备上的其他结构。固件也可以包括用于在设备与主控的服务器系统之间的无线传输的机制,并且在框1506,该过程使用这样的功能以向主控的服务器系统发送消息。消息可以视为用于标识设备自从设备上次向主控的服务器系统报到起的境况改变的请求。在框1508,服务器系统接收消息并且标识设备和设备的参数。例如主控的服务器系统可以使用设备标识符以确定与设备相关的任何事件是否已经出现、比如设备的用户报告设备已经被窃并且应当被封锁或者擦除或者重新格式化它。附加地,设备的标识可以如关于图14讨论的那样用来标识用于设备的图像并且开始收集部件,这些部件用于向设备提供回图像用于进一步引导设备。

在框1510,服务器系统访问关于设备的存储的信息、比如紧接上文关于设备的用户的报告和设备是否已经被窃而讨论的信息。在框1512,服务器系统生成和传输用于将对设备执行的动作的数据。如关于图14讨论的那样,这样的动作可以包括设备将在引导时执行的提供用于设备的图像。这样的动作也可以涉及将关于设备实施的安全性。例如,如果引导固件发送的消息指示自从最新近更新起已经改变设备上的栈的部分,则将对设备执行的动作可以包括擦除设备或者重新格式化设备上的存储结构、比如闪存或者硬驱动。可以响应于来自设备的用户的、设备已经被窃这样的外部指示来执行相似动作。因此,对设备的动作可以响应于在引导时间从设备接收的信息或者响应于未从设备接收、但是从外部源、比如调入报告的用户接收的其他信息。

在框1514,客户端设备接收数据和指令,并且在框1516,客户端设备使用引导固件以处理已经接收的数据和/或执行已经接收的指令。可以接收的其他类型的指令包括用于报告回关于设备的信息使得可以恢复设备的指令。例如设备可以如上文讨论的那样使用机载相机来拍摄数字照片尝试捕获使用设备的窃贼的图像并且可以将照片与指示设备的位置的GPS数据一起传输回。

图16是用于提供在计算设备上高速缓存集中存储于主控的计算机系统上的数据的过程的流程图。一般而言,该过程指示用于基于web的计算设备如何可以一般存储于主控的服务器系统、但是也可以向与主控的服务器系统通信的客户端设备上高速缓存并且依赖于主控的服务器系统用于操作设备上的应用,这些应用包括Web浏览器中的Web应用。

该过程始于块1602和1604,其中客户端设备和主控的服务器设备二者存储用于设备的基于账户的信息。例如每个设备或者系统可以存储用于设备的用户ID,该用户ID将设备相关到与主控的服务器系统的特定用户账户。在框1606,客户端设备请求服务器侧信息,并且在框1608,主控的服务器系统获得请求的信息并且向客户端设备传输它。主控的服务器系统也可以存储用于标识将来将对请求信息进行的改变的信息。在某些实现方式中,主控的服务器系统可以假设将编辑向客户端设备提供的用于编辑的任何信息使得主控的服务器系统可以在向客户端设备传递这样的数据时标记或者至少临时标记它为脏。在框1612,客户端设备接收请求的信息,并且响应于用户与客户端设备的交互,它可以修改请求的信息。在适当时间,从客户端设备向主控的服务器系统传输回修改的信息。这样的适当时间可以由向服务器系统定期提供回信息的时钟或者由特定事件——比如用户选择应用中的定义的控件——确定。

在框1616,服务器系统取回修改的信息,并且在框1616,它使用存储的信息以标识对请求的信息的改变。例如系统可以比较从客户端设备接收回的信息与先前标记为脏的信息以确定是否已经对向客户端设备给予的信息进行任何相关改变。在框1620,服务器系统可以用信息的更新的子集替换子集。因此例如在系统确定没有在系统上的脏数据与从客户端设备接收回的数据之间的匹配时,服务器系统可以插入来自客户端设备的改变的信息。

图17示出可以随这里描述的技术使用的通用计算机设备1700和通用移动计算机设备1750的示例。计算设备1700旨在于代表各种形式的数字计算机,比如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、主机和其他适当计算机。计算设备1750旨在于代表各种形式的移动设备,比如个人数字助理、蜂窝电话、智能电话和其他相似计算设备。这里所示部件、它们的连接和关系及其功能意味着仅为示例性而并非意味着限制在本文中描述和/或要求保护的本发明的实现方式。

计算设备1700包括处理器1702、存储器1704、存储设备1706、连接到存储器1704和高速扩展端口1710的高速接口1708以及连接到低速总线1714和存储设备1706的低速接口1712。使用各种总线来互连并且可以在共同母板上装配或者以如适当的其他方式装配部件1702、1704、1706、1708、1710和1712中的每个部件。处理器1702可以处理用于在计算设备1700内执行的指令,这些指令包括在存储器1704中或者在存储设备1706上存储的用于在外部输入/输出设备(比如耦合到高速接口1708的显示器1716)上显示用于GUI的图形信息的指令。在其他实现方式中,多个处理器和/或多个总线可以如适当的那样与多个存储器和存储器类型一起使用。也可以连接多个计算设备1700,其中每个设备提供必需操作的部分(例如,作为服务器组、成组刀片服务器或者多处理器系统)。

存储器1704存储计算设备1700内的信息。在一个实现方式中,存储器1704是一个或者多个易失性存储器单元。在另一实现方式中,存储器1704是一个或者多个非易失性存储器单元。存储器1704也可以是另一形式的计算机可读介质,比如磁盘或者光盘。

存储设备1706能够提供用于计算设备1700的海量存储。在一个实现方式中,存储设备1706可以是或者包含计算机可读介质,比如软盘设备、硬盘设备、光盘设备或者带设备、闪存或者其他相似固态存储器设备或者如下设备的阵列,这些设备包括存储区域网络或者其他配置中的设备。可以在信息载体中有形地体现计算机程序产品。计算机程序产品也可以包含在被执行时执行一种或者多种方法(比如上文描述的方法)的指令。信息载体是计算机或者机器可读介质,比如存储器1704、存储设备1706、在处理器1702上的存储器或者传播的信号。

高速控制器1708管理用于计算设备1700的带宽密集操作,而低速控制器1712管理更低带宽密集操作。这样的功能分配仅为示例性。在一个实现方式中,高速控制器1708耦合到存储器1704、显示器1716(例如,通过图形处理器或者加速器)并且耦合到可以接受各种扩展卡(未示出)的高速扩展端口1710。在该实现方式中,低速控制器1712耦合到存储设备1706和低速扩展端口1714。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口可以例如通过网络适配器耦合到一个或者多个输入/输出设备(比如键盘、指点设备、扫描仪)或者联网设备(比如交换机或者路由器)。

如图中所示,可以用多个不同形式实施计算设备1700。例如,可以将它实施为标准服务器1720或者多次实施于成组这样的服务器中。也可以将它实施为架式服务器系统1724的一部分。附加地,可以在个人计算机(比如膝上型计算机1722)中实施它。备选地,来自计算设备1700的部件可以与移动设备(未示出)(比如设备1750)中的其他部件组合。这样的设备中的每个设备可以包含计算设备1700、1750中的一个或者多个计算设备,并且整个系统可以由相互通信的多个计算设备1700、1750组成。

计算设备1750包括处理器1752、存储器1764和输入/输出设备(比如显示器1754、通信接口1766和收发器1768)以及其他部件。设备1750也可以具有用于提供附加存储的存储设备,比如微驱动或者其他设备。使用各种总线来互连部件1750、1752、1764、1754、1766和1768中的每个部件,并且可以在共同母板上或者以如适当的其他方式装配部件中的若干部件。

处理器1752可以执行计算设备1750内的指令,这些指令包括在存储器1764中存储的指令。可以将处理器实施为包括分离以及多个模拟和数字处理器的芯片的芯片集。处理器可以例如提供设备1750的其他部件的协调,比如控制用户界面、由设备1750运行的应用和设备1750的无线通信。

处理器1752可以通过控制接口1758和耦合到显示器1754的显示器接口1756与用户通信。显示器1754可以例如是TFT LCD(薄膜晶体管液晶显示器)或者OLED(有机发光二极管)显示器或者其他适当显示器技术。显示器接口1756可以包括用于驱动显示器1754以向用户呈现图形和其他信息的适当电路装置。控制接口1758可以从用户接收命令并且转换它们以用于向处理器1752提交。附加地,可以提供与处理器1752通信的外部接口1762以便实现设备1750与其他设备的近区域通信。外部接口1762可以例如在一些实现方式中提供有线通信或者在其他实现方式中提供无线通信,并且也可以使用多个接口。

存储器1764存储计算设备1750内的信息。可以将存储器1764实施为一个或者多个计算机可读介质、一个或者多个易失性存储器单元或者一个或者多个非易失性存储器单元中的一项或者多项。也可以提供扩展存储器1774并且该扩展存储器可以通过可以例如包括SIMM(单列直插存储器模块)卡接口的扩展接口1772连接到设备1750。这样的扩展存储器1774可以提供用于设备1750的额外存储空间或者也可以存储用于设备1750的应用或者其他信息。具体而言,扩展存储器1774可以包括用于实现或者补充上文描述的过程的指令并且也可以包括安全信息。因此,例如,可以提供扩展存储器1774作为用于设备1750的安全模块并且可以用允许安全使用设备1750的指令对扩展存储器1774编程。附加地,可以经由SIMM卡将安全应用与附加信息一起提供,比如以不可黑客方式将标识信息放置于SIMM卡上。

如下文讨论的那样,存储器可以例如包括闪存和/或NVRAM存储器。在一个实现方式中,在信息载体中有形地体现计算机程序产品。计算机程序产品包含在被执行时执行一种或者多种方法(比如上文描述的方法)的指令。信息载体是计算机或者机器可读介质,比如存储器1764、扩展存储器1774、在处理器1752上的存储器或者可以例如通过收发器1768或者外部接口1762接收的传播的信号。

设备1750可以通过可以在必要时可以包括数字信号处理电路装置的通信接口1766无线地通信。通信接口1766可以在各种模式或者协议(比如GSM语音呼叫、SMS、EMS或者MMS消息接发、CDMA、TDMA、PDC、WCDMA、CDMA2000或者GPRS以及其他模式或者协议)之下提供通信。可以例如通过射频收发器1768出现这样的通信。附加地,可以比如使用蓝牙、WiFi或者其他这样的收发器(未示出)出现短程通信。附加地,GPS(全球定位系统)接收器模块1770可以向设备1750提供附加的与导航和位置有关的无线数据,该数据可以如适当的那样由在设备1750上运行的应用使用。

设备1750也可以使用音频编码解码器1760来可听地通信,该编码解码器1760可以从用户接收口述信息并且将它转换成可用数字信息。音频编码解码器1760可以同样地比如通过例如在设备1750的头戴式受话器中的扬声器生成用于用户的可听声音。这样的声音可以包括来自语音电话呼叫的声音、可以包括记录的声音(例如,语音消息、音乐文件等)并且也可以包括由在设备1750上操作的应用所生成的声音。

如图中所示,可以用多个不同形式实施计算设备1750。例如,可以将它实施为蜂窝电话1780。也可以将它实施为智能电话1782、个人数字助理或者其他相似移动设备的一部分。

可以在数字电子电路装置、集成电路装置、特殊设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或其组合中实现这里描述的系统和技术的各种实现方式。这些各种实现方式可以包括在可编程系统上可执行和/或可解译的一个或者多个计算机程序中的实现方式,该可编程系统包括可以是特殊或者通用的至少一个可编程处理器、至少一个输入设备和至少一个输出设备,该可编程处理器被耦合用于从存储系统接收数据和指令以及向存储系统传输数据和指令。

这些计算机程序(也被称为程序、软件、软件应用或者代码)包括用于可编程处理器的机器指令并且可以用高级过程和/或面向对象的编程语言和/或用汇编/机器语言来实施。如这里所用,术语“机器可读介质”、“计算机可读介质”指代用来向可编程处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑器件(PLD)),该可编程处理器包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”指代用来向可编程处理器提供机器指令和/或数据的任何信号。

为了提供与用户的交互,可以在计算机上实施这里描述的系统和技术,该计算机具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器)以及用户可以用来向计算机提供输入的键盘和指点设备(例如,鼠标或者跟踪球)。其他种类的设备也可以用来提供与用户的交互;例如,向用户提供的反馈可以是任何形式的感官反馈(例如,可视反馈、听觉反馈或者触觉反馈);并且可以用包括声音、话音或者触觉输入的任何形式接收来自用户的输入。

可以在计算系统中实施这里描述的系统和技术,该计算系统包括后端部件(例如,作为数据服务器)或者包括中间件部件(例如,应用服务器)或者包括前端部件(例如,具有如下图形用户界面或者Web浏览器的客户端计算机,用户可以通过该图形用户界面或者Web浏览器与这里描述的系统和技术的实现方式交互)或者这样的后端、中间件或者前端部件的任何组合。系统的部件可以由任何数字数据通信形式或者介质(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)、广域网(“WAN”)和因特网。

计算系统可以包括客户端和服务器。客户端和服务器一般相互远离并且通常通过通信网络交互。借助在相应计算机上运行并且相互具有客户端-服务器关系的计算机程序产生客户端和服务器关系。

已经描述了许多实施方式。然而,将理解,可以进行各种修改而不脱离本发明的精神实质和范围。例如,已经关于电视广告描述了本文的许多内容,但是也可以解决其他形式的将来的基于查看者资格的广告,比如电台广告和在线视频广告。

附加地,在图中描绘的逻辑流程无需所示的特定顺序或者依次顺序以实现所需结果。附加地,可以提供其他步骤或者可以从描述的流程消除步骤并且可以向描述的系统添加或者从描述的系统去除其他部件。因而,其他实施方式在所附权利要求的范围内。

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