操作系統(tǒng)中用于進(jìn)程管理 的邏輯實(shí)體,W管理由該操作系統(tǒng)中的另一進(jìn)程啟動(dòng)或另一進(jìn)程使用的進(jìn)程。然而,管理與 源進(jìn)程不同的操作系統(tǒng)中的進(jìn)程的使用變得更加復(fù)雜。在運(yùn)種環(huán)境中,源進(jìn)程本身可W處 于具有主機(jī)操作系統(tǒng)(在本文中稱(chēng)作源操作系統(tǒng))的一個(gè)域中,并且可W向具有不同操作 系統(tǒng)(在本文中稱(chēng)作目標(biāo)操作系統(tǒng))的另一域請(qǐng)求資源。運(yùn)些資源可W進(jìn)而使目標(biāo)操作系 統(tǒng)啟動(dòng)進(jìn)程或分配附加內(nèi)存。然而,因?yàn)槟繕?biāo)操作系統(tǒng)不了解在源操作系統(tǒng)中運(yùn)行的進(jìn)程, 因此目標(biāo)操作系統(tǒng)不能獲知目標(biāo)進(jìn)程何時(shí)適于關(guān)閉。
[0031] 此外,可能潛在地存在多個(gè)源操作系統(tǒng),運(yùn)些源操作系統(tǒng)均具有使用目標(biāo)操作系 統(tǒng)的資源的進(jìn)程。
[0032] 因此,根據(jù)本公開(kāi)的一個(gè)實(shí)施例,將代理進(jìn)程插入每一個(gè)操作系統(tǒng)中W允許跨域 進(jìn)程清除?,F(xiàn)在參照?qǐng)D3。
[0033] 在圖3的示例中,域310包括源進(jìn)程312,源進(jìn)程312需要來(lái)自域320中的目標(biāo)進(jìn) 程330的資源。域320包括邏輯進(jìn)程管理器322,該邏輯進(jìn)程管理器322不了解源進(jìn)程312。
[0034] 因此,根據(jù)本公開(kāi),可W將代理進(jìn)程340插入域320的目標(biāo)操作系統(tǒng)中。代理進(jìn)程 340的一個(gè)工作是代表設(shè)備上的其他操作系統(tǒng)打開(kāi)與諸如內(nèi)容提供方等的資源的連接。因 為代理進(jìn)程340是目標(biāo)域320中的真實(shí)進(jìn)程,因此目標(biāo)域320可與操作系統(tǒng)跟蹤其他 進(jìn)程所打開(kāi)的資源的方式類(lèi)似的方式來(lái)跟蹤代理進(jìn)程340和代理進(jìn)程340具有的無(wú)論什么 資源,而無(wú)需對(duì)目標(biāo)域320進(jìn)行任何改變。
[0035] 根據(jù)本公開(kāi)的一個(gè)實(shí)施例,代理進(jìn)程340可W被標(biāo)記為不允許關(guān)閉,即使系統(tǒng)正 在低內(nèi)存運(yùn)行也是如此。運(yùn)確保了作為目標(biāo)的資源不會(huì)被撤走,運(yùn)是因?yàn)樵催M(jìn)程可能例如 正在前臺(tái)并且與用戶(hù)交互。
[0036] 其他進(jìn)程(示出為進(jìn)程350至352)也可W在域320中操作并且也可能需要來(lái)自 目標(biāo)進(jìn)程330的資源。如上所述,進(jìn)程管理器322^W跟蹤正在使用進(jìn)程330的所有進(jìn)程, 并且可W決定目標(biāo)進(jìn)程330何時(shí)變得適于清除。代理進(jìn)程340落入可W具有針對(duì)目標(biāo)進(jìn)程 330的句柄的進(jìn)程組內(nèi)。
[0037] 在一個(gè)實(shí)施例中,每一個(gè)域可W具有代理進(jìn)程,W允許其他域訪問(wèn)該域內(nèi)的進(jìn)程。 因此,在圖3的示例中,代理進(jìn)程360存在于域310的操作系統(tǒng)中,并且可W用于代表計(jì)算 設(shè)備上的其他操作系統(tǒng)打開(kāi)與諸如內(nèi)容提供方等的資源的連接。
[003引僅為了說(shuō)明的目的,圖3的示例包括兩個(gè)域。在其他實(shí)施例中,多個(gè)域可W通過(guò)代 理進(jìn)程340訪問(wèn)域320上的資源。
[0039] 現(xiàn)在參照?qǐng)D4,圖4示出了設(shè)備包括多個(gè)域(每一個(gè)域包括單獨(dú)的操作系統(tǒng))的實(shí) 施例。當(dāng)源操作系統(tǒng)希望向目標(biāo)操作系統(tǒng)請(qǐng)求資源時(shí),源操作系統(tǒng)將要求目標(biāo)操作系統(tǒng)中 的代理應(yīng)用代表它請(qǐng)求該資源。因此,如圖4所示,源進(jìn)程410在第一域中,并且想要來(lái)自 第二域中的目標(biāo)進(jìn)程416的資源。源進(jìn)程410通過(guò)第二域中的代理進(jìn)程412進(jìn)行通信。代 理進(jìn)程412與第二域414進(jìn)行交互。
[0040] 源進(jìn)程410通過(guò)與代理進(jìn)程412進(jìn)行通信(如消息420所示)來(lái)向目標(biāo)操作系統(tǒng) 請(qǐng)求資源。例如,消息420的形式可W是針對(duì)域中的應(yīng)用程序接口(API)的調(diào)用。例如,如 果在單個(gè)域內(nèi),則消息420可W簡(jiǎn)單地利用常規(guī)API并且具有"content://contacts"的形 式。另一方面,如果請(qǐng)求在域之間,則可W將統(tǒng)一資源指示符扣RI)加至該消息。因此,消 息可W具有"content://domainx/contacts"的形式,其中,"域X"是目標(biāo)進(jìn)程所在的域的 URI。
[0041] 一旦代理進(jìn)程412接收到該請(qǐng)求,代理進(jìn)程412就向目標(biāo)操作系統(tǒng)414請(qǐng)求資源 (如消息422所示)。
[0042] 在一些實(shí)施例中,目標(biāo)操作系統(tǒng)然后可W檢查其自己的內(nèi)部注冊(cè)表W確定哪一個(gè) 進(jìn)程或應(yīng)用支持該資源,并且可W使用例如動(dòng)態(tài)目標(biāo)進(jìn)程標(biāo)識(shí)符來(lái)啟動(dòng)適當(dāng)?shù)哪繕?biāo)進(jìn)程 (如果該進(jìn)程還未運(yùn)行的話(huà))(如箭頭430所示)。此外,操作系統(tǒng)414然后可W向代理進(jìn) 程412返回針對(duì)目標(biāo)進(jìn)程416的句柄(如消息440所示)。
[0043] 然后,代理進(jìn)程412將向源進(jìn)程410返回針對(duì)目標(biāo)進(jìn)程的句柄(如消息442所示)。
[0044] 然后,源進(jìn)程410可W使用在消息442中提供的句柄來(lái)與目標(biāo)進(jìn)程416進(jìn)行交互。
[0045] 在一個(gè)實(shí)施例中,代理進(jìn)程412可W保存它當(dāng)前具有其句柄的進(jìn)程表。因此,例 如,諸如下表1等的表可W由代理進(jìn)程412保存。
[0046] 陽(yáng)047] 表1:代理進(jìn)程中的去例性進(jìn)表
' '
[0048]如上表1所示,代理進(jìn)程保存源進(jìn)程的進(jìn)程標(biāo)識(shí)符的列表。本領(lǐng)域技術(shù)人員將理 解的是,進(jìn)程標(biāo)識(shí)符僅在源進(jìn)程的域中有意義,并且在目標(biāo)域中沒(méi)有意義。因此,表1還包 括源進(jìn)程的域的標(biāo)識(shí)符。最后,表1包括目標(biāo)操作系統(tǒng)中的資源的標(biāo)識(shí)符。在表1的最后 一列中示出的標(biāo)識(shí)符標(biāo)識(shí)了目標(biāo)域中的資源。
[0049] 在其他實(shí)施例中,也可W在代理進(jìn)程412的列表中存儲(chǔ)更多信息,并且表1僅是示 例。
[0050] 通過(guò)使用諸如表1等的表,代理進(jìn)程412可W向操作系統(tǒng)414告知它何時(shí)完成對(duì) 資源的使用。代理進(jìn)程412可W通過(guò)多種方式獲知它完成對(duì)資源的使用。例如,在圖4的 實(shí)施例中,源進(jìn)程410可W向代理進(jìn)程412提供關(guān)于它完成對(duì)資源的使用的顯式指示。在 圖4的實(shí)施例中通過(guò)消息450示出了此類(lèi)消息。
[0051] 一旦代理進(jìn)程412接收到消息450,如果目標(biāo)域之外沒(méi)有其他進(jìn)程正使用由資源 標(biāo)識(shí)符標(biāo)識(shí)的資源,則代理進(jìn)程412就可W使用消息452向操作系統(tǒng)414告知它完成對(duì)資 源的使用。
[0052] 然后,操作系統(tǒng)414可W檢查W確定目標(biāo)域本地的其他進(jìn)程是否正在使用目標(biāo)進(jìn) 程,如果否,則域414可W決定停止進(jìn)程并且對(duì)目標(biāo)進(jìn)程所使用的運(yùn)些資源進(jìn)行清除,如箭 頭454所示。 陽(yáng)化引在上表1的示例中,如果來(lái)自"域X"的具有標(biāo)識(shí)符"12345"的源進(jìn)程向代理進(jìn)程 412告知它完成對(duì)資源標(biāo)識(shí)符"45611"的資源的使用,則代理進(jìn)程412可W確定來(lái)自"域Z" 的進(jìn)程"12745"仍然正在使用該進(jìn)程,因此將不會(huì)發(fā)送消息452。相反,根據(jù)上表1,如果來(lái) 自"域X"的進(jìn)程"12486"向代理進(jìn)程412告知不再需要資源標(biāo)識(shí)符"45612",則代理進(jìn)程 412檢查該表,并且因?yàn)闆](méi)有它所了解的其他進(jìn)程在使用該資源,因此可W發(fā)送消息452。 [0054] 在一些實(shí)施例中,代理進(jìn)程可能需要更積極地確定源進(jìn)程是否仍在運(yùn)行。運(yùn)可W 例如在W下情況中使用:沒(méi)有發(fā)送顯式消息來(lái)指示源進(jìn)程完成對(duì)資源的使用?,F(xiàn)在參照?qǐng)D 5。 陽(yáng)化5] 在圖5中,操作系統(tǒng)510與第二域中的代理進(jìn)程512交互。第二域包括操作系統(tǒng) 514和提供資源的目標(biāo)進(jìn)程516,其中,域510中的源進(jìn)程在先前已經(jīng)請(qǐng)求了該資源。
[0056] 在該情況下,代理進(jìn)程512可W偶爾向操作系統(tǒng)510發(fā)送查詢(xún)520W確定某些進(jìn) 程是否正在該域中運(yùn)行。例如,根據(jù)上表1,查詢(xún)可W是針對(duì)特定域中的源進(jìn)程號(hào)中的一個(gè) 或多個(gè)的請(qǐng)求。因此,查詢(xún)可W針對(duì)域"X"中的進(jìn)程"12345"和"12486"W及域"Z"中的 進(jìn)程"12745"和"12345"。如將理解的是,在域"X"和域"Z"中