用于跨域协调进程和内存管理的系统和方法_2

文档序号:9524051阅读:来源:国知局
操作系统中用于进程管理 的逻辑实体,W管理由该操作系统中的另一进程启动或另一进程使用的进程。然而,管理与 源进程不同的操作系统中的进程的使用变得更加复杂。在运种环境中,源进程本身可W处 于具有主机操作系统(在本文中称作源操作系统)的一个域中,并且可W向具有不同操作 系统(在本文中称作目标操作系统)的另一域请求资源。运些资源可W进而使目标操作系 统启动进程或分配附加内存。然而,因为目标操作系统不了解在源操作系统中运行的进程, 因此目标操作系统不能获知目标进程何时适于关闭。
[0031] 此外,可能潜在地存在多个源操作系统,运些源操作系统均具有使用目标操作系 统的资源的进程。
[0032] 因此,根据本公开的一个实施例,将代理进程插入每一个操作系统中W允许跨域 进程清除。现在参照图3。
[0033] 在图3的示例中,域310包括源进程312,源进程312需要来自域320中的目标进 程330的资源。域320包括逻辑进程管理器322,该逻辑进程管理器322不了解源进程312。
[0034] 因此,根据本公开,可W将代理进程340插入域320的目标操作系统中。代理进程 340的一个工作是代表设备上的其他操作系统打开与诸如内容提供方等的资源的连接。因 为代理进程340是目标域320中的真实进程,因此目标域320可与操作系统跟踪其他 进程所打开的资源的方式类似的方式来跟踪代理进程340和代理进程340具有的无论什么 资源,而无需对目标域320进行任何改变。
[0035] 根据本公开的一个实施例,代理进程340可W被标记为不允许关闭,即使系统正 在低内存运行也是如此。运确保了作为目标的资源不会被撤走,运是因为源进程可能例如 正在前台并且与用户交互。
[0036] 其他进程(示出为进程350至352)也可W在域320中操作并且也可能需要来自 目标进程330的资源。如上所述,进程管理器322^W跟踪正在使用进程330的所有进程, 并且可W决定目标进程330何时变得适于清除。代理进程340落入可W具有针对目标进程 330的句柄的进程组内。
[0037] 在一个实施例中,每一个域可W具有代理进程,W允许其他域访问该域内的进程。 因此,在图3的示例中,代理进程360存在于域310的操作系统中,并且可W用于代表计算 设备上的其他操作系统打开与诸如内容提供方等的资源的连接。
[003引仅为了说明的目的,图3的示例包括两个域。在其他实施例中,多个域可W通过代 理进程340访问域320上的资源。
[0039] 现在参照图4,图4示出了设备包括多个域(每一个域包括单独的操作系统)的实 施例。当源操作系统希望向目标操作系统请求资源时,源操作系统将要求目标操作系统中 的代理应用代表它请求该资源。因此,如图4所示,源进程410在第一域中,并且想要来自 第二域中的目标进程416的资源。源进程410通过第二域中的代理进程412进行通信。代 理进程412与第二域414进行交互。
[0040] 源进程410通过与代理进程412进行通信(如消息420所示)来向目标操作系统 请求资源。例如,消息420的形式可W是针对域中的应用程序接口(API)的调用。例如,如 果在单个域内,则消息420可W简单地利用常规API并且具有"content://contacts"的形 式。另一方面,如果请求在域之间,则可W将统一资源指示符扣RI)加至该消息。因此,消 息可W具有"content://domainx/contacts"的形式,其中,"域X"是目标进程所在的域的 URI。
[0041] 一旦代理进程412接收到该请求,代理进程412就向目标操作系统414请求资源 (如消息422所示)。
[0042] 在一些实施例中,目标操作系统然后可W检查其自己的内部注册表W确定哪一个 进程或应用支持该资源,并且可W使用例如动态目标进程标识符来启动适当的目标进程 (如果该进程还未运行的话)(如箭头430所示)。此外,操作系统414然后可W向代理进 程412返回针对目标进程416的句柄(如消息440所示)。
[0043] 然后,代理进程412将向源进程410返回针对目标进程的句柄(如消息442所示)。
[0044] 然后,源进程410可W使用在消息442中提供的句柄来与目标进程416进行交互。
[0045] 在一个实施例中,代理进程412可W保存它当前具有其句柄的进程表。因此,例 如,诸如下表1等的表可W由代理进程412保存。
[0046] 阳047] 表1:代理进程中的去例性进表
' '
[0048]如上表1所示,代理进程保存源进程的进程标识符的列表。本领域技术人员将理 解的是,进程标识符仅在源进程的域中有意义,并且在目标域中没有意义。因此,表1还包 括源进程的域的标识符。最后,表1包括目标操作系统中的资源的标识符。在表1的最后 一列中示出的标识符标识了目标域中的资源。
[0049] 在其他实施例中,也可W在代理进程412的列表中存储更多信息,并且表1仅是示 例。
[0050] 通过使用诸如表1等的表,代理进程412可W向操作系统414告知它何时完成对 资源的使用。代理进程412可W通过多种方式获知它完成对资源的使用。例如,在图4的 实施例中,源进程410可W向代理进程412提供关于它完成对资源的使用的显式指示。在 图4的实施例中通过消息450示出了此类消息。
[0051] 一旦代理进程412接收到消息450,如果目标域之外没有其他进程正使用由资源 标识符标识的资源,则代理进程412就可W使用消息452向操作系统414告知它完成对资 源的使用。
[0052] 然后,操作系统414可W检查W确定目标域本地的其他进程是否正在使用目标进 程,如果否,则域414可W决定停止进程并且对目标进程所使用的运些资源进行清除,如箭 头454所示。 阳化引在上表1的示例中,如果来自"域X"的具有标识符"12345"的源进程向代理进程 412告知它完成对资源标识符"45611"的资源的使用,则代理进程412可W确定来自"域Z" 的进程"12745"仍然正在使用该进程,因此将不会发送消息452。相反,根据上表1,如果来 自"域X"的进程"12486"向代理进程412告知不再需要资源标识符"45612",则代理进程 412检查该表,并且因为没有它所了解的其他进程在使用该资源,因此可W发送消息452。 [0054] 在一些实施例中,代理进程可能需要更积极地确定源进程是否仍在运行。运可W 例如在W下情况中使用:没有发送显式消息来指示源进程完成对资源的使用。现在参照图 5。 阳化5] 在图5中,操作系统510与第二域中的代理进程512交互。第二域包括操作系统 514和提供资源的目标进程516,其中,域510中的源进程在先前已经请求了该资源。
[0056] 在该情况下,代理进程512可W偶尔向操作系统510发送查询520W确定某些进 程是否正在该域中运行。例如,根据上表1,查询可W是针对特定域中的源进程号中的一个 或多个的请求。因此,查询可W针对域"X"中的进程"12345"和"12486"W及域"Z"中的 进程"12745"和"12345"。如将理解的是,在域"X"和域"Z"中
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1