TWI486878B - 用以經由處理程序間通訊共享資源之方法、裝置與電腦程式產品 - Google Patents
用以經由處理程序間通訊共享資源之方法、裝置與電腦程式產品 Download PDFInfo
- Publication number
- TWI486878B TWI486878B TW099112012A TW99112012A TWI486878B TW I486878 B TWI486878 B TW I486878B TW 099112012 A TW099112012 A TW 099112012A TW 99112012 A TW99112012 A TW 99112012A TW I486878 B TWI486878 B TW I486878B
- Authority
- TW
- Taiwan
- Prior art keywords
- resource
- rights
- processing program
- resources
- handler
- Prior art date
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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- 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/46—Multiprogramming arrangements
- G06F9/468—Specific access rights for resources, e.g. using capability register
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
- Stored Programmes (AREA)
Description
本發明實施例一般係有關處理程序間通訊,並且尤其是,有關以一安全和彈性方式經由一處理程序間通訊在一個或多個處理程序之間共享資源之方法、裝置與電腦程式產品。
現代通訊時代已引發有線和無線網路之巨大擴展。電腦網路、電視網路以及電話網路因消費者要求之刺激,正經歷空前的技術擴展。無線和機動式網路技術已因應相關之消費者要求,而提供更具彈性以及直接之資訊傳送。
目前及未來之網路技術持續便利於使資訊傳送容易及方便於使用者。要求增加資訊傳送容易並且便利於使用者之一領域係關於在不同處理程序間之資源共享(例如,電腦程式之實例)。這些處理程序可彼此互連並且可在單一電子裝置上被執行或可在多數個電子裝置上被執行。在處理程序間共享資源之益處的一範例是,此共享允許同時執行來自不同處理程序的一個或多個指令,而促進在電子裝置中有效的資源使用。在互連處理程序間共享資源的另一益處範例是,允許不同的處理程序共享記憶體中之相同指令集,以便節省電子裝置之儲存空間。
關於在處理程序間之資源共享的現行辦法,一般包括提供檔案描述符至處理程序。就此而言,檔案描述符可被視為用以經由一處理程序間通訊以接取將被共享之資源(例如,檔案、目錄、記憶體等等)的關鍵。但是,關於在處理程序間之資源共享的現行辦法具有非常缺乏彈性之缺點。例如,一UNIX域套接口可被使用以在一個或多個處理程序間傳送資料,且這些處理程序可彼此傳送檔案描述符,以越過一UNIX域套接口連接使用具有軟體組態管理(SCM)權利之sendmsg()以及recvmsg()系統呼叫而共享資源。但是,現行辦法,例如,使用具有SCM權利之sendmsg()以及recvmsg()函數之UNIX域套接口,一般在處理程序間通訊已結束之後不提供任何機構以終止資源之使用。同時,一旦資源被共享,也沒有適當的機構以限制自一處理程序至另一處理程序之資源傳送。就此而論,目前沒有適當的機構以限制這些在處理程序間之資源可被共享多久。換言之,當被授予接取這些資源時,該接取一般無限定地被准予,並且一旦它們被授予一處理程序,則沒有適當的機構以移除共享資源之接取權利,並且這一般甚至是在處理程序間之一連接被移除時的情況。
使用現行辦法以允許接取共享資源的另一缺點是,這些辦法是緊密地耦合或聯結至一特定協定以及應用程式界面(API),例如,使用具體SCM權利之sendmsg()及recvmsg()函數呼叫之UNIX域套接口。這特定協定和API之使用迫使有關於該互連處理程序的所有通訊將被重新寫入以遵循這特定協定和API,其經常不是所需的,並且可能導致無效率的資源使用。就此而言,現行的辦法可能迫使一應用使用一特定API(例如,UNIX域套接口)以取代該應用或處理程序通常使用於此一資源之API以接取共享資源。例如,該UNIX API,例如,可使用一特殊“dup()”函數呼叫,以接取一共享資源,因而一標準API可使用一標準open()函數以接取一資源。當使用該UNIX API時,該標準open()函數可能需要重新被寫入或被改變至對應於,例如,該UNIX API的另一函數(例如,特殊“dup()”函數呼叫)。最重要的是,因為傳統UNIX系統是多使用者裝置,接取控制機構之使用一般是受限定以保護處理程序以及不同使用者彼此之資源。相對地,任何可移動式裝置一般是一種單一使用者裝置,例如,個人裝置,因此於UNIX系統中使用之傳統接取控制機構一般是不可應用的。因此,需要新的接取控制機構以保護處理程序以及它們彼此之資源。因為在可移動式裝置中UNIX標準(例如,用於Unix之輕便操作系統界面(POSIX))以及UNIX為基礎操作系統(例如,Linux操作系統(OS)以及伯克萊(Berkeley)軟體分配(BSD)操作系統(OS)變化)之廣泛採用,因而增加了這改變之重要性。
因此,需要提供經由一處理程序間通訊共享資源的不同機構,以允許以一種安全和彈性方式在互連處理程序之間共享資源。
一種方法、裝置與電腦程式產品因此被提供以供以一安全及彈性方式在電子裝置的互連處理程序之間共享資源。如此處所提到的,一處理程序可以是有關於一應用程式、一個或多個程式實例、軟體碼、軟體指令、一演算法或其類似者,其是可利用處理器、控制器等等而執行。該等實施範例便利於授予處理程序資源之接取權利,其中對於採用sendmsg()及recvmsg()函數呼叫之處理程序間通訊協定之處理程序自UNIX API被解耦合。同時,用於處理程序資源之接取權利可在任何時間被移除,並且對於已公開資源的任何操作(例如,讀取和寫入操作),可當該處理程序間通訊被終止時被拒絕。
實施範例可鏈接用於一資源之接取權利至一公開之處理程序間通訊頻道並且可提供一安全以及彈性方式,以於其中經由一處理程序間通訊頻道而共享資源。實施範例機構是不特定且不需要利用UNIX API之sendmsg()和recvmsg()函數呼叫,並且就此而言,實施範例之處理程序間通訊機構可以比現行辦法更廣泛地被採用,因為現行辦法一般需要在互連處理程序間的所有通訊發生在一特定協定以及API(例如,UNIX域套接口)中,其可能需要重新寫入與該處理程序相關的數碼,以便遵循UNIX協定以及API。
應當指明的是,實施範例之一操作系統(OS)應用程式界面(API)可確保在處理程序間通訊頻道上僅有一單一處理程序可接取資源。另外地,一資源之接取權利可在任何時候被添加至一個或多個處理程序或自一個或多個處理程序被移除。被指派作為擁有或控制資源的一處理程序可指定一遠端對等裝置,繼續傳送與該資源相關的接取權利至另一處理程序。以相似之方式,擁有或控制該資源之一處理程序可禁止一遠端對等裝置繼續傳送一資源之接取權利至任何其他處理程序。另外地,依據實施範例,當處理程序間通訊頻道被關閉時,任何資源的所有接取權利可被移除並且對先前已公開的資源之任何接取(例如,讀取及/或寫入接取)可被終止。
在一實施範例中,一種在互連處理程序間共享資源之方法被提供。該方法可包括自控制一個或多個資源之至少一第一處理程序接收一要求的步驟。該要求可包括要求一個或多個權利之分配以與至少一第二處理程序共享該等資源之至少一者的資料。該方法進一步地可包括分配與第二處理程序共享資源之權利以及當收到一第一訊息時則自第二處理程序移除共享資源之權利。
在另一實施範例中,用以在互連處理程序間共享資源之一電腦程式產品被提供。該電腦程式產品包括具有電腦可執行程式碼指令被儲存在其中之至少一個電腦可讀取儲存媒體。該電腦可執行程式碼指令可包括導致自控制一個或多個資源之至少一第一處理程序收到一要求的程式碼指令。該要求可包括要求一個或多個權利之分配以與至少一第二處理程序共享該等資源之至少一者的資料。該等程式碼指令同時也可以提供用以分配與第二處理程序共享資源之權利以及用以當收到一第一訊息時則自第二處理程序移除共享資源之權利。
在另一實施範例中,一用以共享在互連處理程序間之資源的裝置被提供。該裝置可包括一處理器以及一儲存可執行指令之記憶體,該指令回應於該處理器之執行導致該裝置至少進行包括自控制一個或多個資源之至少一第一處理程序接收一要求的操作。該要求可包括要求一個或多個權利之分配以與至少一第二處理程序共享該等資源之至少一者的資料。該等指令可進一步地導致該裝置分配與第二處理程序共享資源之權利以及當收到一第一訊息時則自第二處理程序移除共享資源之權利。
本發明實施例可提供一種以安全和彈性之方式共享彼此間資源之方法、電腦程式產品以及裝置。因此,例如,裝置使用者可享有經由一處理程序間通訊頻道而得到資源之一改進的性能。
在概括地說明本發明後,接著將參考附圖,其中之附圖不一定得按比例繪製,並且其中:第1圖展示依據本發明一實施範例之一通訊系統範例;第2圖展示依據本發明一實施範例用以經由一處理程序間通訊共享資源之裝置的分解方塊圖;第3圖展示依據本發明一實施範例經由一處理程序間通訊共享資源接取權利之圖式;第4圖是依據本發明一實施範例有關用以經由一處理程序間通訊共享記憶體之方法的信號流程圖;以及第5圖是依據本發明一實施範例有關用以經由一處理程序間通訊共享檔案之方法的信號流程圖。
本發明實施例接著將隨後參考附圖而更完整地被說明,於其中,本發明一些實施例,但是不所有者將被展示。實際上,本發明實施例可以許多不同的形式被實施且可理解不應被視為對在此所設定的實施例之限定;然而,這些實施例被提供因而這揭示將符合適用之法律規定。全文中相同的號碼指示相同的元件。如依據本發明實施例在此處所使用的詞組,“資料”、“內容”、“資訊”以及相似詞組可替換地被使用於指示可被發送、被接收及/或被儲存之相關資料。此外,如此處所使用的詞組“範例”,不欲被提供以表達任何性質之評估,而是僅表達範例之展示。因此,任何詞組之使用不應被視為對本發明實施例精神及範疇之限定。
第1圖展示通用的系統圖,於其中一裝置,例如,一可移動式終端10被展示於一通訊環境範例中。如於第1圖之展示,依據本發明一實施範例之一系統實施例包括可經由網路30彼此通訊之一第一通訊裝置(例如,可移動式終端10)以及一第二通訊裝置20。在一些情況中,本發明實施例可進一步地包括一個或多個另外的通訊裝置,其中之一被展示在第1圖中作為第三通訊裝置25。在一些實施例中,不是採用本發明實施例的所有系統皆包括此處所展示的及/或說明的所有裝置。雖然可移動式終端10及/或第二及第三通訊裝置20和25之許多實施例可被展示並且作為此後被說明之範例,但其他型式之終端,例如,輕便型數位助理(PDA)、攜帶型傳呼器、可移動式電視、可移動式電話、遊戲裝置、膝上型電腦、攝影機、錄影機、音訊/視訊播放機、收音機、全球定位系統(GPS)裝置、藍牙耳機、通用串列匯流排(USB)裝置或任何上述之組合,以及其他型式的音訊和文字通訊系統,皆可容易地採用本發明實施例。更進一步地,不是可移動式之裝置,例如,伺服器和個人電腦,同時也可容易地採用本發明實施例。
網路30可包括很多各種不同的節點(其中範例可以是第二和第三通訊裝置20和25),裝置或函數可經由對應的有線及/或無線界面而彼此通訊。因此,應可了解,第1圖之展示是系統某些元件之廣泛圖示的範例且不是系統或網路30之全面或詳細圖示。雖然不是必需的,在一些實施例中,網路30是可依據一些第一代(1G)、第二代(2G)、2.5G、第三代(3G)、3.5G、3.9G、第四代(4G)可移動式通訊協定、長期演進(LTE)、及/或其類似者之任何一個或多個而支援通訊。在一些實施例中,網路30可以是一種點對點(P2P)網路。
一個或多個通訊終端,例如,可移動式終端10以及第二和第三通訊裝置20和25可以是經由網路30彼此通訊且各可包括用以將信號發送至一基地且用以自基地接收信號之天線,該基地可以是,例如,一基地台,其是可耦合至一資料網路之一個或多個手機或機動式網路或一接取點的一部份,其中該資料網路可以是,例如,局域網路(LAN)、都會區域網路(MAN)、及/或廣域網路(WAN),例如,網際網路。接著,其他裝置,例如,處理元件(例如,個人電腦、伺服器電腦或其類似者)可經由網路30被耦合至可移動式終端10以及第二和第三通訊裝置20和25。藉由直接地或間接地連接可移動式終端10以及第二和第三通訊裝置20和25(及/或其他裝置)至網路30,可移動式終端10以及第二和第三通訊裝置20和25可被引動以與其他裝置或彼此通訊,例如,依據無數的通訊協定,包括,超文字傳輸協定(HTTP)及/或其類似者,因而分別地進行可移動式終端10以及第二和第三通訊裝置20和25之各種通訊或其他功能。
更進一步地,雖然不被展示在第1圖中,可移動式終端10以及第二和第三通訊裝置20和25可依據下列各項技術而通訊,例如,射頻(RF)、藍芽(BT)、紅外線(IR)或任何一些不同的有線或無線通訊技術,包括LAN、無線LAN(WLAN)、微波接取全球互通(WiMAX)、WiFi、超寬頻(UWB)、Wibree技術及/或其類似者。因此,可移動式終端10以及第二和第三通訊裝置20和25可被引動以藉由任何無數的不同接取機構與網路30以及彼此通訊。例如,用於可移動式通訊(GSM)、一般封包無線電服務(GPRS)及/或其類似者之可移動式接取機構,例如,寬帶分碼多重接取(W-CDMA)、CDMA2000、廣域系統可被支援,以及無線接取機構,例如,WLAN、WiMAX、及/或其類似者以及固定接取機構,例如,數位用戶線(DSL)、電纜線數據機、以太及/或其類似者亦可被支援。另外地,應指明,可移動式終端10以及第二和第三通訊裝置20和25可經由一個或多個通訊頻道彼此通訊。因此,可移動式終端10以及第二和第三通訊裝置20和25可採用被指明作為處理程序間通訊頻道的一個或多個通訊頻道,以與可在可移動式終端10及第二和第三通訊裝置20和25之內被執行的一個或多個處理程序以及可外接至該可移動式終端10及第二和第三通訊裝置20和25的一個或多個處理程序之間共享資源。
在實施範例中,第一通訊裝置(例如,可移動式終端10),例如,可以是一可移動式通訊裝置,例如,個人數位助理(PDA)、無線電話、可移動式計算裝置、攝影機、錄影機、音訊/視訊播放機、定位裝置、遊戲裝置、電視裝置、無線電裝置、或各種其他的類似裝置或其組合。第二通訊裝置20可以是一可移動式或固定通訊裝置。但是,在一範例中,第二通訊裝置20可以是遠端電腦或終端機,例如,個人電腦(PC)或膝上型電腦。
在一實施範例中,網路30可以是被配置於一智慧空間的特設或分佈式網絡。因此,裝置可進入及/或離開網路30並且網路30之裝置可依據其他裝置之進入及/或退出以調整操作而處置相應的裝置或節點以及它們對應的能力之添加或減少。在一實施範例中,與網路30通訊之一個或多個裝置可採用一處理程序間引擎以協助促進在一個或多個在裝置(例如,可移動式終端10、第二和第三通訊裝置20和25)上被執行的互連處理程序(例如,應用、程式實例或其類似者)之間的資源共享。處理程序間引擎可便利於以安全且具彈性方式在互連處理程序之間共享資源,例如,一個或多個檔案、一個或多個記憶體或記憶體物件、一個或多個目錄、及/或一個或多個套接口以及其他區域性資源。就此而論,例如,一裝置之一處理程序可採用該處理程序間引擎以自另一裝置要求一個或多個資源並且該裝置之處理程序同時也可採用該處理程序間引擎以拒絕一個或多個資源之接取。在一實施範例中,可移動式終端10以及第二和第三通訊裝置20和25可被組態以包括該處理程序間引擎。如上面之指示,在一實施範例中,該處理程序可以是區域至一特定的裝置並且因此該處理程序間引擎可便利於在處理程序或與第1圖之網路30的任何連接或不考慮與網路30任何連接的應用間之資源共享,並且因此應了解,第1圖範例提供一些裝置例,其可採用在此等裝置可能時常被發現的一般環境之內的本發明之一實施例。
第2圖展示依據本發明一實施範例之一裝置以供便利於以安全且具彈性之方式在互連處理程序之間共享一個或多個資源的分解式方塊圖。接著將參考第2圖說明本發明一實施範例,於其中用以便利在互連處理程序之間共享一個或多個資源之裝置50的某些元件被顯示。第2圖之裝置50可被採用在,例如,可移動式終端10(及/或第二通訊裝置20或第三通訊裝置25)上。另外地,裝置50可被實作於網路30之一網路裝置上。但是,裝置50可另外地被實作於可移動式以及固定式(例如,上面列出之任何裝置)的多種其他裝置上。在一些情況中,實施例可被採用在一組合裝置上。因此,本發明一些實施例可藉由完全地在單一裝置(例如,可移動式終端10)上、藉由分佈式之多數個裝置(例如,在P2P網路中的一個或多數個裝置上)或藉由以客戶/伺服器關係之裝置而被實施。更進一步地,應注意到,下述之裝置或元件可以不是強制性的並且因此在某些實施例中一些裝置或元件可被省略。
接著參看至第2圖,用以便利於共享在互連處理程序之間的一個或多個資源之裝置50被提供。裝置50可包括或以不同方式地通訊於處理器70、使用者界面72、通訊界面74以及記憶體裝置76。記憶體裝置76可包括,例如,依電性及/或非依電性記憶體。記憶體裝置76可被組態以儲存用以引動裝置以依據本發明實施範例實行各種功能之資訊、資料、檔案、目錄、應用、一個或多個處理程序(例如,處理程序83)、指令、或其類似者。例如,記憶體裝置76可被組態以緩衝利用處理器70處理之輸入資料。另外地,記憶體裝置76可被組態以儲存利用處理器70執行之指令。再另外地,記憶體裝置76可以是儲存資訊及/或媒體內容的多數個資料庫之一者。
處理器70可以一些不同的方式被實施。例如,處理器70可作為下列之各種處理裝配被實施,例如,處理元件、協同處理器、一控制器或各種其他處理裝置,例如,包括積體電路,例如,一ASIC(應用特定積體電路)、一FPGA(場可程編閘陣列)、硬體加速裝置、或其類似者。在一實施範例中,處理器70可被組態以執行被儲存在記憶體裝置76中或可以不同方式接取處理器70之指令。因此,不論是利用硬體或軟體方法、或利用其之一組合被組態,當因此被組態時,處理器70可代表能夠依據本發明實施例進行操作之一實體(例如,實際地在電路中實施)。因此,例如,當處理器70,被實施如ASIC、FPGA或其類似者時,處理器70硬體可明確地被組態以供進行此處說明之操作。另外地,如另一範例,當處理器70作為軟體指令之執行器被實施時,該等指令可明確地組態該處理器70,如果不是用於由該等指令所提供之特定組態,則處理器70可以是一般用途之處理元件或其他功能之可組態電路,以進行此處說明之演算法以及操作。但是,在一些情況中,處理器70可以是適用於採用本發明實施例之一特定裝置(例如,可移動式終端)的處理器,以藉由進一步地利用進行此處說明之演算法以及操作的指令而組態處理器70。
同時,通訊界面74可以是任何裝配,例如,以硬體、軟體或硬體和軟體之組合的任一者被實施的裝置或電路,該裝置或電路被組態以自/至與裝置50通訊之一網路及/或任何其他裝置或模組接收及/或發送資料。就此而言,通訊界面74可包括,例如,一天線(或多數個天線)以及用以引動與無線通訊網路(例如,網路30)通訊之支援硬體及/或軟體。通訊界面74可經由一個或多個通訊頻道接收及/或發送資料。就此而言,通訊界面74可以是,但不必需是,經由被指明作為一處理程序間通訊頻道的一通訊頻道而在互連處理程序之間傳送或提供一個或多個資源。在固定環境中,通訊界面74也可另外地或同時地支援有線通訊。就此而論,通訊界面74可包括用以經由電纜線、數位用戶線(DSL)、通用串列匯流排(USB)、以太或其他機構支援通訊的通訊數據機及/或其他硬體/軟體。
使用者界面72可以與處理器70通訊以接收在使用者界面72之一使用者輸入的指示及/或提供一音訊、視覺、機械式或其他的輸出至使用者。就此而論,使用者界面72可包括,例如,鍵盤、滑鼠、控制桿、顯示器、觸控屏幕、麥克風、擴音機、或其他輸入/輸出機構。在一實施範例中,其中該裝置可作為一伺服器或一些其他網路裝置被實施,使用者界面72可以是受限定地,遠端地被安置、或被移除。
在一實施範例中,處理器70可被實施,如包括或以不同方式地控制一處理程序間引擎80。處理程序間引擎80可以是依據軟體或以硬體或硬體和軟體之一組合的其他方式被實施之任何裝配,例如,一裝置或電路,而操作(例如,處理器70在軟體控制之下操作,被實施為ASIC或FPGA之處理器70明確地組態以進行此處說明或其之一組合的操作),因而組態該裝置或電路以進行如在下面將說明的處理程序間引擎80之對應的功能。因此,在範例中,其中軟體被採用,執行該軟體的一裝置或電路(例如,在一範例中之處理器70)形成與此裝配相關的結構。就此而言,例如,處理程序間引擎80可被組態而以一安全且具彈性方式提供在互連處理程序之間共享一個或多個資源。
在一些實施例中,處理程序間引擎80可以與一個或多個處理程序82和84(同時也於此處被稱為應用程序)通訊。而於第2圖展示之實施範例中,處理程序間引擎80可與二處理程序(亦即,處理程序82和84)通訊,應指明,處理程序間引擎80可與任何數量之處理程序通訊而不脫離本發明之精神和範疇。例如,如上所述地,記憶體裝置76可包括一個或多個處理程序(例如,處理程序83),並且處理程序間引擎80可與記憶體裝置76之處理程序以及任何其他處理程序通訊。處理程序82和84可以,但不是必需的,被安置以外接至裝置50(例如,可移動式終端10),並且就此而言,處理程序82和84可以經由通訊界面74,並且尤其是,例如,經由一通訊頻道,例如,一處理程序間通訊頻道而與處理程序間引擎80(及/或處理器70)通訊。在一實施範例中,處理程序82和84兩者皆可被設置在第二通訊裝置20或在第三通訊裝置25處。另外地,處理程序82可以被設置在第二通訊裝置20處,而處理程序84可被設置在第三通訊裝置25處。但是,同時也應指明,處理程序82也可被設置在第三通訊裝置25處而處理程序84也可被設置在第二通訊裝置20處。
此外,應指明,實施範例之處理程序可藉由可協調與在一個或多個處理程序間之資源共享相關的活動之一操作系統(OS)應用程式界面(API)85,以經由處理程序間引擎80而通訊。OS API85可以作為一電腦程式產品之指令被實施並且藉由處理器70被執行,而該程式產品被儲存在一通訊裝置(例如,可移動式終端10及/或第二和第三通訊裝置20和25)之記憶體中。另外地,OS API85可作為處理器70(例如,作為FPGA、ASIC、或其類似者)被實施。另外地,該OS API85可以是依據軟體或以硬體或一硬體和軟體之組合的其他方式被實施而操作之任何裝置或電路,因而組態該電路之裝置以進行如此處說明的OS API85之對應的功能。雖然第2圖中,OS API85被展示如被安置而外接至裝置50,應指明的是,該OS API85亦可以被安置而內接於裝置50,而不脫離本發明之精神和範疇。
OS API85可被組態以提供處理程序接取服務或資料並且可利用系統呼叫而傳送或提供參數以及在該處理程序間之一個或多個資源的接取權利。該OS API85可自一個或多個處理程序接收一個或多個呼叫(或呼叫函數),要求一分別處理程序之一個或多個資源的接取權利被授予至另一處理程序或自另一處理程序予以移除。就此而言,該OS API85可分配,由一處理程序(例如,處理程序83)所控制之一個或多個資源的接取權利,至另一處理程序(例如,處理程序82),因而該資源可被這些處理程序所共享。以相同方式,該OS API85可移除被授予至一處理程序之一個或多個資源的接取權利。就此而言,OS API85可關閉便利在處理程序間之共享一個或多個資源的一通訊頻道。當OS API85關閉該通訊頻道時,所有共享資源之接取權利可被移除及在該等資源上之任何懸決或未來的操作亦可被終止。應指明的是,利用OS API85所接收的呼叫或訊息可藉由處理程序間引擎80被產生。
另外,應指明的是,OS API85可與一個或多個操作系統通訊。就此而言,OS API85可與不同的操作系統通訊,該等操作系統可包括,但不限定於,完全地或部份地與用於Unix輕便操作系統界面(POSIX)標準、Linux OS、Unix OS、柏克萊軟體分配(BSD) OS、微軟視窗OS、Mac OS、或任何其他適當的操作系統相容之任何的OS。在一實施範例中,OS API85可被採用以允許實施範例之處理程序彼此通訊,甚至一些或所有的處理程序亦可以不同的操作系統被執行。例如,與OS API85相關的軟體可被以允許OS API85以無關於一特定操作系統而操作之方式被寫入。
裝置50之處理程序間引擎80可被組態以公開在一個或多個處理程序(例如,處理程序83)間之一區域性套接口連接及產生由一處理程序(例如,處理程序83)所擁有或所控制之一個或多個資源的接取權利,並且可傳送或傳遞接取權利至OS API85,因而資源可與另一處理程序(例如,處理程序82)所共享。例如,如上所述地,利用處理程序間引擎80產生之接取權利可被OS API85接收,而且OS API85可分配允許在處理程序間一個或多個共享資源之接取權利至另一處理程序。另外地,處理程序間引擎80可移除先前給予一處理程序有關一資源之接取權利並且終止在它們上面之任何懸決或未來之操作。就此而言,處理程序間引擎80可傳送或傳遞一要求至OS API85以終止或拒絕由一處理程序所擁有或所控制之資源的接取權利,並且因此,OS API85可移除先前地被授予至一處理程序之資源的接取權利。因而,當被給予至一處理程序之資源的接取權利藉由OS API85被移除時,該接取權利被終止且目前正被這處理程序所使用的這些資源之任何懸決操作亦被終止。同時也應指明的是,處理程序間引擎80可採用一個或多個函數呼叫以傳送該等要求,以允許一個或多個資源之接取權利或終止藉由OS API85所接收的一個或多個資源之接取權利,如在下面將更完整地被說明。
第3圖展示關於經由一處理程序間通訊利用一個或多個處理程序共享資源之接取權利之一實施範例。在第3圖實施範例中,應指明的是,處理程序87、88和89可藉由一單一裝置,例如,裝置50被維持。另外地,各個處理程序87、88和89可藉由可移動式終端10、第二通訊裝置20和第三通訊裝置25之任何一者被維持。另外地,應指明的是,通訊頻道71(同時也於此處被稱為一被授權的處理程序間通訊頻道)被公開,並且因此,處理程序87、88和89可彼此通訊以及可經由通訊頻道71與OS API85通訊。資源81可包括,但是不限定於,一個或多個記憶體或記憶體物件、一個或多個檔案、一個或多個目錄、一個或多個套接口或任何其他適當的資源。處理程序87可擁有或控制一個或多個資源81,如利用處理程序87之通訊77所表示的資源81,並且就此而言,與保持處理程序87之裝置(例如,可移動式終端10)相關的處理程序間引擎80,可產生資源81之接取權利,其允許處理程序88和89與處理程序87共享資源。
因此,處理程序間引擎80可經由通訊頻道71,傳送一要求78至OS API85,指示OS API85允許處理程序88和89共享資源81。就此而言,OS API85可分配資源81之接取權利至處理程序88和89。OS API85可藉由分別地傳送通訊73和75至處理程序88和89,以通知處理程序88和89,各處理程序皆具有共享資源81之接取權利。就此而言,處理程序88和89可以是資源81之使用者。雖然不被展示在第3圖中,處理程序間引擎80同時也可傳送一要求至OS API85以終止與處理程序88和89共享資源81,並且就此而言,OS API85可移除使用資源81之接取權利,其可終止有關於處理程序88和89之資源81的接取權利。就此而論,如果處理程序88和89正進行需要接取資源81(例如,一記憶體)之操作(例如,讀取及/或寫入操作),這些操作可能失去作用。另外地,在另一實施範例中,應指明的是,當各處理程序87、88和89利用分別的裝置被維持時,維持處理程序88和89之裝置(例如,第二和第三通訊裝置20和25)可以是近域通訊裝置,其可大約在,例如,10米以上之距離,與其他裝置(例如,可移動式終端10,其可維持處理程序87)互換資料。
接著參看至第4圖,依據一實施範例,用以經由一處理程序間通訊以共享一資源(例如,一記憶體或記憶體物件)之機構的信號流程被提供。應指明的是,第4圖中被共享資源之記憶體僅僅是用於展示之目的且不是限定,並且就此而言,第4圖之資源可包括,但是不受限定於,一個或多個檔案、一個或多個目錄、一個或多個輸送管道(例如,套接口)、或任何其他區域性資源。依據這實施例,在步驟1中,處理程序1和2(例如,分別之處理程序83和82,)各可打開一區域性套接口,以便經由一公開處理程序間通訊頻道(例如,處理程序間通訊頻道71)而通訊。應指明的是,有關於第4圖所述與處理程序1和2相關的各個功能可利用一處理程序間引擎,例如,處理程序間引擎80,被進行。在步驟2,處理程序1可決定,要求在其控制之下共享一個或多個資源,例如,一記憶體或記憶體物件,並且就此而言,處理程序1可要求OS API以產生一檔案描述符(fd)以打開且產生被稱為“我的區域(myregion)”之一共享記憶體(shm)。OS API可授予處理程序1讀取及/或寫入(RDWR)記憶體之接取權利。這確保處理程序1它本身在能夠傳送它們至其他處理程序上之前具有所需公開資源之接取權利。在步驟3,處理程序1可產生一呼叫函數,其指明被稱為“我的區域”之共享記憶體的尺度並且可傳送這呼叫函數至OS API。
在步驟4,處理程序1可要求OS API以映製“我的區域”共享記憶體至處理程序1之虛擬記憶體。OS API可返回一記憶體位址(例如,經由“rptr”指示器)至被映製之共享記憶體。這範例中之接取權利是相關於讀取該共享記憶體及/或寫入至該共享記憶體。步驟5中,處理程序1可分配一描述符至分配該記憶體至處理程序間通訊頻道的處理程序間通訊頻道,因而該記憶體可隨著另一處理程序(例如,處理程序2)被傳送或與該處理程序共享。同時,不論共享記憶體之接取權利是否被限定至處理程序間通訊連接之有效期限(例如,“bnd”布林值)以及不論處理程序2是否可傳送資源之接取權利至另一處理程序(例如,“fwd”布林值),處理程序1也可定義處理程序2之共享記憶體之接取權利(例如,唯讀、唯寫或唯讀和唯寫兩者,例如“O_RDWR”)。應指明的是,其可能同時授予多於一個資源之接取權利,例如,藉由提供一系列之資料結構,其各包括所有上面的資訊(描述符、接取權利、接取權利使用效期、傳送接取權利之能力)。另外地,應指明的是,該接取權利、接取權利使用效期以及轉發它們至另一處理程序之能力可在任何時候被改變(即使,通常需要在關於何時應該發生之處理程序間的一些同意協定/行為),例如,處理程序1可在其認定的任何時候改變共享記憶體之接取權利。
在步驟6中,OS API可藉由使用處理程序間通訊頻道而分配讀取和寫入至記憶體“我的區域”之接取權利至處理程序2。在分配之前,OS API可檢查,所要求的接取權利是否那些在處理程序1已先前地具有共享資源者。就此而言,OS API是一新的API,其可分配資源之接取權利至一個或多個遠端處理程序。於步驟7中,處理程序2可自OS API要求指示或證實具有接取共享記憶體“我的區域”以及指明具有讀取及/或寫入檔案描述符(fd)之接取權利。於步驟8中,OS API可檢查以確保處理程序2具有被稱為“我的區域”之記憶體的接取權利。選擇性地,於步驟9中,如果OS API決定處理程序2具有記憶體之接取權利,則OS API可產生一檔案描述符,其包括指明處理程序2具有記憶體之接取權利且指明該記憶體已順利地被公開之資料。OS API可傳送檔案描述符至處理程序2。檔案描述符同時也可提供一提示至記憶體且可指示該記憶體之尺度。應指明的是,如果OS API決定處理程序2不具有記憶體之任何接取權利,該記憶體之公開可能失去作用並且該OS API可傳送一檔案描述符(不被展示)給處理程序2,指示處理程序2不具有記憶體之接取權利。於步驟10中,處理程序2可要求OS API將“我的區域”共享記憶體映製至處理程序2之一虛擬記憶體。處理程序2同時也可表明其想要具有讀取及/或寫入共享記憶體之接取權利。於步驟11中,OS API可依據授予的接取權利而允許兩個處理程序1和處理程序2讀取和寫入該共享記憶體。
於步驟12中,處理程序2可要求OS API解除映製該共享記憶體至其虛擬記憶體。於步驟13中,處理程序2可藉由提供該共享記憶體之檔案描述符而要求OS API解除該共享記憶體(例如,停止該共享記憶體之共享)。回應於收到關閉(fd)的呼叫,於步驟14中,處理程序1可藉由提供該共享記憶體之檔案描述符而要求OS API自處理程序間通訊頻道移除共享記憶體之任何接取權利。了解何時處理程序2將停止共享記憶體之實際方法不是特別相關的。例如,當處理程序2經由一處理程序間通訊頻道傳送指示使用結束之一訊息至處理程序1時,則記憶體之共享可被停止。應指明的是,處理程序1可自處理程序間通訊頻道移除記憶體之接取權利,因而不考慮OS API是否收到,自處理程序2被傳送指示處理程序2要解除或斷接該共享記憶體之一檔案描述符的訊息或任何呼叫,記憶體不再是可用於共享。例如,處理程序1可在任何所給予的時間移除共享記憶體之接取權利。另外地,應指明的是,處理程序1可拒絕處理程序2要得到接取由處理程序1所控制的記憶體或任何其他的資源之任何要求。
回應於收到關於自處理程序間通訊頻道移除該共享記憶體之要求,OS API可自處理程序2移除關於讀取和寫入該共享記憶體“我的區域”之接取權利,於步驟15中。就此而言,OS API是一新的API,其可自一個或多個遠端處理程序移除或取消分配資源之接取權利。
於步驟16中,處理程序1可要求OS API自其之虛擬記憶體取消映製記憶體“我的區域”並且可提供關於取消映製之一指示至記憶體。於步驟17中,處理程序1可要求OS API取消鏈接與處理程序2共享之記憶體。就此而言,所有關於由處理程序1控制之記憶體的接取權利自處理程序2被移除。於步驟18中,處理程序1可要求OS API解除共享記憶體的權利。就此而論,處理程序2任何對於記憶體之接取權利(例如,讀取及/或寫入)的依序要求可能失去作用以及與處理程序2使用該記憶體相關的任何操作亦可能失去作用,除非該處理程序2已在先前被授予權利以傳送該資源(例如,利用“fwd”布林值)。
接著參看至第5圖,依據一實施範例用以經由一處理程序間通訊共享一個或多個資源(例如,檔案)之信號流程被提供。應指明的是,如作為在第5圖中共享資源之檔案只是作為展示目的並且不是限制,並且就此而言,第5圖之資源可包括,但不限定於,記憶體、記憶體物件、一個或多個目錄、一個或多個輸送管道(例如,套接口)、或任何其他區域性資源。依據這實施例,於步驟1中,處理程序1和2(例如,分別的處理程序83和82)各可打開一區域性套接口,以便經由一公開處理程序間通訊頻道(例如,處理程序間通訊頻道71)而通訊。應指明的是,在關於第5圖被說明之與處理程序1和2相關的各個功能,可以利用一處理程序間引擎,例如,處理程序間引擎80而被執行。於步驟2中,處理程序1可決定要求以允許一檔案與一個或多個其他處理程序共享。就此而言,處理程序1可要求OS API(例如,OS API85)打開被稱為“我的檔案(myfile)”之一檔案,其是處理程序1所擁有或所控制以供用於特定之接取型式(例如,讀取、寫入或讀取和寫入兩者)。如果處理程序1具有適當之檔案接取權利(例如,讀取、寫入或讀取和寫入兩者),則OS API可產生一檔案描述符(fd)以及將其送返回至處理程序1。這確保在處理程序1能夠傳送任何檔案至另一處理程序之前,處理程序1具有適當之檔案的接取權利。於步驟3中,處理程序1可要求OS API分配經由處理程序間通訊頻道共享特定檔案之接取權利(例如,用於讀取和寫入接取之O_RDWR),因而該檔案可沿著處理程序2被傳送或可接取至處理程序2,因而該檔案可與那些具有接取權利者共享。同時,處理程序1也可限制傳送接取權利是否被限定在公開處理程序間通訊頻道之使用效期(例如,藉由使用“bnd”布林值)並且處理程序2可轉送那些的接取權利至另一處理程序(例如,藉由使用“fwd”布林值)。另外地,應指明的是,轉傳它們至另一處理程序之接取權利、接取權利使用效期以及能力可在任何時候被改變(雖然通常在處理程序之間需要一些關於何時此應發生之同意協定/行為),例如,處理程序1可在其喜好之任何時候改變檔案之接取權利。
於步驟4中,OS API可分配接取權利,例如,讀取及/或寫入名稱為“我的檔案”之檔案的接取權利至處理程序2,其是一處理程序間頻道之遠端對等者。就此而言,OS API是一新的API,其可分配資源之接取權利至一個或多個遠端處理程序。於步驟5中,處理程序2可要求OS API打開名稱為“我的檔案”之檔案以及要求檔案的讀取及/或寫入被授予之接取權利。於步驟6中,OS API可進行一檢測以決定處理程序2是否具有名稱為“我的檔案”之要求檔案之接取權利。應指明的是,OS API可進行該檢測,因為處理程序2通常不具有該檔案之接取權利。選擇地,於步驟7中,如果OS API決定處理程序2具有該檔案之接取權利,則OS API可產生一檔案描述符,其包括指示處理程序2具有接取權利以及指示該檔案已順利被打開之資訊。就此而言,OS API可傳送這檔案描述符至處理程序2。應指明的是,如果OS API決定處理程序2不具有該檔案之任何接取權利,則該檔案之打開可能失去作用並且OS API可能傳送一無效檔案描述符(例如,“-1”,不被展示)至處理程序2以指示處理程序2不具有該檔案的接取權利。於步驟8中,OS API可允許處理程序2讀取和寫入名稱為“我的檔案”之檔案,因為OS API決定處理程序2具有該檔案之接取權利。當處理程序2不再是需要接取該共享檔案時,處理程序2可產生一關閉(fd)要求以關閉該檔案或解除該檔案之使用並且這關閉(fd)的要求可被傳送至OS API,於步驟9中。回應於收到關閉(fd)的要求,處理程序1可自處理程序間通訊頻道移除該檔案之任何接取權利,因而於步驟10中,該檔案不再是可用於共享的。了解何時處理程序2關閉該檔案之實際的方式不是尤其相關的。例如,當處理程序2經由處理程序間通訊頻道傳送指示關閉該檔案之一訊息至處理程序1時,則該檔案可被關閉。應指明的是,處理程序1可自處理程序間通訊頻道移除檔案之任何接取權利,因而不論是否有自處理程序2收到指示處理程序2不再是需要接取該共享檔案之任何要求或訊息,該檔案不再是可用於共享的。例如,處理程序1可在任何所給予的時間移除該共享檔案之接取權利。另外地,處理程序1可拒絕處理程序2要得到接取由處理程序1所控制之檔案或任何其他資源的任何要求。
於步驟11中,OS API可自處理程序間通訊頻道移除讀取及/或寫入名稱為“我的檔案”之檔案的接取權利。這可移除處理程序2對檔案之所有接取權利。就此而論,用於處理程序2之檔案的接取權利(例如,讀取及/或寫入)之任何依序的要求可能失去作用以及與處理程序2使用該檔案相關的任何操作可能失去作用。就此而言,OS API是一新的API,其可自一個或多個遠端處理程序移除或解除分配資源之接取權利。於步驟12中,處理程序1可產生一關閉的(fd)要求以關閉接取該檔案。
應指明的是,第4和5圖是依據本發明實施範例之系統、方法以及電腦程式產品的流程圖。應了解,流程圖之各方塊或步驟,以及流程圖中之方塊組合,可利用各種裝配被實作,例如,硬體、靭體、處理器、電路及/或與包括一個或多個電腦程式指令之執行軟體相關的其他裝置。例如,上述之一個或多個步驟可利用電腦程式指令被實施。就此而言,實施上述步驟之電腦程式指令可利用移動式終端或網路裝置之一個或多個記憶體裝置被儲存以及利用可移動式終端或網路裝置中之一處理器被執行。在一些實施例中,包括實施上述步驟之電腦程式產品的電腦程式指令可利用多數個計算裝置之記憶體裝置被儲存。應了解,任何此等電腦程式指令可被裝載至電腦或其他可程式規劃裝置(亦即,硬體)上以產生一機器指令,以至於該等指令在電腦上或用以實作在流程圖中指明之功能的其他可程式設備產生裝配上執行。這些電腦程式指令同時也可被儲存在電腦可讀取記憶體中,其可指示一電腦或其他可程式規劃裝置以特定方式作用,以至於被儲存在電腦可讀取記憶體中之該等指令產生一包括實作流程圖中指明之功能的指令裝配之製造物件。電腦程式指令同時也可被裝載至一電腦上或其他可程式規劃裝置上,以導致將在電腦或其他可程式規劃裝置上被進行之一系列操作步驟,以產生一電腦製作處理程序,以至於在該電腦或其他可程式規劃裝置上執行之指令提供用以實作流程圖中所指明之功能的步驟。
因此,流程圖之方塊或步驟支援用以進行指明的功能之裝配的組合、用以進行指明之功能的步驟之組合以及用以進行指明的功能之程式指令裝配。同時也應了解,流程圖之一個或多個方塊或步驟、以及流程圖中方塊或步驟之組合,可藉由進行指明的功能或步驟之特殊用途硬體為基礎之電腦系統、或特殊用途硬體以及電腦程式產品組合的電腦系統而被實作。
上述功能可以許多方式被實行。例如,用以實行上述各功能之任何適當裝配可被採用以實行本發明實施例。在一實施例中,一適當地被組態之處理器可提供本發明所有或一部份元件。於另一實施例中,本發明所有或一部份元件可藉由在電腦程式產品之控制下被組態且在電腦程式產品之控制下操作。用以進行本發明實施例方法之電腦程式產品可包括電腦可讀取儲存媒體,例如,非依電性儲存媒體以及電腦可讀取程式碼部份,例如,在該電腦可讀取儲存媒體中實施之一系列電腦指令。
在一實施範例中,用以進行上面第4和5圖之方法的裝置可包括處理器(例如,處理器70),其被組態以進行上述一些或各個與第4圖相關的操作(1-17)以及與第5圖相關的操作(1-12)。該處理器,例如,可被組態以藉由進行硬體實作邏輯函數、執行儲存之指令、或執行用以進行各個操作之演算法而進行操作1-17(第4圖)以及1-12(第5圖)。另外地,該裝置可包括用以進行上述各操作之裝配。就此而言,依據一實施範例,用以進行操作1-17(第4圖)以及1-12(第5圖)之裝配範例可包括,例如,處理器70、處理程序間引擎80、OS API85及/或用以如上所述執行處理資訊之指令或執行處理資訊之演算法的裝置或電路。
接著,本發明一些實施例提供許多優點至電腦裝置、電腦裝置使用者以及網路操作員。例如,本發明實施例可提供一機構,以供在一安全且具彈性方式下於互連處理程序之間共享資源。另外地,實施範例允許在任何所給予的時間移除或終止處理程序對共享資源之接取權利。
熟習本技術者將明白,基於先前設定本發明的許多修改以及其他實施例,本發明將因此具有上述說明與相關圖形中所呈現之技術的優點。因此,應了解本發明將不欲限定於所揭露之特定實施例並且本發明是意欲將修改和其他實施例包括在附加申請專利範圍之範疇內。此外,雖然上述之說明和相關圖形已說明某些元件及/或功能組合的範例之本文中的實施範例,但應了解,該等元件及/或功能的不同組合亦可藉由不同的實施例被提供而不脫離附加申請專利範圍之範疇。因此,例如,除了那些於之前明確地被敘述之外的元件及/或功能之不同組合,同時也可考慮在一些附加的申請專利範圍中。雖然特定詞組在此處被採用,它們僅被使用在一般性、描述性之意義上並且不是作為限制目的。
10...可移動式終端
20...第二通訊裝置
25...第三通訊裝置
30...網路
50...裝置
70...處理器
71...通訊頻道
72...使用者界面
73...通訊
74...通訊界面
75...通訊
76...記憶體裝置
78...資源接取權利
80...處理程序間引擎
81...資源
82...處理程序
83...處理程序
84...處理程序
85...操作系統應用程式界面
87...處理程序(資源擁有者)
88...處理程序(資源使用者)
89...處理程序(資源使用者)
1-18...第4圖步驟
1-12...第5圖步驟
第1圖展示依據本發明一實施範例之一通訊系統範例;
第2圖展示依據本發明一實施範例用以經由一處理程序間通訊共享資源之裝置的分解方塊圖;
第3圖展示依據本發明一實施範例經由一處理程序間通訊共享資源接取權利之圖式;
第4圖是依據本發明一實施範例有關用以經由一處理程序間通訊共享記憶體之方法的信號流程圖;以及
第5圖是依據本發明一實施範例有關用以經由一處理程序間通訊共享檔案之方法的信號流程圖。
30...網路
50...裝置
70...處理器
72...使用者界面
74...通訊界面
76...記憶體裝置
80...處理程序間引擎
82...處理程序
84...處理程序
85...OS應用程式界面
Claims (20)
- 一種用以共享資源之方法,其包括下列步驟:自控制一個或多個資源之至少一第一處理程序接收一要求,該要求包括要求一個或多個權利之分配以與至少一第二處理程序共享該等資源之至少一者的資料;分配與該第二處理程序共享資源之該等權利;以及當收到一第一訊息時,自該第二處理程序移除共享資源之該等權利。
- 依據申請專利範圍第1項之方法,其中該第一訊息包括指示該資源之使用不再是該第二處理程序所需的資訊或指明該第一處理程序要求移除與該第二處理程序共享該資源之該等權利的內容。
- 依據申請專利範圍第1項之方法,其中在接收該要求之前,接收該資源係開放的且被分配至用以與該第二處理程序共享之一通訊頻道的一指示。
- 依據申請專利範圍第1項之方法,其中在移除之前,決定該第二處理程序最初是否具有共享該資源之該等權利,並且當該決定揭露該第二處理程序最初不具有該等權利時,則進行一檢查以決定該等權利是否適當地被分配至該第二處理程序。
- 依據申請專利範圍第4項之方法,進一步地包括,至少部分地基於該檢查之結果以允許該第二處理程序與該第一處理程序共享該資源。
- 依據申請專利範圍第4項之方法,其中當該檢查揭露該 等權利不是恰當地被分配至該第二處理程序時,則該方法將進一步地包括下列步驟:產生一第二訊息,該第二訊息包括指明沒有存取權利被授予至該第二處理程序以及指示該資源之共享不被允許之資料;以及將該第二訊息傳送至該第二處理程序。
- 依據申請專利範圍第1項之方法,其中該移除步驟包括依據收到該第一處理程序所產生的一第二訊息而移除共享該資源之該等權利,該第二訊息包括要求自一通訊頻道移除共享該資源之該等權利的資訊。
- 依據申請專利範圍第7項之方法,其中自該通訊頻道移除該等權利之步驟包括終止該第二處理程序使用該資源且導致與該第二處理程序使用該資源相關之任何操作失去作用。
- 一種用以共享資源之裝置,其包括一處理器以及儲存可執行指令之記憶體,該等指令回應於該處理器之執行而致使該裝置至少進行下列步驟:自控制一個或多個資源之至少一第一處理程序接收一要求,該要求包括要求一個或多個權利之分配以與至少一第二處理程序共享該等資源之至少一者的資料;分配與該第二處理程序共享該資源之該等權利;以及當收到一第一訊息時,自該第二處理程序移除共享該資源之該等權利。
- 依據申請專利範圍第9項之裝置,其中該第一訊息包括 指示該資源之使用不再是該第二處理程序所需之資訊或指明該第一處理程序要求移除與該第二處理程序共享該資源之該等權利的內容。
- 依據申請專利範圍第9項之裝置,其中該等指令進一步致使該裝置在接收該要求之前,先接收該資源係開放的且被分配至用以與該第二處理程序共享之一通訊頻道的一指示。
- 依據申請專利範圍第9項之裝置,其中為回應於分配該等權利,該等指令進一步致使該裝置決定該第二處理程序最初是否具有共享該資源之該等權利,並且當該決定揭露該第二處理程序最初不具有該等權利時,該等指令將進一步致使該裝置進行一檢查以決定該等權利是否適當地被分配至該第二處理程序。
- 依據申請專利範圍第12項之裝置,其中該等指令進一步致使該裝置至少部分地基於該檢查之結果以允許該第二處理程序與該第一處理程序共享該資源。
- 依據申請專利範圍第12項之裝置,其中當該檢查揭露該等權利不是恰當地被分配至該第二處理程序時,則該等指令進一步致使該裝置進行下列步驟:產生一第二訊息,該第二訊息包括指明沒有存取權利被授予至該第二處理程序以及指示該資源之共享不被允許之資料;以及將該第二訊息傳送至該第二處理程序。
- 依據申請專利範圍第9項之裝置,其中移除步驟包括依 據收到該第一處理程序所產生之一第二訊息而移除共享該等資源之該等權利,該第二訊息包括要求自一通訊頻道移除共享該資源之該等權利之資訊。
- 依據申請專利範圍第15項之裝置,其中自該通訊頻道移除該等權利之步驟包括終止該第二處理程序使用該資源且導致與該第二處理程序使用該資源相關之任何操作失去作用。
- 一種電腦程式產品,其包括具有電腦可執行程式碼指令被儲存在其中之至少一個電腦可讀取儲存媒體,該電腦可執行程式碼指令包括:用以致使自控制一個或多個資源之至少一第一處理程序收到一要求的程式碼指令,該要求包括要求一個或多個權利之分配以與至少一第二處理程序共享該等資源之至少一者的資料;用以分配與該第二處理程序共享該資源之該等權利的程式碼指令;以及當收到一第一訊息時,用以自該第二處理程序移除共享該資源之該等權利的程式碼指令。
- 依據申請專利範圍第17項之電腦程式產品,其中該第一訊息包括指示該資源之使用不再是該第二處理程序所需的資訊或指明該第一處理程序要求移除與該第二處理程序共享該資源之該等權利的內容。
- 依據申請專利範圍第17項之電腦程式產品,其中在致使收到該要求之前,程式碼指令致使接收該資源係開放的 且被分配至用以與該第二處理程序共享之一通訊頻道的一指示。
- 依據申請專利範圍第17項之電腦程式產品,其中在移除步驟之前,程式碼指令決定該第二處理程序最初是否具有共享該資源之該等權利,並且當該決定揭露該第二處理程序最初不具有該等權利時,則進行一檢查以決定該等權利是否適當地被分配至該第二處理程序。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/425,630 US8220004B2 (en) | 2009-04-17 | 2009-04-17 | Method, apparatus and computer program product for sharing resources via an interprocess communication |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201135596A TW201135596A (en) | 2011-10-16 |
TWI486878B true TWI486878B (zh) | 2015-06-01 |
Family
ID=42981985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099112012A TWI486878B (zh) | 2009-04-17 | 2010-04-16 | 用以經由處理程序間通訊共享資源之方法、裝置與電腦程式產品 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8220004B2 (zh) |
EP (1) | EP2419830A4 (zh) |
KR (1) | KR101366965B1 (zh) |
CN (1) | CN102378965B (zh) |
TW (1) | TWI486878B (zh) |
WO (1) | WO2010119337A1 (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101794058B1 (ko) * | 2011-03-08 | 2017-12-04 | 삼성전자주식회사 | 간섭 회피를 위한 무선 네트워크 채널 할당 방법 |
US9535765B1 (en) | 2011-03-28 | 2017-01-03 | Google Inc. | Opportunistic job Processing of input data divided into partitions of different sizes |
DE102011078630A1 (de) * | 2011-07-05 | 2013-01-10 | Robert Bosch Gmbh | Verfahren zum Einrichten einer Anordnung technischer Einheiten |
CN102591727B (zh) | 2012-01-04 | 2014-09-17 | 华为终端有限公司 | 对应用数据进行处理的方法和计算节点 |
US8751451B2 (en) * | 2012-04-12 | 2014-06-10 | Nokia Corporation | Method and apparatus for facilitating switching between devices |
US9130939B2 (en) * | 2012-12-28 | 2015-09-08 | Intel Corporation | Ad hoc decentralized cloud infrastructure |
CN103970601B (zh) * | 2013-02-06 | 2019-03-05 | 北京壹人壹本信息科技有限公司 | 执行操作指令方法和装置 |
CN104601546B (zh) * | 2014-12-22 | 2017-12-01 | 深圳市鼎泰富科技有限公司 | 一种利用设备通信资源提高网络带宽的系统及方法 |
US10586076B2 (en) * | 2015-08-24 | 2020-03-10 | Acronis International Gmbh | System and method for controlling access to OS resources |
CN105357266B (zh) * | 2015-09-30 | 2018-11-16 | 山东乾云启创信息科技股份有限公司 | 适合多种场景的socket通信与进程管理通用平台及方法 |
CN106341905B (zh) * | 2016-08-31 | 2019-09-20 | 广州视睿电子科技有限公司 | 一种基于无线网络的文件共享方法、设备及系统 |
CN106778245A (zh) * | 2016-11-29 | 2017-05-31 | 北京元心科技有限公司 | 移动终端及其文件共享方法 |
US10318209B2 (en) * | 2017-01-30 | 2019-06-11 | Forcepoint Llc | Secure file transfer to process |
JP6926627B2 (ja) * | 2017-04-21 | 2021-08-25 | 富士通株式会社 | 情報処理システム、情報処理装置、api制御方法及びプログラム |
US11443072B2 (en) * | 2018-06-29 | 2022-09-13 | Microsoft Technology Licensing, Llc | Peripheral device with resource isolation |
CN111124466A (zh) * | 2018-10-31 | 2020-05-08 | 上海哔哩哔哩科技有限公司 | 差异化通知方法、系统、计算机设备及可读存储介质 |
US20200174814A1 (en) * | 2018-11-30 | 2020-06-04 | Nutanix, Inc. | Systems and methods for upgrading hypervisor locally |
KR20200125258A (ko) * | 2019-04-26 | 2020-11-04 | 삼성전자주식회사 | 어플리케이션 실행을 제어하기 위한 방법, 이를 위한 전자 장치 및 저장 매체 |
CN111897666B (zh) * | 2020-08-05 | 2024-02-06 | 北京图森未来科技有限公司 | 用于多进程之间通信的方法、设备及系统 |
CN113010333B (zh) * | 2021-03-24 | 2021-10-15 | 北京中电兴发科技有限公司 | 适用于Linux服务器集群的多场景进程间通信方法 |
CN115086296B (zh) * | 2022-05-27 | 2024-04-05 | 阿里巴巴(中国)有限公司 | 一种日志传输系统、日志传输方法及相关装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010014918A1 (en) * | 1997-06-27 | 2001-08-16 | Paul Karl Harter | Method and apparatus for synchronized message passng using shared resources |
TW200506633A (en) * | 2003-01-16 | 2005-02-16 | Ibm | Task synchronization mechanism and method |
TW200636500A (en) * | 2005-02-07 | 2006-10-16 | Sony Computer Entertainment Inc | Methods and apparatus for resource management in a processor |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5649099A (en) | 1993-06-04 | 1997-07-15 | Xerox Corporation | Method for delegating access rights through executable access control program without delegating access rights not in a specification to any intermediary nor comprising server security |
US5893157A (en) * | 1997-05-28 | 1999-04-06 | International Business Machines Corporation | Blocking symbol control in a computer system to serialize accessing a data resource by simultaneous processor requests |
EP0884679B1 (en) | 1997-05-28 | 2010-02-24 | Telefonaktiebolaget LM Ericsson (publ) | Method of handling interactions between data processes |
US6205466B1 (en) * | 1998-07-17 | 2001-03-20 | Hewlett-Packard Company | Infrastructure for an open digital services marketplace |
US6412070B1 (en) | 1998-09-21 | 2002-06-25 | Microsoft Corporation | Extensible security system and method for controlling access to objects in a computing environment |
US6412034B1 (en) * | 1999-04-16 | 2002-06-25 | Oracle Corporation | Transaction-based locking approach |
US7640315B1 (en) * | 2000-08-04 | 2009-12-29 | Advanced Micro Devices, Inc. | Implementing locks in a distributed processing system |
JP2005500608A (ja) * | 2001-08-13 | 2005-01-06 | クゥアルコム・インコーポレイテッド | コンピュータ装置上の記憶領域へのアプリケーションレベルのアクセス特権 |
CN1556959A (zh) | 2001-08-13 | 2004-12-22 | �����ɷ� | 使用许可向应用程序分配设备资源 |
US20040025166A1 (en) * | 2002-02-02 | 2004-02-05 | International Business Machines Corporation | Server computer and a method for accessing resources from virtual machines of a server computer via a fibre channel |
GB2411253A (en) | 2003-06-05 | 2005-08-24 | Clink Systems Ltd | Network on which a user classifies resources held in their account using a realm name created by them to give access to other users to the resources |
GB2420642B (en) | 2004-11-30 | 2008-11-26 | Sendo Int Ltd | Memory management for portable electronic device |
US20100083268A1 (en) * | 2008-09-29 | 2010-04-01 | Morris Robert P | Method And System For Managing Access To A Resource By A Process Processing A Media Stream |
US7792916B2 (en) * | 2008-10-20 | 2010-09-07 | International Business Machines Corporation | Management of cluster-wide resources with shared variables |
US8108519B2 (en) * | 2008-11-07 | 2012-01-31 | Samsung Electronics Co., Ltd. | Secure inter-process communication for safer computing environments and systems |
-
2009
- 2009-04-17 US US12/425,630 patent/US8220004B2/en active Active
-
2010
- 2010-04-16 EP EP10764161.5A patent/EP2419830A4/en not_active Ceased
- 2010-04-16 CN CN201080015176.4A patent/CN102378965B/zh not_active Expired - Fee Related
- 2010-04-16 TW TW099112012A patent/TWI486878B/zh not_active IP Right Cessation
- 2010-04-16 KR KR1020117024315A patent/KR101366965B1/ko active IP Right Grant
- 2010-04-16 WO PCT/IB2010/000857 patent/WO2010119337A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010014918A1 (en) * | 1997-06-27 | 2001-08-16 | Paul Karl Harter | Method and apparatus for synchronized message passng using shared resources |
TW200506633A (en) * | 2003-01-16 | 2005-02-16 | Ibm | Task synchronization mechanism and method |
TW200636500A (en) * | 2005-02-07 | 2006-10-16 | Sony Computer Entertainment Inc | Methods and apparatus for resource management in a processor |
Also Published As
Publication number | Publication date |
---|---|
US20100269120A1 (en) | 2010-10-21 |
CN102378965B (zh) | 2014-04-16 |
KR101366965B1 (ko) | 2014-02-24 |
EP2419830A4 (en) | 2013-09-25 |
KR20110138242A (ko) | 2011-12-26 |
TW201135596A (en) | 2011-10-16 |
CN102378965A (zh) | 2012-03-14 |
WO2010119337A1 (en) | 2010-10-21 |
US8220004B2 (en) | 2012-07-10 |
EP2419830A1 (en) | 2012-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI486878B (zh) | 用以經由處理程序間通訊共享資源之方法、裝置與電腦程式產品 | |
US10515056B2 (en) | API for resource discovery and utilization | |
JP4782771B2 (ja) | コンピュータ装置におけるプロセス間通信 | |
CN113287286B (zh) | 通过rdma进行分布式存储节点中的输入/输出处理 | |
US10762204B2 (en) | Managing containerized applications | |
CN108701058B (zh) | 虚拟化传感器 | |
EP3074867B1 (en) | Managing containerized applications | |
CN106687975B (zh) | 可信执行环境可扩展计算装置接口 | |
US20160350543A1 (en) | Electronic device and method of accessing kernel data | |
WO2021013242A1 (zh) | 一种启动小程序的方法、设备和计算机存储介质 | |
CN107533611B (zh) | 在遥测数据的传输中保护用户可标识信息 | |
US11860796B2 (en) | Execution space agnostic device drivers | |
US20150370582A1 (en) | At least one user space resident interface between at least one user space resident virtual appliance and at least one virtual data plane | |
US20140006598A1 (en) | Methods, apparatuses and computer program products for facilitating dynamic origin-based domain allocation | |
WO2023174013A1 (zh) | 显存分配方法、装置、介质及电子设备 | |
CN107566499B (zh) | 数据同步的方法、装置和系统 | |
CN109614089B (zh) | 数据访问代码的自动生成方法、装置、设备及存储介质 | |
WO2022042363A1 (zh) | 一种共享库的复用方法及电子设备 | |
JP2007293639A (ja) | アクセス制御方法、アクセス制御方法を用いた機器及びシステム | |
US11689621B2 (en) | Computing device and storage card | |
WO2023198128A1 (zh) | 一种分布式资源共享方法及相关装置 | |
US11016823B2 (en) | Remote service discovery and inter-process communication | |
WO2022224409A1 (ja) | アクセラレータ制御システム、アクセラレータ制御方法およびアクセラレータ制御プログラム | |
US10819783B1 (en) | Managing a data packet for an operating system associated with a multi-node system | |
CN114661426A (zh) | 容器管理方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |