TWI258701B - Wireless device operating system (OS) application programmer's interface - Google Patents

Wireless device operating system (OS) application programmer's interface Download PDF

Info

Publication number
TWI258701B
TWI258701B TW092123237A TW92123237A TWI258701B TW I258701 B TWI258701 B TW I258701B TW 092123237 A TW092123237 A TW 092123237A TW 92123237 A TW92123237 A TW 92123237A TW I258701 B TWI258701 B TW I258701B
Authority
TW
Taiwan
Prior art keywords
operating system
thread
processor
message
callback
Prior art date
Application number
TW092123237A
Other languages
English (en)
Other versions
TW200411562A (en
Inventor
Robert Gazda
Scott Hergenhan
James Mackenzie
Original Assignee
Interdigital Tech Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Interdigital Tech Corp filed Critical Interdigital Tech Corp
Publication of TW200411562A publication Critical patent/TW200411562A/zh
Application granted granted Critical
Publication of TWI258701B publication Critical patent/TWI258701B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Transceivers (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Devices For Executing Special Programs (AREA)

Description

1258701 五、發明說明(1) ' 〔發明領域〕 本發明係有關於無線裝置。特別是,本發明係有關於 開發軟體以執行於這類無線裝置上。 〔發明背景〕 開發軟體以有效利用無線裝置之硬體(諸如:通信處 理器、及糸統處理菇)係異常困難之工作。由於無線裝置 僅具有有限之記憶體儲存功能,因此,這類無線裝置之軟 體作業系、操作界面、及應用程式最好能夠僅具有小型覆 蓋區(footprint )。然而,利用縮小覆蓋區 (footprint )之軟體設計技術卻可能會限制到軟體設計 者之授予彈性。 舉例來說’一種產生軟體模型語言(SDL )程式碼之 工具係Telelog ic Tau。這種工具可以讓軟體程式者自由 產生一種軟體模型,並且,這種工具可以利用這種軟體模 型自動產生程式碼。T e 1 e 1 〇 g i c T a u係包含兩套深具潛力 之程式碼產生器 ’C—advanced及C—micro advanced 可以讓軟體設計者使用軟體模型語言(S D L )之全部功 能。C — m i cro則會限制既有功能以方便產生較小之程式碼 覆蓋區(f 〇〇tprint )。
Telelogic Tau係同時支援輕度(light)整合及重度 (tight)整合。在輕度(light)整合中’整個軟體模型 語吕(S D L )系統係執行於一單執行緒(t h r e a d )中。在 重度(tight )整合中,各個軟體模型語言(SDL )處理則
第6頁 1258701 五、發明說明(2) 會分別執行於一單執行緒(thread )中。為了使程式碼覆 蓋區(f ο 〇 t p r i n t )縮至最小,習知方法最好會利用c ^ m i c r 〇。然而,C — m i c r 〇僅僅能夠支援輕度(1 i gh t )整 合’因此,C—micro並無法支援多執行緒(thread)之執 行。有鑑於此,本發明之一個主要目的係提供一種具有縮 小覆蓋區(f ο 〇 t p r i n t )之程式碼,其同時能夠支援多執 行緒(thread )之執行。 無線裝置軟體設計之另一個難題係應用程式界面 (AP I )。目前,無線裝置已經可以利用數種開放平台之 作業系統(0S),諸如:Symbian EPOC、Microsoft Windows CE、及paim 〇s,以及,可以利用數種即時作業⑩ 系統(RT0S ),諸如:0SE、DSP BI0S、&RISC RT〇s / 有 鑑於此,本發明之另一個主要目的便是提供一種應用程式 界面(API),其能夠將一協定堆疊,諸如:第三代合作 。十晝(3GPP )之通用行動電信系統(UMTS )協定堆疊, 換為即時作業系統(RT0S)及作業系統(0S)之各種不同 ,^ ^無線裝置之硬體結構會隨著不同時間而有所變 τ ς ,系統處理器,諸如:先進精簡指令集處理器 ΓΓ|ςρ .,及通信處理器,諸如:數位信號處理器 魯 ^ //I間之邊界亦會隨著不同裝置而有所變動。有鑑 面 X明之另一個主要目的便是提供一種應用程式界 〔API ) ’错以有效隱藏這個邊界。
第7頁 1258701 五、發明說明(3) 〔發明概述 本發明 型軟體最好 係有關於將 業系統組合 模型埠接至 係有關於模型軟體 係用於無線通信裝 一種軟體模型變換 特徵,其中,這種楔 本發明之一主要特徵 另一主要特 統/作業系 理各個處理 於一個共用 關於將利用 接至一個多 特徵係有關 °本發 所有作 徵係有 統組合 器間之 時間管 單執行 執行緒 於執行 明之另一主要特徵 業系統共用 關於將這個 。本發明之 通信。本發 理裝置。本 緒(t h r e a d (thread ) 緒(t h r e a d 之一個 作業環 不同之作 係有關於 作業環境 境抽象至 業糸統/作 將這種軟體 。本發明之 一個作業系 另一個主要特徵係有關於處 一個主要特徵係有關 要特徵係有 之程式碼埠 個主要 明之另 發明之 )模型 環境。 )群組 另一個主 工具開發 本發明之 之同步。 另 〔較佳貫施例之詳細說明〕 信裝:1架圖:之V單一種咅具:軟體及應用⑽ 無線傳輸及接收單:忍二個:n線通信裝置可以是-個 係包括、但不限定於=收單;rTRU) 類型裝置。雖秋=或此夠操作於無線環境之任何 硬體架構,但1 i較佳實施例係利用第1圖所示之 使用。 〃他硬體架構亦可以搭配無線裝置軟體 24個無線通信裝置係具有一個系統處理器1〇〇,諸 ί·Β 第8頁 1258701 五、發明說明(4) 如··一個先進精簡指令集處理器(R丨SC )。通常,這個系 統處理器1 0 0係執行系統應用程式,諸如:網頁瀏覽程 式、電子日曆程式等等。另外,一個通信處理器1 0 2,諸 如··一個數位信號處理器(DSP ),通常係執行無線通信 協定。一個通信模組1 〇 4係容許這個系統處理器1 〇 〇及這個 通信處理器1 〇 2間之通信。並且,經由這個通信模組1 〇 4, 一個分享記憶體1 〇 6係可以同時利用這個系統處理器1 〇 〇及 這個通信處理器1 〇 2進行存取。 第1圖亦表示這種無線通信裝置之較佳軟體架構,以 及’這種軟體架構與硬體之關連。這個軟體模型語言 (SDL )模型環境丨〇8係表示極高抽象等級之通信協定堆疊 成分。這個軟體模型語言(SDL )模型環境108係包括:軟 體模型語言(801〇程序1181至1186(118),其係經由軟 體模型語言(SDL)信號進行點對點(peer_t0—peer) 等級之通信。軟體模型語言(SDL )模型元件(程序及信 號)係將程式碼產生器視為作業系統應用程式界面(〇s AP I ) 1 2 0之目標,藉以轉換為作業環境元件。 > >這個軟體模型語言(SDL)埠接層n〇係表示軟體模型 語言(SDL )模型元件(程序、信號、分割等等)經由這 個作業系統應用程式界面(〇s Ap I ) 1 2 0至作業環境構成鲁 之轉換。廷個作業環境11 2係經由這個作業系統應用程式 界面(Of API ) 120,提供一個獨立於作業系統(〇s ) / 硬體之%境1 1 2。在本發明之較佳實施例中,這個作業環 境1 1 2之操作係獨立於底層作業系統(〇s )。因此,這軟
第9頁 1258701
獨立於這個作業系統(〇s)。有鑑於此,即使底層 # i 4、f* (〇S)發生變動’這種軟體亦不需要重寫。這個 ^ =為(0S )抽象層1丨4係執行某個特定底層作業系統 、+及硬體平台之作業系統應用程式界面(〇s Api ) ^個作業系統(os )抽象層丨丨4係將這個作業系統應 =^界面⑶s Αρι ) 12〇構成映射至底層作業系統 (⑽)之表示法。這個作業系統(〇s)抽象層122係提供 底層+作業系統(0S)無法支援功能之具體實施。舉例 f右一個作業系統(0S )無法支援訊息及訊息佇列, 則這個作業系統(0S )抽象層便可以提供其自備之具體實 丈七 〇
/沒個作業系統(0S )抽象層122係與這個通信模組1〇4 進行界面,藉以支援各個處理器間之通信。根據本發明之 較佳1施例,這個作業系統(〇s )抽象層係容許裝置驅動 私式検跨各處理器之邊界。為方便說明,一個聲音驅動程 式可能會存在於這個系統作業系統(〇s )丨24,但是,這 個聲音硬體卻可能會存在於這個數位信號處理器1 〇 2。這 個通信模組1 04係提供橫跨於系統處理器/通信處理器邊 界、這些作業系統應用程式界面(〇S API )執行緒i28i至 1 2 ( 1 2 8 )間之通信路徑’並且,係同時負責資料及控制 之傳輸。如第1圖所示,各個執行緒1 2 8係分別關連一個件 列1301至13〇2 (130)。這個通信模組1〇4係提供橫跨於系 統處理器/通信處理器邊界、這些作業系統應用程式界面 (0 S A P I )執行緒1 2 8丨至1 2 82 ( 1 2 8 )間之通信路徑。並
第10頁 1258701 五、發明說明(6) 且,這個通信模組1 0 4係同時負責資料及控制之傳輸。另 外’這個糸統作業糸統(〇 S ) 1 2 4係關連於這個系統處理 器1 0 0,以及,這個通信作業系統(〇S )係關連於這個通 信處理器1 0 2。 在本發明之較佳實施例中,雖然這種軟體結構之所有 層係同時動作,但是,這種軟體結構之個別層亦可以在其 他軟體結構中,搭配其他層使用。 第2至4圖係表示軟體模型語言(SDL)程序118間之通 信。第2圖係表示利用輕度(1 i gh t )整合、軟體模型語言 (SDL )程序Π8間之訊息發送。軟體模型語言(SDL )程_ 序118係執行於軟體模型語言(SDL )核心(K /e ) 132ι至 i3 22 (132)之上層。這個軟體模型語言(SDL)核心132係 官理各個程序間之通信、並將信號路由至適當之接收者。 這個軟體模型語言(SDL )模型108可以晝分為獨立之輕度 j 1 1 ght )整合分割。各個分割會具有自己之軟體模型語 δ (SDL )核心132,並且,在這個作業環境112中分解成 ^有一個佇列1 3 0之單執行緒1 2 8。各個分割之軟體模型語 s (SDL )核心132並不需要作業系統(os )協助,藉以管 理内3 =軟體模型語言(SDL)程序118間之通信。這個軟體 核^吾言(SDL)核心132係經由訊息134J 1 342 ( 1 34 ), 將分割外部之軟體模型語言(SDL )程序11 8之預定信號轉 达至這個作業環境112。 μ 一 =先,某個軟體模型語言(SDL )程序1 1 82之信號係在 弟J衣境中,利用這個軟體模型語言(SDL )核心1 3轉換
第11頁 1258701
五、發明說明(7) 為一個作業系統(0S )訊息。這個作業系統(0S )訊_ 在第二環境中,路由至一個軟體模型語言(SDL )核心""系 1 3 。換句話說,這個作業系統(os )訊息係,,放置,,於第 二環境佇列1 3 〇2。在第二環境中,這個軟體模型語今 (SDL )核心1 3係偵測這個作業系統(〇s )訊息、並將 收之作業糸統(〇s )訊息重新轉換為信號格式。在第’严 境中,這個軟體模型語言(SDL )核心1 3 22係對適當程序^ 基本上’各個軟體模型語言(SDL )之輕度(1 ight ) 整合分割係在這個作業環境中,分解成具有單一訊息件列 之一個執行緒。另外,各個分割間之通信則是經由訊息發鲁 送方法達成。各個軟體模型語言(SDL )核心/環境係瞭X 解:那些軟體模型語言(SDL )程序118係内部的,以及, 那些軟體模型語言(SDL )程序11 8係外部的。並且,各個 軟體模型語言(SDL )核心/環境亦瞭解應該將外部信號 路由至什麼地方(亦即:接收者位於那個分割),以及, 各個軟體模型語言(SDL )核心/環境亦瞭解應該如何將 信號轉換為訊息(反之亦然)。 第3圖係表示利用重度(t i gh t )整合、一個分割内之 軟體模型語言(SDL )程序11 8間之訊息發送。利用重度 (t ight )整合,這個軟體模型語言(SDL )模型環境1 〇8 係直接映射至這個作業環境1 1 2。所有軟體模型語言 (SDL )程序之通信(信號發送)均是透過這個作業環境 進行。利用重度(tight)整合之這個分割並不需要具有
第12頁 1258701
五、發明說明(8) 這個軟體模型語言(SDL )核心(軟體模型語言(SDL )程 序安排裝置)。特別是,各個軟體模型語言(SDL )程序$ 1 1 8係在這個作業環境11 2内,分解為具有單一訊息狩列 130之一個執行緒128。另外,各個軟體模型語言) 程序間之通信係透過這個作業環境1 1 2進行。這個軟體模 型語言(SDL )埠接層係將信號轉換為訊息134,反= 亦然。
當第一軟體模型語言(SDL)程序1181發送信號至第二 軟體模型語言(SDL )程序11 82時,第一軟體模型語言 ~ (SDL )程序11 係將這個信號轉換為一個作業系統() 訊息。這個訊息係經由一個訊息佇列1 3 Ο?路由至第二軟體 模型語言(SDL )程執行緒1 2 82。第二軟體模型語言 (SDL )程執行緒1 2 82係因應這個訊息而啟動,並且,這個 訊息係重新轉換為一個軟體模型語言(SDL )信號。第二 軟體模型語言(SDL)程執行緒1 2 82係接收第一軟體模型語 3 (SDL)程序118ii信號。
第4圖係表示利用重度(t丨gh t )整合、橫跨各個分割 之軟體模型語言(SDL )程序11 8間之訊息發送。當第一軟 體模型語言(SDL)程序11 送信號至第二軟體模型語言 (SDL )程序11 82時,第一軟體模型語言(SDL )程序1 1 8! 係將這個k號轉換為一個作業系統(Q g )訊息。這個訊息 係路由至第一分割外部工作丨3 6ι。這個環境係用以做為這 個分割外部、所有外部程序之一個代理程式之環境。接 著’第一分割外部工作丨3 6ι係將這個訊息(信號)轉送至
第13頁 1258701 五、發明說明(9) 第二分割外部工作1 3 62。第二分割外部工作1 3 62係經由訊 息佇列1 3 02,將這個訊息(信號)路由至第二程序執行緒 1 2 82。第二程序執行緒1 2 82係因應這個訊息而啟動。這個 訊息係重新轉換至一個軟體模型語言(SDL )信號,並 且,第二軟體模型語言(SDL )程序1 1 82係接收第一軟體模 型語言(SDL )程序1 18丨之信號。 這個過程係可以協助各個處理器邊界間之交談。這些 分割係可以指定為特定之處理器,並且,可以作用於能夠 利用外部工作1 3 6之邊界。 〔字母縮寫〕 ADT-抽象資料類型 AP I -應用程式界面(本文係指用戶界面) CPU_硬體(HW )處理器:系統精簡指令集處理器(諸如: 先進精簡指令集處理器機械(ARM ))或數位信號處理器 (DSP ) / I PC-各處理器間通信 0S —作業系統 HAL —硬體抽象層 HW-硬體 · MUX —互斥器 S〇C —系統晶片 SW —軟體
第14頁 1258701 五、發明說明G〇) 〔術語及定義〕 通彳a處理^§ —執彳亍低階專級之通信協定堆疊層、演算 法、裝置驅動程式等等之内建中央處理單元(CPU)(數 位信號處理器(DSP ))。 作業環境一這個作業系統(〇 S )抽象層,經由這個作 業系統應用程式界面(OS AP I ),提供之抽象程式環境。 開放平台一具有公開應用程式界面(Ap I )之作業系 統。第三者組織係開發使用者等級之應用程式至這個公開 應用程式界面(API )。 代理程式一另一個特件之保留器(pUceh〇lder )或馨 替代品(surrogate ),用以控制這個物件之存取。代理 程式係用於這個作業系統(0S)抽象層,藉以 位於某個遠距處理器之構成。 系統處理器一執行具有使用者等級應用程式之某 個π開放平台π作業系統或某個即時作業系統(RT〇s )之通 用中央處理單元。 ( 底層作業系統一建立這個作業系統(〇s )抽象層及這 個作業系統應用程式界面(0S API )之某個目桿作^系统 (0S)。 ..... 較佳者,這個作業環境11 2係能夠經由一個作業系統 (0S )抽象層122,藉以對用戶隱藏這個底層作業系統 (0S)及硬體(HW)結構。這亦包括雙重處理器以& 1 pr〇cessor )之硬體(Hw )架構。較佳者,這個作業環境
第15頁 1258701 五、發明說明(11) 112 ’經1這Λ作/系統應用程式界面(〇s Αρι),係能 夠提供服務^下田列用戶,包括:軟體模型語言(sdl)程 8ΛΛΛ 及裝置驅動程式及軟體成分。 這I作業糸、、先(〇 S )構成将味|田 ^ ^ - Μ & ^稱成係利用獨立於某個作業系統 二二pi ^約表係提供這個作業系統應用程式 :面(OS AP〜夠支援之各個作業系統(〇s)構成之定 義0 執行緒 程序
¥t系統厂(〇s)構成
互斥器 ^個福群組 序加: 獨立執行路徑,並根據某個優先順 序加以讀。在_執行緒敎巾,所麵行狀啟始係同步 基本功能: 口'=宜2這個執行緒群組之所有執行緒、並將這些執行緒 啟始點。特別是,所有執行緒係啟始及阻擋。 這塊雜群㈣有執行緒 相關術語:信號(Semaphore )、臨界區間 让以工 Section)等等。 基本功能: 二鎖定:在這個互斥H⑽X)被另-個執行 二^放:解除鎖定毛@這個互斥器
擋’否則取得這個互斥器(MUX)並繼續執行。 ’ 第16頁 1258701 五、發明說明(12) g者同步元1牛,各個執^ :透過-個事件之信號發送,藉以將某些條件告知另—個^行 訊息 訊息佇列 先進先出(FIFO)記憶 |基本功能: -設定:這個事件之信號發送。 -等待:持續阻擋,直到這個事件之信號發送或設定 以讓某個執行緒”傳送控制”至^一個勃杆接〇 t執行緒間之itST^步事件。 透過一個共用界面進行資訊交換Λ 訊息可以讓某個執行緒,,傳送控制,,及,,傳送資 執行緒。_ 、 執行緒間^^通信。包 |基本功能: •先進先出(FIFO)記憶體行為。 一放置··將某個訊息放入這個仔列。 Lii放置·在某個指歧遲後,將某舰息放人這個仔列。 則阻宁列上端之訊息。若這贿列中沒有訊息, 個返_作,剌這個㈣中具有某個訊息。 的訊息,織。當細宁列空白 [變形·· -優先順序訊息··根據相對優先順序排列在這個仔列之訊息 各佩理n邊界之限制 # 體 個處理器邊界之限制。 ^诱明次ί彳Γ緒間之資料方塊傳輸,包括橫跨各個處理器邊界 之透明資料傳輸。較訊息簡單 _釅1 第17頁 1258701 五、發明說明(13) 基本功能: —放置:將某個記憶體方塊放入這個先進先出(FIFO)記憶ft。 一取得:由這個先進先出(FIFO)記憶體取出某個記憶體方这。 —等待:等候這個先進先出(FIFO)記憶體,直到出現某侣記 憶體方塊。拉出及返回。 橫跨各個處理器間邊界:由傳送者記憶《空間複製至接收者記 憶體空間之訊息資料。(這個動作會取決於硬體(HW)架構) 在某個處理器内部:沒有資料複製動作= 連結串歹1J ( linked 一般串列,藉以提供某種共用之具體實矻。 list ) 基本功能: —加入··將元件放入這個串列。 一取得:由這個亭列讀取元件。 —移除:由這個串列拉出元件。 一反覆:在這個_列反覆時,提供所有之三種服務。
第1表 / 其他各種作業系統(0S )元件係定義於第2表中。 作業系統(〇s)構成 定義 記憶體設置/解除設置 記憶體設置/解除設置管理。 • 變形: —通用:由一個通用系統堆疊開始設置: —區域··由^ 一個區域定義堆β開始设置c —通信:通信緩衝器之設置。(亦即:上傳或下傳這個協定垮疊
(HI 第18頁 1258701 、發明說明(14) 之記憶體緩衝器)。這類緩衝器可能需要在系統處理器/通信處 理器邊界分享。 延遲(睡眠) 讓某個執行緒能夠將執行暫停指定單元之時間(以毫秒為單 位)。 第2表 這個軟體模型語言(SDL)埠接層11〇係取得這些軟體 模型語言(S D L )模型元件,諸如:程序11 8、信號、切割 等等’並將這些軟體模型語言(SDL )模型元件轉換為作眷 業環境構成。以下係這個作業系統應用程式界面(QS AP I ) 1 2 0之一個較佳實施例。 這個作業系統應用程式界面(OS AP I ) 1 2 〇係具有應 用程式界面(API )項目點。所有應用程式界面(Αρι )項 目點係利用以下慣例命名: os 〈action >〈construct > ( ···) 其中, ^ 字首(prefix )—所有應用程式界面(Αρι )項目點 係冠以” 〇s 一”之識別字首。、 φ 動作(act1〇n)-<扣^〇11>襴位係表示這個 執仃之操作。 構成名稱一〈construct >攔位係識別接收這個動作 或麵作之構成。
第19頁 1258701 五、發明說明(15) '這個作業系統應用程式界面(os API )之資料結構係 說明如下。所有常數,定義於這個應用程式界面(AH ) 中,均旭以0S —11之識別字首。所有應用程式界面 (API )資料類型係冠以”0s—"之識別字首。個別 值係冠以"Os—"之識別字首。 所有作業環境元件係利用某個獨特處理 (〇s ^Handle —T )進行識別及稱呼。當這個構成產生或 開啟%,這個構成係指派某個處理(handle ),並且,這 個處理(handle )係在應用這個元件時被用到。 所有作業系統應用程式界面(0S API )項目 數例外,係返回通用作業系統返回類型(〇s—Rtn 。 :斤有時間相關之應用程式界δ (API)項目點—(舉;來 :呼〇; /:“厂㈣)係返回一個作業系統刪除識別碼 ^ s — ancel Id —T )。這個刪除識別碼利用 某個關連之刪除項目點(舉例來說, ” 〇s — cancelPutAfterMssQ ),葬以 Λί w λ丄 關之操作。 sgy) ^刪除或終結這個時間相 j行緒優先順序等級(0s—ThreadPri〇rity—e)係 表不私派給某個執行緒或具有、某個執 ^
第20頁 1258701 五、發明說明(16) 〇S_THREAD_PRI〇RITY_LEVE;L〇 最高優先順序等級 〇3_ΤΗΙΙΕΑϋ_ΡίΙ:[〇ΚΙΤΥ_Ι^ΕνΕΙΑ ... 1 OS_THREAD_PRIORITY_LEVEL2 0 S_THREAD_PR I OR ITY _LEVEL3 〇S_THREAD_PRI〇RITY_:LEVE:L4 〇 S __THRE AD_P R 工〇R 工 T Y_LE VE L 5 OS_THREAD_PRIORITY_LEVEL6 〇 S__THREAD_PR 工〇R 工 T Y_IjE VE L 7 最低優先順序等級 第3表 不同之作業系統(0S )可能會對相同優先順序等級之馨 執行緒安排採取不同之處理(hand 1 e )。舉例來說,部分 相同等級之循環(r 〇 u n d r 〇 b i η ) π可執行’’執行緒係利用 時段或量子為基礎。其他相同等級之循環(round r〇b i η ) π可執行π執行緒貝丨!是個另丨J執行完成(亦即:直到 這,些相同等級之循環(r 〇 u n d r 〇 b i η ) π可執行π執行緒阻 擋為止)。EPOC作業環境係落於前者,並且,0SE作業環 境係落於後者。因此,指派相同優先順序等級之執行緒係 在指派動作前進行檢查。 這個執行緒函數係在某個執行緒或某個同步執行緒中φ 定義π用戶提供”項目點。所有項目點均必須為一個n C”函 數,用以接收一個空白之*扑數、並將空白返回,如以下 函數Os _ThreadFunc t i on _T 所定義。
Typedef void (Os_ThreadFunct i on_T ) (void
第21頁 1258701 五、發明說明(17) *arg —P ) 〇>示 im表 T 餘ci 秒或 毫數 間計 士守固 0 /ΛΊ 統一 系 。 業間 作時 個之 這示 表 秒 毫 用 利 示 表 係 秒 毫
Typedef Uint32 s
imeMS T 個互斥益()係—個基本執行緒同步元件,萨 以提,分享資源之互相排除。另外,互斥器(Μυχ)並^ 法分旱於各個程序或各個處理器邊界間。 以下係表示各種互斥器(Μυχ )服務。產生 (Create )係產生一個作業環境互斥器,藉以設置 要之底層作業系統(0S )資源。這個呼叫者係提供某個: 考值=一個處理(handle)。這個呼叫係將某個獨=^ 殖入這個處理(handle ),藉以識別這個互斥哭 (MUX ) 。 °° 原型 Os os 參數 .Rtn _E .createMux ( 〇s • Handle 一 T *handle—p handle_p I互處理,在成功產生時利用這個呼叫填入 返回:
第22頁 1258701
第23頁 1258701 五、發明說明(19) 繼承係在這個底層作鞏李祐f n Q a &丄 P呆示狁(〇S )内加以證明/確認 原型: 〇s _Rtn _E os_lockMux (〇s_Handle_T handle 參數: 統處理Ί以識別這個互斥 handle 返回: 這個釋放項目點係釋放一個取得或鎖 口 uux)。這個哞叫冑會解除鎖定具 斥盗 行緒,藉以等待這個互斥器(爾)。這個】之執 承係在這個底層作業系、統(〇s)内加以證明/確:序。人繼 原型: Os os 參數 •Rt η _Ε _re 1 easeMux ( 〇s -Handle—T handl e handle 作業系統處理, 錯以識別這個互斥器 〇s_ _RTN— _〇K 〇s_ _RTN_ _BAD—PARAM 處理無效。 返回
第24頁 1258701 五 ' 發明說明(20) 一個事件係一個執行緒同牛—μ 一 々# ^ ^ L , ^ ^ , 百U步兀件,藉以讓某個執行緒 能夠將某些條件發送給另一個執行、緒 以下係表示各種事件服藤。^ : ^ ^ ^ 務 廷個產生項目點係產生一 個作業環境事件,藉以設置所古+ # /Α。、 直所有需要之底層作業系統 (os)貢源。這個呼叫者係提供某個參考值給一個處理 (handle)。這個呼叫係將某個獨特數值瘦入這個處理 (handle ),藉以識別這個產生事件。
原型:
0s_Rtn_E os —createEvent (Os—Handle—T 氺handle—p 參數· *handle_p 事件處理,在成功產生時利用這個呼叫填入。 返回:
OS—RTN一〇Κ 成功產生。 〇S_RTN_ERROR 底層作業系統(〇S)資源設置失敗。 _ 這個破壞項目點係破壞或刪除一個作業環境事件,藉 以釋放所有設置之底層作業系統(os)資源。在這個呼叫 以後,這個事件處理係變成無效且不再應用。
第25頁 1258701 五、發明說明(21) 原 型 : Os _ _R t η —Ε os _ _destroyEvent (Os _Handle _T handle ) 參 數 ! [handle |作業系統處理,藉以識別這個事件^ 返回: 〇S_RTN_〇K 成功刪除。 OS RTN ERROR 事件處理無效。 這個設定項目點係設定一個作業環境事件。這個呼叫 將會解除鎖定所有執行緒,藉以等待這個事件。 原型:
Os _Rtn _E os—setEvent (Os—Handle—T handle) 參數:
Rndle I作業系統處理,藉以識別這個事件。
返回: 〇S_RTN_〇K 成功設定這個事件。 〇S—RTN—BAD—PARAM 事件處理無效。 這個等待項目點係阻擋一個作業環境事件,直到這個
第26頁 1258701 五、發明說明(22) ' 作業環境事件設定或信號發送。若這個作業環境事件設 定,這個呼叫將會清除這個作業環境事件並立即返回。否 則,這個呼叫將會加以阻擋,直到另一個執行緒設定這個 作業環境事件。當這個作業環境事件設定時,這個阻擋執 行緒係啟動,這個作業環境事件係清除,且控制係返回這 個呼叫者。 原型:
〇s—Rtn—E
〇s__pendEvent ( Os Jand 1 e ___T handle); 參數:
返回:
廷個清除項目點係清除一個作 業環境事作未設定,則這個服務將事件。若這個作 序⑽"。 、個服務將會變成-個正常操作程 原型: 〇s —Rtn —Ε 〇s —c 1 earEven t 〇s_Handle_T handle )
第27頁 1258701 五、發明說明(23) 參數: handle |作業系統處理,藉以識別這個事件。 返回: 0S_RTN_0K 成功清除這個事件。 〇S—RTN—BAD—PARAM 事件處理無效。 這個檢查項目點係檢查一個作業環境事件之狀態,設 定或清除。 原型:
Bool os —checkEvent ( Os —Handle_T handle); 參數·
Handle 作業系統處理,藉以識別這個事件。 返回: TRUE 這個事件係設定。 FALSE 這個事件係清除,或任何錯誤條件。 « 一個執行緒係表示這個作業環境1 1 2及這個底層軟體 系統内、單一之獨立執行路徑。這個底層軟體系統内之所 有執行緒係利用優先順序、時段之基礎,經由這個底層作 業系統加以安排。單一程序内之各個執行緒係分享一共用
第28頁 1258701
五_、發明說明(24) 之線性位址空間。 以下係表示各種執行緒服務。這個產生項目點係產生 一個作業環境執行緒,藉以設置所有需要之底層作業系統 (0S )資源。當這個中止旗標清除時’這個執行緒將會立 即啟動,並且,這個執行緒之”主要迴路”將會利用優先順 序為基礎,利用這個底層作業系統安排器加以啟動。否 則,這個執行緒係中止,並且,在明確回復前將無法進行 安排。這個π主要迴路”係表示這個執行緒之主要執行路 徑。這個函數應該絕對不會返回。這個呼叫者係提供某個 參考值給一個處理(hand 1 e )。這個呼叫係將某個獨特數鲁 值殖入這個處理(handle ),藉以識別這個產生執行緒。 原型:
0s Jtn_E os—createThread ( *hand1e_p , stackSize , priority , *ma i nLoop_fp , bSuspended , ^argument—p );
Os —Handle —T Uint32
Os —ThreadPr i or i ty—E Os一ThreadFunction一T Boo 1 void 參數:
1258701 五、發明說明(25) *handle__p stackSize 在成功產生時利用這個^----j 執行、诸之堆旦大小(以位元^'-~~ Priority 沒個產生執行緒之優先順序。 —~--———— ^mainLoop_fp 心個執行緒主要迴路之參考值。 -——— bSuspended ^ —---- ★argument_p 這個產生執行緒之引數。至這個勃扞緒之*孟抱改0 --—-- 返回: OS_RTN_OK 成功產生。 OS RTN BAD PARAM 偵測到不良輸入參數。 OS_RTN_ERROR 底層作業系統(〇S)資源設詈失敗。 這個破壞項目點係破壞或刪除一個作業環境執行緒, 猎以釋放所有設置之底層作業糸統(QS )資源。這個呼叫 並不會釋放執行期間、這個執行緒可能内部設置之資源。 為避免泡漏(1 e a k ) ’在這個執行緒破瓌前,所有這類資 源係解除設置。在這個呼叫以後,這個執行緒處理係變成 無效且不再應用。 原型: (Os—Hand 1ehand 1 e ) 作業系統處理,藉以識別
Os _Rtn _E os —destroyEvent 參數: handle
第30頁 1258701 五、發明說明(26) 返回: 0S_RTN__0K 成功刪除。 OS RTN_ERROR 執行緒處理無效。 這個中止項目點係中止一個作業環境執行緒。除非這 個作業環境執行緒回復,否則這個底層作業系統將無法加 以安排。 原型:
Os _Rtn _E os _suspendThread (Os_Handle_T handle ); 參數: handle |作業系統處理,藉以識別這個執行緒。 Π 返回: 〇S_RTN_〇K 成功。 〇S—RTN—BAD—PARAM 執行緒處理無效。 這個回復項目點係回復一個中止作業環境執行緒之執· 行。這個底層作業系統(0S )係利用優先順序為基礎,藉 以安排這個執行緒。 原型:
第31頁
1258701 玉*發明說明(27)
Os _R tη _Ε os 一 suspendThr ead (Os—Handle χ handle); 參數: I作業系統處理,藉以識別^ 运回: 〇S_RTN_OK 成功。 OS—RTN—BAD—PARAM 執行緒處理無效。 一個執行緒群組係協 動或啟始。第5A圖係表示 教行緒群組係提供下列服 —同步一個執行緒集 之所有執行緒至某個共用 示。 一啟動這個執行緒集 各個執行緒之主要執行路 一個執行緒群組之所 產生時事先指定。 執行緒群組並不需要 馬戶係提供一組指定執行 穩為同步執行緒”。一個 绪之基本功能,並且,這 目點’亦即:一個π啟始,, 調/同步一個群組之執行緒之啟 利用執行緒之處理流程圖。這個 務: a (亦即:啟動這個執行緒群組 啟始或會合點),如步驟494所 合(亦即:在同步動作後,啟動 經),如步驟496所示。 有執行緒需要在這個執行緒群組 應用標準執行緒。相反地,一個 緒給這個執行緒群組,其亦可以 同步執行緒係延伸一個標準執行 個同步執行緒係額外具有兩個^ 函數、及—個”主要迴路,,函數。
1258701 ίϋ明說明(28) 當這個執行緒群組同步時,這個執行緒群組之各個同步執 行緒將會利用優先順序為基礎,藉以啟動這個”啟始”函 數。這個"啟始”函數將會執行執行緒啟始需要之所有内邻 活動並返回。舉例來說,產生一個訊息仔列、設置某此古 速暫存記憶體(scratch pad memory)、啟始一個驅動1 式或部分硬體等等。當這個執行緒群組啟動時,這個” ^ 要迴路π函數將會利用優先順序為基礎,利用這個底層= 業系統(0S )啟動於各個執行緒内部。這個,,主要;回 / 表示這個執行緒之主要執行路徑。這個函數將絕對^备係 。 ^返 類似於標準執行緒,單一程序内部之所有同 羲分旱某個共用之線性位址空間。 仃緒 當某個執行緒群組產生時,這個用戶合 孰行緒資料表給這個執行緒群組, 同步 要之所有資訊。這個資料表之各 含第4表之Os —SyncThreadData —s資料類型。、目』係包 IStackSize φ [priority ^init_fp ^initArg_p j*locp_fp ^loopArg_p 蓽4表
1258701 五、發明說明(29) 這個同步執行緒資料表係利用空項目點終結:
OS _SYNC _THREAD _NULL 這個產生項目點係產生一個作業環境執行緒群組,藉 以產生這個執行緒群組内部之所有同步執行緒及底層作業 系統(0S )資源。這個產生操作並不會啟動這些同步執行 緒。這個產生用戶需要透過同步及啟動之操作,藉以明確 啟動這些同步執行緒。 這個呼叫者係提供某個參考值給一個處理 (hand 1 e )。這個呼叫係將某個獨特數值殖入這個處理 (handle ),藉以識別這個產生之執行緒群組。 原型=
Os __Rtη __Ε os —createThreadGroup (Os —Handle _T *hand1e_p,
Os—SyncThreadData—S 氺syncTable—p ); 參數: ★handle_p 執行緒群組處理,在成功產生時利用這個呼叫填入。 *syncTable_p 這個執行緒群組之同步執行緒表格之第一項目指標。這個提供 表格需要利用連續〇s—SyncThreadData—S項目組成’並 利用〇S_SYNC_THREAD_NULL 終結。
第34頁 1258701 五、發明說明(30) 返回 : OS_RTN_OK 成功產生。 OS—RTN—BAD—PARAM 在這個同步執行緒表格内部偵測到不良參數。 OS_RTN_ERROR 底層作業系統(OS)資源設置失敗。 這個破壞項目點係破壞或刪除一個作業環境執行緒群· 組,破壞這個執行緒群組之所有同步執行緒、及釋放這個擊 執行緒群組設置之所有底層作業系統(OS )資源。這個呼 叫並不會釋放任何同步執行緒可能内部設置之資源。為避 免洩漏(1 eak ),在這個執行緒群組破壞前,所有這類資 源係解除設置。在這個呼叫以後,這個執行緒群組處理係 變成無效且不再應用。 原型:
Os _Rtη _Ε os—destroyThreadGroup (Os—Handle—Thandle ) 參數: 返回:
handle_作業系統(OS)處理,藉以識別這個執行緒群組。 OS__RTN_OK 成功刪除。 〇 S—RTN—BAD—PARAM 執行緒群組處理無效。 第35頁 1258701 五、發明說明(31) 這個啟始/同步項目點係同步某個作業環境執行緒群 組之所有同步執行緒。這個啟始/同步項目點係確保這個 執行緒群組之各個同步執行緒均已經啟始。特別是,除非 所有同步執行緒均已經執行"啟始”函數並返回,^則^個 呼叫將不會返回。 ' .R t η _Ε.ini t Thr eadGr oup (Os
Handle handle handle (QS) 返回:
〇S RTN OK 〇s_rtn_bad_param 執行緒群組處理I纷 這個啟動項目點係啟動某 有同步執行緒。這個呼叫僅^ 二碳丨兄執行緒群組之所 加以呼叫。這個呼叫係可以4這個執行緒群組同步後 執行緒進入”主要迴路"函執行緒群組之各個同步 優先順序為基礎而加以發生:係利用各個同步執行緒之 同步執行绪之執行。相對地之個呼叫並不需要等待這些 作業系統(0S )安4# 4 μ ,<個呼叫僅會利用f@ y文地這些同步勃 9刃用廷個底層 J /執仃緒、並加以返回。 苐36頁 1258701 五、發明說明(32) 原型:
Os _Rtη _Ε 〇s一startThreadGroup (〇s__Handle—T handle ) 參數: handle |作〇S )5理,這個執行緒群組 返回: 〇S_RTN_OK 成功。 〇S一RTN_BAD—PARAM 執行緒處理無效。 ^ 一個訊息係一個執行緒同步元件,藉以讓某個執行緒 j夠將控制及資料同時發送給另一個執行緒。這些控制及 貝=係利用訊息佇列以串聯應用。特別是,某個執行緒可 ^又置T個訊息、將這個訊息殖入資料、並將這個殖入訊 心放置在一個訊息佇列中,藉以傳送至另一個執行緒。 另外,訊息係可以橫跨於各個處理器邊界。 訊心可以包含任意組合之資料類型,例如:將資料直 自匕I於^個訊息之數值,及,將資料指標包含於這個訊 心之參考值。 °
哭i# =:内部之指標係謹慎使用 -…, 二I昆間轉換。另外,若一個訊息需要在作業系統(◦ 哼盔、^2内部破壞時,則這個作業系統(os)抽象層 放這個刪除訊息内部傳送之參考資料方塊。3 "貝;:斗方塊需要利用這個用戶進行外部管理以避免)
第37頁 I2587〇i 說明(33) &、發明為 (1 e a k )。如此,在一個訊息内部之參考資料傳送(經由 #標)應該儘可能避免。 這個設置項目點係設置單一訊息。這個設置項目點係 返回一個void *pointer至這個呼叫者,藉以參照表示這 個訊息之記憶體方塊。這個記憶體方塊之大小係等於需要 之訊息大小(加上少量之訊息表頭,其對於這個用戶係隱 藏的)。在設置一個訊息後,這個用戶係可以將資料殖入 這個記憶體方塊。
原型:
〇s _Rtn _E os_a 11ocMsg (Ui nt32 size, void 氺氺msg 一pp ); 參數:
Size
*msg_pp 這個訊息之設置大小。__ 返回void *pointer之指標,藉以參照這個設主
返回·_
〇S_RTN_OK 成功。 ___·一·一·^ OS 一RTN一_BAD—P ARAM 大小無效。 _____----^ OS_RTN__MEM_ERROR 滿足這個要求之記憶體不足。 ___-一^ 這個釋放項目點係釋放或解除設置單一訊息 第38頁 1258701
五、發明說明(34) 原型: 〇s _R t η _Ε os一freeMsg (void 氺msg一p ) 參數: ^msg_p 這個訊息之指標
一個訊息仔列係協調各個執行緒間之訊息傳遞。一個 訊息佇列係利用π先進先出(F IF0 )記憶體π為基礎,藉以 進行訊息之管理。某個’’擁有π執行緒係產生這個訊息佇 列。其後,外部用戶或’’使用π執行緒便可以開啟訊息、並 將這些訊息放置至這個訊息佇列。事實上,這個訊息佇 列之訊息應該只能利用,’擁有,,執行緒進行擷取及放置。 另外,訊息佇列係獨立於各個系統處理器/各個通信 處理器邊界。簡單地言,π使用π執行緒係可以透明地同時· 開啟及放置區域訊息佇列(位於相同中央處理單元 (CPU ))及遠距訊息佇列之訊息。 各個訊息佇列係利用某個全域之可見佇列識別螞 (I D )加以識別。一個佇列識別碼(I 〇 )係可以用來栺定 1258701 五、發明說明(35) 單一訊息佇列。另外,佇列識別碼(I D )係可以跨越整個 軟體系統,亦即:所有處理器及所有軟體元件。 typedef Uint32 Os_Qid_丁; 訊息優先順序等級(0 s _MsgPriority _E)係表示指 振給某個訊息之相對優先順序。在較佳實施例中,相對優 先順序係表示於第5表中。 〇S_MSG_PRI〇R 工 ΊΎ_Ι^ΕνΕΙ^〇 最高優先順序等級 〇3_Μ3Θ_ΡΙΙΙ〇ίΙΙΤΥ_Ι^ΕνΕΙΛ OS_MSG_PRIORITY_LEVEL2 OS_MSG_PRIORITY_LEVEL3 〇3_Μ30_ΡίΙΙ〇ίΙΙΤΥ_ΕΕνΈ]^4 〇S_MSG_PRI〇RITY_LiEVEL5 OS_MSG_PRIORITY_LEVEL6 ... OS+MSG+PRIORITY+IjEVEL^ 最低優先順序等級 第5表 這個產生項目點係利用要求大小為基礎,藉以產生一 ® 個作業環境訊息佇列、並設置所有需要之底層作業系統 (0S )資源。這個呼叫器係提供一個參考值給某個處理 (hand 1 e )。這個呼叫係利用某個獨特數值殖入這個處理 參考值,藉以識別這個產生之訊息佇列。
第40頁 1258701 五、發明說明(36) 原型:
Os —R t η —Ε *hand1e—p , q i d, size);
os —createMsgQ (Os —Handle —T
Os __Qid _T Uint32 參數: *handle_p 訊息佇列處理,在成功產生時利用這個呼叫填入。 Qid 專門指定這個訊息佇列之識別碼。 Size 這個要求訊息佇列之大小:訊息之最大數目。
返回: 〇S—RTN—OK 成功產生。 〇S—RTN—ID—EXI ST 這個輸入訊息佇列識別碼(QID)之訊息佇列已經存 在。 〇S—RTN—BAD—PARAM 偵測到不良輸入參數。 OS_RTN_MEM_ERROR 要求記憶體設置失敗。 OS_RTN_ERROR 底層作業系統(〇s)資源設置失敗。 這個破壞項目點係破壞或刪除一個作業環境訊息佇 β1 列、及釋放所有設置之底層作業系統(0S )資源。另外, 這個操作亦刪除或釋放目前佇列之所有訊息。在這個呼叫 以後,這個訊息佇列處理係變成無效且不再應用。
第41頁 1258701 五、發明說明(37) 原型:
〇s Rtn E os__destr〇yMsgQ (Os—Handle—T handle); 參數: handle_作業糸統(〇S )處理’藉以識別這個訊息仔列。 返回 :
這個開啟項目點係開啟一 呼叫係將某個”使用者”執行緒 藉以讓這個”使用者”執行緒能 息傳遞給這個π擁有11執行緒。 值給某個處理。這個啤叫係利 考值’藉以結合這個要求訊息 個作業環境訊息佇列。這個 結合於某個訊息佇列場合, 夠經由這個訊息佇列,將訊 這個呼叫者係提供一個參考 用某個獨特處理瘦入這個參 佇列。 OS_RTN_OK 成功刪除。 〇S__RTN—BAD—PARAM 訊息彳宁列處理無效。 原型:
0s_Rtn E os —openMsgQ 參數:
(0s —Handle ―丁 〇s Jid T *hand1e —p, Qid );
★handle Qid 啟或結合訊息彳宁。
1258701 五、發明說明(38) 返回 : OS_RTN__OK 成功產生。 OS_RTN_NOT_FOUND 訊息佇列識別碼(QID)無效,這個訊息佇列識別碼 (QID)之訊息佇列並不存在。 OS_RTN_ERROR 一般錯誤,訊息佇列結合失敗。 這個關閉項目點係關閉一個作業環境訊息佇列。這個 呼叫係將某個”使用者π執行緒及某個訊息佇列解除結合。 在這個呼叫以後,這個訊息佇列處理係變成無效、且不再 應用。另外,利用某個關閉處理執行之任何訊息佇列應用籲 程式界面(ΑΡ I )呼叫均可以產生未定義之行為。 原型=
Os _Rtη _Ε os_closeMsgQ (Os_Handle_T handle_p ); 參數: handle 作業系統(OS )處理,藉以識別這個訊息仔列。__ 返回: 〇S—RTN—OK 成功關閉或解除結合。 OS_RTN_BAD_PARAM 訊息佇列處理無效。
這個放置項目點係將某個訊息放置於一個作業環境訊 息佇列。這個訊息係利用優先順序為基礎,藉以放置於這
第43頁 1258701 五、發明說明(39) 個訊息彳宁列。若這個”擁有”執行緒係阻擋於這個訊息佇 列,這個π擁有”執行緒將會啟動、並接收這個訊息。若這 個訊息係成功佇列,這個訊息佇列係擁有這個訊息,直到 這個訊息自這個訊息佇列”拉出 原型ζ
Os _Rtη _Ε handle , priority ’ 氺氺msg _pp 〇s—putMsgQ (〇s—Handle —
〇s—MsgPr i or i ty—E
Void 參數: handle 作業系統(OS)處理,藉以識別這個訊息佇列。 priority 才曰派給廷個輸入訊息之優先順序。利用優先順序為基礎,放置 於這個訊息佇列之訊息。 **msg_pp ^個甙思指標之參考值。若這個訊息係成功佇列,則這個訊息 指標係歸零(NULLED )。 返回: OS_RTN_OK 成功,廷個訊息佇列結层之邻自。 .—… OS—RTN—BAD—P ARAM 訊息佇列處理或訊息指桿&效。 …· 〇S—RTN—QUEUE—FULL· Λ恩^丁列填滿’無法再於罟;言·訊_ 5 . ---—-—五心丨凹…心丨丁:π
a A* 第44頁 1258701 五、發明說明(40) 這個時間 指定時間延遲 列。在這個延 仔列之後面或 (Cancel ID ) 個刪除識別碼 直到运個延遲 若這個操 係擁有這個訊 在這個延遲以 息係加以刪除 後放置(put after time )項目點係在某個 後’將某個訊息放置於一個作業環境訊息仔 遲期間結束後’這個訊息係放置在這個訊息 結尾。另外,這個操作亦將某個刪除識別碼 提供給這個要求者。這個要求者係利用這 (C a n c e 1 I D ),藉以終結這個放置操作, 周期結束以後。 作係成功建立這個要求延遲,這個訊息仵列 息’直到這個訊息由這個訊息符列”拉出,,。 後,若訊息π放置操作出現錯誤,則這個訊 、並釋放出來。 原型 Os os
-Rtn —E .putAfterMsgQ (〇s Handle 丁 Os TimeMS T 一·- 〇s—MsgPriority— Void 〇s __Cancel Id T 參數 handle , delay , priority , 氺氺msg _pp ^cancel Id _p ) 作業^統(〇s)處理,藉以 1^用_毫秒為單位 指派給這個輸入訊息之優先順 利用優先順序為基礎,藉以放置在這個訊農佇^ ° 一
1258701 五、發明說明(41) **msg—pp 某個訊息指標之參考值。若時間後放置(put After Time) 操作係成功建立,則這個訊息指標係歸零(NULLED)。 *cancelld_p 刪除識別碼,返回至這個呼叫者。這個刪除識別碼(Cancel ID)係可以用來刪除或終結這個操作。 返回 : OS_RTN_OK 成功,訊息將會在這個要求延遲後〃放置〃。 I OS_RTN_BAD_PARAM 訊息佇列處理或訊息指標無效。 這個時間後刪除(p u t a f t e r t i m e )項目點係在某個 時間要求後,刪除或終結一個放置操作。這個呼叫者係利® 用這個刪除識別碼(Cancel ID ),藉以要求這個删除操 作。這個呼叫係刪除或釋放結合於這個時間後放置(pu t a f t e r t i m e )要求之訊息。 原型=
Os _Rtη _E
os —cancelPutAfterMsgQ (Os—Cancelld—T cancelld );
cancelld 指定這個時間後放置(Put After Time )要求以進行刪除| 或終結之識別碼。 返回:
第46頁 1258701 五、發明說明(42) OS___RTN_OK 成功’終結時間後放置(Put After Time)— 刪除訊息。 、 0S___RTN_N0T_FOUND 刪除硪別碼無效。未找到這個識別碼之時間後 After Time)要求。這可能是某個無效要求、或這個丨 Put After Time)插作已經⑸ 〇 這個等待項目點係阻擋或等待一個訊息佇列,直到某 個訊息出現。若訊息係在觸發時佇列,則這個呼叫係即刻 自這個訊息佇列之開頭返回這個訊息。否則,這個呼叫係 阻擋這個呼叫執行緒,直到某個放置操作或時間後放置鲁 (Put After Time )操作結束。在這個時候,等待操作係 將這個"放置"訊息返回至這個呼叫纟。待成功後,這個訊 息擁有柘係轉移至這個呼叫者。這個訊息佇列擁有者,特 別是產生這個訊息佇列之執行緒,係可以僅僅觸發這個呼
原型 • Os 一R t η _Ε os 一wai tMsgQ ( Os 一 —Handle 〜τ handle , 參數 • void 氺氺msg pp )
1258701 五、發明說明(43) 〇s 一RTN—〇K 成功由這個訊息件列拉出之訊息Cmsg邱valid)。] 〇S RTN BAD PARAM - - 1 δίΐ心彳丁列處理备效。 ^ ~--------^^ ! 這個取得項目點係由一個訊息佇列中拉出某個訊_ , 若存在的話。若至少一訊息係佇列,則這個呼叫係即^自 這個訊息佇列之開頭返回這個訊息。否則,這個呼叫係、 回佇列空白狀態。待成功後,這個訊息擁有權係轉移至^ 個呼叫者。這個訊息符列擁有者,特別是產生這個訊· $ 列之執行緒,係可以僅僅觸發這個呼叫。 ^ 原型:
Os _Rtη _Ε handle , pp )
os —getMsgQ (Os —Handle —T void 參數: handle **msg_pp 作業糸統(〇s)處理,識別i~ ^ 返回: 〇S—RTN—ΟΚ 成功,由這 valid)。 〇S—RTN—BAD—PARAM 訊息佇列處理無效。 —~~-----— 〇S—RTN—QUEUE—EMPTY 訊息彳丁列空白。 一-----s _
第48頁 1258701 五、發明說明(44) 一個 執行緒能 明確地, 封包移動 器並不包 塊。 這個 目點係返 通信緩衝 設置。在 料殖入這 通信緩衝器係一個執行緒同步元件, 夠將:個資料方塊或封包傳送至另们 通&緩衝器係用來支援通過這個系統之大量資料 。通信緩衝器僅包含原始資料。另外,通^緩衝 含資料類型,藉以參照其他通信緩衝器或資料方 設置項目點係設置單一通信缓衝器。這個設置項 回void *P〇inter至這個呼叫者,藉以參照又這個、 器。這個通信緩衝器係利用大小參數為基礎加以 設置某個通信緩衝器以後,這個用戶係可以將資 個通信緩衝器。 h 、、 原型 Os os 參數
Rtn E • ......... al locComraBuff (Uint32 void size, f
—PP size 這個通信緩衝器之設置大小。 —---- - - - — - - ------- - - ___— 一 ____ **buf f一pp 返回void ^pointer之指標,藉以參照這個設置之通信緩 衝器。buff一jp係指向這個通信緩衝器内部之第一用戶可利 用位置。 L~---—^ --- 返回:
第49頁 1258701
OS_RTN_OK 成功。 ----一' " " 〇S—RTN一 BAD—PARAM ^ 上厂 '-----—--- ----- Α小無效。 -- OS一RTN一MEM一ERROR 滿足故個要求之可4,丨。 .— j π 口已 1心脏 I 一__—一·-- &個釋放項目點係釋放或解除設置單一通信緩衝器 原型:
Os Rtn E • ·—· ^
〇s_getMsgQ (void *buff—P); 參數: ★buffer—p /這個通信、指標。~ '" 返回: OS_RTN__OK 成功。 〇 s 一RTN—BAD___PARAM 通信緩衝器指標無效。指標並未參照某個有效通信缓衝 器。 —、通#先進先出(F IF 〇 )記憶體係管理各個執行緒間之 貝料封包f通信緩衝器)轉移,包括:橫跨各個處理器邊. 界之透明資料轉移。這個功能係用來支援需要轉移大量資 料(亦即··通用行動電信服務(UMTS )協定堆疊協定資料 單元(PDU ))之軟體元件。 一個”擁有”執行緒係產生這個先進先出(F丨F0 )記憶 體。此後’外部用戶或”使用”執行緒係可以開啟及放置通
第50頁 1258701
五、發明說明(46) 信緩衝器至這 > q 1 進先出(F I F0 )記憶體之、緩/ F〇 )記憶體。另外,這個先 有"執行緒加以擷取或拉出友。衝器僅僅應該利用這個”擁 獨立於各個系統處理器/通上先進先出(F I F0 )記憶體係 說,π使用”執行緒係可以^信處理器邊界。簡單地 Λ透明i士 R n士 先出(FIFO )記憶體(相同 H 0寸開啟及使用區域先進 距先進先出(FIFO )記憶體。央處理單元(CPU ))及遠 體係利用某個全域之可ϋ二各個先進先出(FIFO )記憶 特地識別。 進先出識別碼(FIFO ID )獨 這個先進先出識別碼 先進先出(F IF 0 )記憶體 ID )係跨越整個軟體系統 體元件。
CPWO id)係獨特地指定單一 ° &個先進先出識別碼(F IF0 ’亦即··所有處理器、及所有軟 old τ
Typedef Uint32 0s_Fif 這個產生項目點係利用這個 生—個作業環境先進先出(FIFq ^ ^小為基礎’藉以產 有需要之底層作業系統(0S )資源:思體’並且’設置所 這個乎叫者係提供某個參 ;利用某個獨特數值殖入這個處::::處理。這個呼叫 產生先進先出(FIFO)記憶體。,考值,藉以識別這個
第51頁 1258701
*hand1e —p, f i fold ^ size);
os—createFIFO (Os Handle T — -一^一上 〇s _Fi f old T Uint32 參數: *handle—p 先進先出(FIFO)記憶成功產 填入。 fifold 獨特指定廷個先進先出(FIF0)記憶體之識別^ — size 這個要求先進先出(FIFO)記憶體之大小:這個先進先g (FIFO)記憶體可以管理之緩衝器數目。 返回: 〇S 一RTN 一OK 成功產生。 OS—RTN一BAD一PARAM "i貞測到不良輸入夺數。 os_rtn_mem_error 設置要求記憶體失敗。 OS_RTN_ERROR 設置底層作業系統(〇s)資源失敗。 ' 這個破壞項目點係破壞或刪除一個作業環境先進先出 (F I F0 )記憶體,藉以釋放所有設置之底層作業系統 (0S )資源。另外,這個操作亦會刪除或釋放目前存在這 個先進先出(F IF0 )記憶體之所有通信緩衝器。在這個呼 叫以後’這個先進先出(F IF0 )記憶體處理係變成無效且 不再應用。
第52頁 l2587〇l
原型:
0s_Rtn—E 〇s_destroyFIFO (Os_Handle_T handle ) 參數: — handle 作業系統處理,藉以識別這個弁.谁先出(FIFO)記憶體。 回·· 〇S__RTN_OK 成功刪除。 〇S___RTN_ERROR 先進先出(FIFO)記憶體處理無效。 這個開啟項目點係開啟一個作業環境先進先出 (FIFO)記憶體。這個呼叫係將某個”使用者”執行緒結合 於某個先進先出(F IF 0 )記憶體場合,藉以讓這個,,使用 者11執行緒能夠經由這個先進先出(F IF0 )記憶體,將通 信緩衝器傳遞給這個”擁有”執行緒。這個呼叫者係提供一 個參考值給某個處理。這個呼叫係利用某個獨特處理^入 這個參考值,藉以結合這個要求先進先出(F丨F〇 )記情 原型:
Os、Rtη _Ε os —openFIFO (Os —Handle —Τ *handle _p 0s —Qid —T f i fold ) 參數:
第53頁 1258701
五、發明說明(49) ★handle_p 先進先出(FIFO)處理,在成功產生時利闬這個呼叫填入。 fifold 獨特指定這個開啟或結合先進先出(FIFO)記憶體之識別碼。 返回: OS一RTN—OK 成功產生。 OS__RTN__NOT_FOUND 先進先出哉別碼(FIFO ID)無效,這個先進先出識 別碼(FIFO ID)之先進先出(FIF〇)記憶體並不存 在。 OS—RTN一 ERROR 一般錯玦,延個先進先出(FIF〇)記憶體結合失敗 這個關閉項目點係關閉 (F I F 0 )記憶體。這個呼叫 個先進先出(FIFO )記憶體 這個先進先出(FIFO )記憶 用。另外,利用某個關閉處 (FIF〇 )記憶體應用程式界 定義之行為。 一個作業環境先進先出 係將某個”使用者”執行緒及某 解除結合。在這個呼叫以後, 體處理係變成無效、且不再應 理執行之任何先進先出 面(API )呼叫均可以產生未 原型:
0s _Rtn _E handle ) os —closeFIFO (Os —Handle T 參數: _
1258701 五、發明說明(50) 返回: OS—RTN—OK 成功關閉或解除結合。 OS一RTN—BAD一PARAM 先進先出(FIFO)記憶體處理無效。 這個放置項目點係將某個通信緩衝器放置於一個作業 =境先進先出(FIFO )記憶體。這個先進先出(FIF〇 )記 憶體係放置於這個先進先出(F丨F〇 )記憶體之後面或結 尾。若這個操作係成功,則這個先進先出(F丨F〇 )記憶體 係擁有這個通信緩衝器,直到這個通信緩衝器自這個先進 先出(FIFO )記憶體•,拉出”。 原型:
0s _Rtn_E handle , 氺氺bu f f _pp , size);
°s_putMsgQ (Os__Handle_T void
Uint32 參數: (handle ---- 作業系統(〇S)處理,藉以識別這個先進先出(FIFO)記憶 **buf f一pp 某個通信緩衝器之參考值。若這個通信緩衝器係成功放置於這 個先進先出(FIF0)記憶體,則這個通信緩衝器指標係歸零 (NULLED)〇 V size 這個通h緩衝器之大小(利用位元組為單位)。 ----
1258701 五、發明說明(50 返回:
〇S_RTN MEM ERROR --—______________ 成功,放置進先出 言緩衝器。 敗。 —
〇S—_RTN—QUEUE FULL 這個 記憶體, (FIFO ) 一個通信 器、並返 呼叫執行 (FIFO ) 信緩衝器 擁有權係 體擁有者 行緒,係 原型: 先進先出T^Ffo)記憶體填滿,無 緩衝器至這個先進先出(FIFO)記憶體 寻符項目點係 直到某 記憶體 緩衝器 回這個 緒,直 記憶體 返回至 轉移至 ’特別 可以僅 個通信 。若這 ,貝|J這 通信緩 到某個 。在這 這個呼 這個呼 是產生 僅觸發 阻擋或等待一個先進 緩衝器出現於這個先 個先進先出(FIFO ) 個呼叫係即刻拉出這 衝器。否則,這個呼 緩衝器"放置π於這個 個時候,這個等待操 叫者。待成功後,這 叫者。這個先進先出 這個先進先出(FIFO 這個呼叫。 進先出 記憶體係包含 個通信緩衝 叫係阻擋這個 先進先出 作係將這個通 個通信緩衝器 (F IF 0 )記憶 )記憶體之執
第56頁 1258701
Os _Rtη _E os—waitFIFO (〇s—Handle」 void
Uint32 參數: handle , **buf f —pp, *size—p ); handle 作業系統(OS)處理,藉 體 乂鐵別這個先進先出(FIFO) r*buf f—pp rsize_p # 返回:
OS RTN OK ―成功’由i個先進先出(FIl^y記憶餘 器(buff—pp 及 Size p valid) ° 、衝 ϋΤΝ—BAD=g^M |先進先出YFIFO)記憶體處理無效 這個取得項目點係由一個先進先出(F丨F〇 )記 拉出某個‘通信緩衝器,若存在的話。否則,這個呼=體中· 回先進先出(F IF0 )記憶體空白狀態。待成功後,係返 信緩衝器擁有權係轉移至這個呼叫者。這個先進先^個通 (F I F0 )記憶體擁有者,特別是產生這個先進先出 (F I F0 )記憶體之執行緒,係可以僅僅觸發這個呼叫
第57頁 1258701 五、發明說明(53) 原型:
Os _Rtη _Ε handle , 氺氺buf f _pp , *s i ze—p );
〇s _getFIFO (Os __Handle ___T void
Uint32 參數: handle 作業系統(〇S)處理,藉以識別這個訊息佇列。 **buf f__pp 某個通信緩衝器指標之參考值。在成功時利用某個通信緩衝器 指標填入。 *size_p 通信緩衝器大小。在成功時利用這個缓衝器大小填入。 返回: 〇S—RTN 一OK 成功,由這個先進先出(FIFO)記憶體拉出之通信緩 衝器(buff _pp 及 size一_p valid)。 OS—RTN—BAD一PARAM 先進先出(FIFO)記憶體處理無效。 OS RTN—QUEUE—EMPTY 先進先出(FIFO)記憶體空白。 這個作業系統應用程式界面(〇S AP I )係提供一種具 有反覆器(iterator)功能之常見連結串序(nnk 1 i s t )實施。這個特徵係使連結串列能夠透過某種共用機 制,在整個系統内應用。 這個產生項目點係產生某個具有反覆器(iterator) 之空白串列,藉以參照這個串列之終點(亦即··終結這個
第58頁 1258701 五、發明說明(54) 串列之零點(N U L L )元件)。這個哞 值給-個處理(handle)。這料提供某個爹考 入這個處理(handle),藉以識別個獨特數值歹直 口座生串列。 原型 Os os 參數 _R t η __Ε _cr ea t eL i s t ( 〇s .Hand 1 e *handl
OS_RTN_OK 成功產生。 ^~~~---- 〇S_RTN_MEM_ERR〇R 要求記憶體設置失敗二 ' --- OS_RTN_ERROR 底層作業系統(〇s)資源設置^^7 -- 這個破壞項目點係破壞某個串列及其反覆器 (iterator )。這個用戶係在破壞這個串列前&空這個串 列。否則,這個串列内之所有剩餘元件係洩漏,$這些元 件未在這個串列外部加以管理。在這個呼叫以後,^ ^ 列處理係變成無效且不再應用。 ^ & 原型:
Os __Rtη _Ε os—destroyList (〇s—Handle—Τ handle) ·
第59頁 1258701
五、發明說明(55) 參數: handle 理,藉以識別這個串列 返回: 〇3_1^贝__〇^ Γ:--~~~ 成功刪除。 〇s—RTN一_Error ----- 串列處理無效。 ---- =個附加το件項目點係根下特 個兀件:力:於這個串列之終點,其包括: 將某 若這個串列係空白,這個串列之反覆器 1 teraj)將會在這個串列之開頭指向這個元件。 a ===反覆器(iterator )已超過這個串列之終 (item。"將會在這個串列之結尾指向 這個新項目。 原型:
Os _Rtη _Ε
Handle _T void handle , * i tem—p os —appendList (〇s 蒼數· handle ritem_p t業系統(〇s) &,藉以
第60頁 1258701
下 面
列蛀们反覆為(erator)前插入元件項目點係根據 J特殊條件,將某個元件附加於反覆器(iterator)前 之這個串列,其包括·· •若這個串列係空白,這個串列將會放置於開頭,並 且’這個反覆器(i t e r a t 〇 r )將會參照這個串列之終點 (亦即:終結這個串列之空白(null )元件)。 •若這個反覆器(iterator)已超過這個串列之終 點’這個反覆器(i t e r a t 〇 r )將會加入結尾,並且,這個 反覆器(iterator )將會持續參照這個串列之結尾(亦 即:終結這個串列之空白(NULL )元件)。
原型: 〇s 〜Rtη —Ε 〇s _insertBefore Iterator (〇s 〜Handle—T handle ’ void *item 一P )
第61頁 1258701 五、發明說明(57) 參數 handle 處理’藉以~— ★item_p [之兀件,透過某個空白秸禋糸股;- --*-- 1/1 ^ 回: 〇S_RTN__OK 成功刪除。 ------一-- OS_RTN_BAD_PARAM 串列處理無效。 -- pS—RTN 一 ERROR 將延個7L件加入這個串列之需要記憶體設置失^ ❿ ,這個反覆器(iterator )後插入元件項目點係根據下 】特殊條件’將某個元件附加於反覆器(i t e r a ^ )後面 之這個串列,其包括: •若這個串列係空白,這個要求係利用 〇S〜RTN—END—OF—LIST 狀態拒絕。 •若這個反覆器(i ter at or )已超過這個串列之終 點’這個要求係利用os —RTN —ENd __〇F —LIST狀態拒絕。 原型:
〇s—Rtn_E 〇s_insertAfterIterator (Os —Handle —T handle void 氺 i tem —p ); 參數:
第62頁 、發明說明(58)
Handle — item—p 返回: 固串列 —丨—~-- 成功刪除
〇S_RTN OK
os—RTN_END___OF LIST 反覆态_ 在這個串列後面插入。 v彳之終點’ 無法
os^rtn^bad^param 〇S_RTN_MEM_ERROR 串列處理無效 這個反覆器(iterator)取得元件 參考值至放置在這個串列反覆器(ite ^ =係返回某、個 個元件係根據下列特殊條件, 0Γ之元件。這 括: 由化個串列移除,其包
(NULL •若這個串列係空白’這個呼叫係返回空白 •若這個反覆器(iterat〇r)已护 點,這個呼叫係返回空白(NULL ) 。 °、廷個串列之終 原型: void*
Handle _τ handl e os—getIteratorltem (Os 參數: handle 系統(os)處理: 1258701 五、發明說明(59) 返回: NULL 串列無效、串列空白、或反覆器(iterat〇r)空 Otherwise 參照這個反覆器(iterator)之元件。 這個反覆器(iterator )移除元件項目點係移除這個 串列反覆器(iterator )之元件。這個元件係根據下列特 殊條件,返回至這個呼叫者,其包括: •若這個串列係空白,這個呼叫係返回空白 (NULL ) 〇 •若這個反覆器(iterator)已超過這個串列之終 點,這個呼叫係返回空白(NULL )。 ' 原型:void* os—removelteratorltem (Os參數: • Handle—T handl e
Handle 作業系統(〇S)處理,藉以識別這個串列 返回: NULL 串列無效、串列空白、或反覆器 Otherwise 參照這個反覆器(iterator)之元件。 這個超過反覆器(iterator )項目點係根據下列特 殊
第64頁 !2587〇ι
條件’超過這個串列反覆器(i terator) 一個位置,其包 括: •這個反覆器(iterator )可以依序前進至這個串列 之終點。然而’當這個反覆器(i t e r a t 〇 r )到達這個串列 之終點後,進一步之前進將會返回 〇S—RTN—END—OF—LISTNLt。 •若這個串列係空白,這個呼叫係返回 〇S—RTN—END—OF—LIST狀態。 原型: 〇s _R t η _Ε os—advance I terator (Os—Handle—Τ handle 參數: —
Handle 作業 系統(〇S)處理,藉以識別這個串列。 返回:
這個重設反覆器(i t e r a t 〇 r )項目點 反覆器(i t e r a t o r )皇這個串列之開頭或 係重設這個串 列 -2Z- __ 月|J面 。
OS_RTN_OK 成功M進至下一個元件。 ' — OS_RTN_END_OF_LI ST 無法超過這個反覆器(iterat〇r),已在這個电 列之終點。 OS一RTN—BAD一PARAM 串列處理無效。 ~ 〇S__RTN_END_〇F_:LI ST 這個反覆為(iterator)已在這個串列之铢f占。 第65頁 !2587〇ι
^___ 五、發明說明(61) 原型:
〇s _Rtη __E handle);
os —reset Iterator (〇s—Handle —T 參數: handle_I作業系統(〇s)處以識別這個 返回: 0S_RTN_0K 刖進至下一個元件之反覆器(iterat〇r)T~ OS_RTN_BAD_PARAM 串列處理無效。
這個作業糸統應用程式界面(〇 S A P I ) 1 2 〇係提供一 種常見之雜散(hash )表格實施。這個特徵係在整個系統 内提供一種共用之雜散(hash )表格機制。較佳者,這個 作業糸統應用程式界面(〇 S A P I ) 1 2 0係支援由一般堆5積 開始之動悲記憶體設置,雖然其他實施亦可以使用。、 這個設置記憶體項目點係由一般堆積開始設置某個記 憶體方塊。這個常見堆積之位置係取決於作業系統 (os)。這個函數與標準輸入/輸出呼叫(mall〇c)係呈 現相同行為。另外,這個函數更超過標準輸入/輸出呼叫 (malloc )以支援作業系統(os )之獨立性。 原型: void*
第66頁 1258701 五、發明說明(62) os_allocMem (Uint32 size 參數: size 返回: 要求記憶體方塊大小
NULL 記憶體設置錯誤。 Otherwise 參照這個設置記憶體。
這個釋放記憶體項目點係釋放或解除設置某個記憶體 方塊至.這個一般堆積。這個一般堆積之位置係取決於作業 系統(0S )。這個函數與標準輪入/輸出呼叫(free )係 ..x /輸出咬 呈現相同行為。另外,這個函數更超過標準輸i/吟叫係 叫(free )以支援作業系統(0S )之獨立性。這u ,其他 酉己合os —allocMem返回之記憶體參考值使用 輸入則可以產生未定義之行為。 另外 原型: void os一f reeMem 參數: void 氺 mem — p Φ *mem p 返回: none
釋放記憶體方塊之指標
第67頁 1258701
五、發明說明(63) *以下係說明先前類別未嘗提到之其他各種服務。這個 毛秒延遲項目點係阻擋這個呼叫執行緒在表示 執行。 原型:
Os Rtn E (〇s·TimeMS—T m i 11 i second )
os —de1ayM i11i Sec 參數:
返回:
這個取得目前 D <HRT >時間數值 可間項目點係返回這個 (利用毫秒為單位)。 目前自由執行之 原型: _
Os _TimeMS _T os —getTime (void ); 參數: none
第68頁 1258701 五、發明說明(64) 返回:
在這個較佳實施例中’這個無線通信裝置係使用一個 軟體模型語言(SDL)璋接層110。這個較佳實施例之軟體 模型語言(SDL)埠接層U0係讓單執行緒程式碼產生工且 所,型之軟體可以執行做為多執行緒軟體。另外,這個較 佳實施例之軟體模型語言(SDL )埠接層〗丨〇係利用 Telelogic Tail之C—Micro輕度(light)整合以產生程式 =這個軟體模型語言(SDL)琿接層UG係有效地將這個 輕度(Ught)整合(單執行緒)轉換為某個重度 軟^^刑)任整+合/多執行度)。$外’這個較佳實施例之 之二:J ° SDL )璋接層11 0係透過某個多執行緒環境 ^加好處,進而得到降低之程式碼長度(c—Mic 度(light )整合)。 域織:典f之:執行緒作業環境中,$些變數係指定為全 此,、士抑於=些變數係操作於單執行緒作業環境,因 而:=單,行緒作業環境僅僅f要使用全域變數。然 本發明r 1,了緒板型卫具協助多執行緒環境之操作, 另外,ji變數指定為參數/參考、而非全域變數。 個功二:些ΐ ΐ函數f需要調整,藉以達到這個功能。這 數之;用:中斷個執行緒之操作不會因為另一個執行緒變 、邪用而中斷。i言錄‘ u ^ 、種較佳貫施例係有助於各個獨立執行
12587οι 五、發明說明(⑹ =數變數之使用…卜,這種較佳實施例 田况明如下,其係有助於各個獨立執行緒 +斤 用。 〜,要文、交數之使 、二在其他較佳實施例中,其他工具亦可以應用 這個敕體模型語言(SDL )埠接層1 1 〇之情況了 认二備 幸人體模型語言(SDL )埠接層1 1 〇之各種特徵亦 這個 _U . 寸试亦可以搭西p「
Mi cro以外之其他單執行緒程式碼產生工且配L 行緒程式碼產生工具一併使用。 /、次其他多執 ,個軟體模型語言(SDL)蟑接層110之基本要求係產 ^ f同於軟體開發工具(SDT)所提供C—…^。核心之軟 :莫i 5 ( S D L )系統行為。另外,這個要求亦包括支 ^下列軟體模型語言(SDL )模型特徵(括號内係軟體開 發工具(SDT)之限制)之能力。 軟體模型語言(SDL )特徵: •多重程序 •傳送一經由信號(全 •傳送一到達信號 •延遲(deferred)信 •某個程序之複數場合 •星號輸入、星號狀態 •計數器(僅為整數周 •具參數之信號(各個 •具參數之計時器(僅 部均沒有輪出) 號 (僅為有限數目) 期) ^號輸入均未省略參數) 為某個整數參數)
1258701 五、發明說明 動態程序產生(沒有正式參數) 範圍 程序(沒有繼承、沒有狀態 ) 句果狀私序呼叫資料 服務 預定類型 (沒有遠程程序呼叫(RPC )) (/又有服務及優先順序輸入及輪出 (沒有匯出/匯入、檢視/揭露) (沒有致能條件/連續信號) (沒有任何條件式) (沒有巨集) (沒有頻道子結構) (不同方塊之程序名稱需要不同) 另外’在軟體模型語言 佳實施例係具有數種不同之選擇碼之產生期間, ^體開發工具(SDT)之製作(m =擇。以下說明係基於 ,雖然這個較佳實施例之龙他登 視窗以執行這個步 在這個較佳實施例中,^此=亦可以適用。 ^這個較佳實施例之其他選此選擇係說明如下,雖 坪’力、可以適用。 镯 ο 方Γ 單 C * 1 CM | ) 碼c U 式:£ 程器C 生生整 產產完 及碼: 析式首 分程字 1258701
•間隔:完整(Ful 1 ) •大寫:根據定義 /體開發工具(SDT)所產生之程式碼主要係包 料類型。另外,轉換為操作程式碼之合適片 ^ 、 J關^個程序之轉換函數。這些產生資料類型p之結二 表不於第5B圖中。 示 這個根程序表格1 3 8係一個全域陣列,苴大丨 ,個軟體模型語言(SDL)系統之最大」序類=疋: 項目以ΐ ί —個結尾標記。這個陣列係包括程序描述方塊 類型’ ί個軟體模型語言(SDL)系、、統之各個程序 之内六個程序描述方塊項目。各個程序描述140 之内合係靜悲變數,其係盘這伽μ她^ & 程序之來呢择宏。Η 2 : 奥函數一起.放置於這個
Jtm ^ ^ ' ,這個根程序表格1 3 8係放置於這 個糸統之來源檔案。 T Ak 另外,各種細目(程庠_别Θ ▲丄 係放詈於# 1 H 。 、孓及叶吟态/信號識別碼) ^ %ψ ; ^ ^ ^ ^ 。較佳者,各種程序類型係由零開 為適應這個軟體模型語言(s =㈣行,場合,這個程序系會:中二 :ί亦Γ;到對應之程序識別竭(PID)。另外,場 ;別巧;始編號。另夕卜,計時器識別瑪及信號 成別瑪係分旱某個共用細目。 _ ^ 、, 里H由_^ f 可态5戠別碼係優先定義, 第6圓伟/ Λ ν為零已經保留^ 第6圖係表不這個車父佳實施例之保留識別碼串列。 第72頁 1258701 五、發明說明(68) -個軟體模型語言(SDL)系統係可 ' 動为割方式進行分割。較佳者,自動分用自動或手 軟體模型語言(SDL)建立描述式係逯過某個 成。當這個軟體模型語言(SDL ) ♦ =ript )加以達 f個分割邊界之傳送一經由信號係轉換為^傳分^時,橫跨 ^軟體模型語言(SDL )程序之信號。此時$ ^某個”環 收者之識別碼係遺失。有鑑於此,這個 /、正想要接 (SDT )所產生之pr檔案需要具有欠士仏\發工具 個映射表格(信號識別碼+傳 σ貝汛,藉以建立一 塒W r庄、斗丄 1寻运程序識別碼=曰k 為別碼),其中,這個環境程序係可以丄目的地程序 格,藉以轉送這些轉換信號。然 々2用足個映射表 可能會導致這個軟體模型語言(別1乂自動分割方式卻 並增加這個信號之路徑跳線。 』’、、、’先之設計限制、 另外,手動分割方十你 、 製擒案係利用這個軟體^型語古產生^後進行。一個複 組成,隨後,這兩個檔案係: )系統之來源檔案 各個程序之根程序表格 、,輙。在這個分割外部, 代。接著,這些檔宰利用空白⑽U)項目取 用某個適當之製作(、xff個分割加以群組,並且,利 碼產生步驟期間,這個^案加以組譯。另外,在程式 這種手動分割方式之主,、且動作之達成係需要完整間隔。 碼檔案、然而,這種手叙:點係需要編輯某個產生之程式 程式喝,並且,;割方式將可以產生更有效率Ϊ 型語言⑽)系統之方式亦不會導致這個軟體模 第73頁 1258701 五、發明說明(69) 對於軟體模型·|丑古「& 模型語古(SDL ) f 〇 糸、、先啟動而言,這個軟體 ;ί);係同時取決於作業系統陶及硬體 (主要L;i)i糸統啟動時’這個分割之"主要"部分 (mNULL)項目通過这個把種程序表格138 °各個非空白 種程序類型之程Λ + 域程序類型。另外,各 大小係係包括一個場合資料表格,其 (SDL ) s^序類型可以在這個軟體模型語言 行緒群)二… 執行緒。接著,夂程序場合之-個同步 包括這個程序$另丨$琢5係產生一個程序控制方塊,其係 著,指向這個;及指向這個程序描述之-個指標。接 緒,藉以使這=方塊之一個指標係傳送至這個執行 執行緒能夠處理自有資訊之存取。 在同ί動群Ϊ首先係進行同步’然後再進行啟動。 -個储存串列、β 個執行緒係分別產生—個訊息仔列、 之處理係儲ϋ 動計時器串列…卜,這些物件 在系統啟動時動=個程1控制方塊° #某個帛序場合應該 行緒便合將’如這個產生程式碼所指定,則一個執 係完成個開始信號傳送給自己。此日m化動作 組。當所有執行Ϊ:執行緒亦會對應地告知這個執行緒群 啟動,並且^ 經報到後,這個執行緒群組便可以 第7圖係’Λ作—場合亦可以接收及處理其開始信號。 、义不個程序控制方塊之格式。這個程序控
第74頁 — 1258701 五、發明說明(70) 制方塊之資料類型及其關連表 支援這個作業系統應用程弋=^ Mlcro之延伸,藉以 ⑴州整合。這個^//^⑽紗㈠之重度 別碼154、作業系統(μ ) ^ 1方塊144係具有一個程序識 -個訊息件列。另一個作業糸,(0S)處理叫係指向 個儲存串列148。並且乍另業)處理1 5 62係指向一 則曰向-個動作計時器串列 丄二”63 指向一個程序描述152。 I個耘序描述指標158係
對於軟體模型語言(SD :;型語言⑽L)程序場合係執=二;二=體 緒。这個軟體模型語言(SDL) 回應信號。在較佳實施例:序之主要,作係接收及 以關連訊軸,訊業環= :二V程序係具有三種回應信=二7 動-個狀態轉換、健存這個信號以提供未來使用、或啟 語言(SDL 被rH為14個目前信號時,這個軟體模型 號之架構俜屬王定如何回應這個信,虎。處理-個信 且,係= 軟體模型語言(SDL)埠接層11〇,並 係說明這方塊144存取之資料。以下. 中’ 圖係表示這個信號之處理流程圖,其 =唬硪別碼係轉換為一個轉換識別碼。這個程序
第75頁 1258701 五、發明說明(71) 識別碼154,其儲存於這個程序控制方塊144,係提 場合數目。這個場合數目係用以做為這個程序描述152之 故個狀態指標表格1 6 0之指標’並且,用以找到這個目 狀態。若這個目前狀態係暫停狀態,如步驟162所示, ϋ個轉換識別碼係設定為拋棄狀態,如步驟丨6 4所示。若 這個目前狀態為啟動狀態’並且,這個信號識別碼亦為% 始狀態’如步驟166、170所示,則這個轉換識別碼係設 為啟動狀態,並且,這個軟體模型語言(SDL )程序係返 回至開始步驟,如步驟176所示。另外,在這個開始狀雜 接收之任何其他信號則會導致拋棄狀態之轉換識別〜 步驟174所示。 、>若這個目前狀態既不是暫停狀態、亦不是開始狀態, 則這個k號需要加以檢查’藉以判定這個信號是否表示一 個計時器,如步驟1 78所示。當一個計時器加以設定時, 這個k號之傳送者識別碼係設定為一個保留計時器程序數 值,並且,一個項目亦會加入這個動作計時器串列1 8 〇。 若一個計時器係加以刪除,則這個計時器之對應項目係由 這個動作計時器串列180移除。若收到某個信號,其傳 送者已經設定為這個保留計時器程序數值,則這個信號係 識別為一個計時器信號。若這個計時器之對應項目^ ^見 於這個動作計時器串列180,如步驟182所示,則這個^目 係由這個動作計時器串列1 80移除,並且,這個軟體模型 語言(SDL )程序亦會持續進行。若這個計時器之對應項 目尚未見於這個動作計時器串列丨8 〇,則這個計時器&無
1258701 _發明說明(72) it/所亚且,廷個轉換識別碼係設定為拋棄狀態,如步驟 丄8 4尸/f不。 預期;轉:广別碼尚未加以設定,則這個目前狀態之 狀態之預期信號:ΪΪ 90,一個指標’其中’這個 態順序加以排=',、 ,始。廷些轉換表格項目係利用狀 後續狀離之浐;p ’ J ^這個狀態指標表格一樣,藉以利用 指標。向這個轉換表格19°之某個範圍 配於這個目前二:圍V/發現曰某個尤號識別碼,其匹 這個狀能加以定羞 5 ,若生號#號識別碼係針對 態。ϊ=:ϊ:1=Γ奐識別碼’則檢查這個星號狀 零以個格之第一個項目將不? 現。因此,這個底部範員目將會首先出 一樣。一囡係加以私查,如同這個目前狀態 者,;;:=別係拋棄狀態,如步驟198所示,咬 即:這:::有效轉換識別碼之所有嘗試均告失Λ 。轉換硪別碼係一個空白(i彳1 、 亦 ^ t ( , ^^ 一所不。若這個轉換識別碼係"儲存"狀能;u 如步驟 …丨這個信號係透過前進反覆存:步驟m所 Z1U储存於這個儲存
1258701 五、發明說明(73) 串列212。另外’所有其他 描述之轉換函數214,A別°。係饋迗至這個程序 (叫,並1,這個轉=定義於軟體模型語言 碼。 、“數214係返回—個新狀態識別 步驟狀則態=非Λ存取儲存處理(_)狀態,如 態。若這個新狀態Τ暫 動作計時器係加以刪二步=;“,則所有 串列212及這個訊息仵驟21』广:所曰示。這個儲存 ,以處理。若這個軟體模型:::而由程 這個新程序之陳舊:序係可能會得到 傳送,並且,i〜:虎(為開始信號係利用高優先順序 而,^ Μ可此"跳到這個佇列之陳舊信號前面)。麸 這心==i:SDL)程序亦可能會錯誤地抛棄、 語言軟體模型語言(sdl)信號輸出而言,軟體模型 外,、)程序係經由這個轉換函數内部傳送信號。另 施例ϊ個:的地訊息仔列係需要-個連接。在這個較佳實 列時,八不想要在每次放置一個訊息至某個訊息件 視需尊二i 關閉一個連接,因此’這些連接係可以 所有啟、並保留在這個軟體模型語言(SDL )程序之 (SD執行^緒之某個分享區域,藉以在這個軟體模型語言 某個L )系統關閉前方便使用。這種連接方法係可以透過 ’、查表函數達成,其可以透過這個作業系統(0S )抽象
第78頁 1^· 1258701 發明說明(74) 層1 2 2提供。 計時器係可以利用苯_ 以設定。當一個計時器==型:言(SDL)程序加 處理係如同一個信號。一 ^ 犄,这個計時器之接收及 可以刪除計時器。當—個體模型語言(SDL)程序亦 應該不會再出現在進 已經刪除後’這個計時器 以下係詳細說明這個作紫 階等級設計。這個作業车:業:、统(〇S)抽象層之-種高 系統應用程式界面(os :pn s )抽象層係實施這個作業 給用戶。 API ),藉以將這個作業環境提供 高階Γ二圖二提供二個作業系統(os)抽象層114之一種 4寻級6又5十之不意圖。這個作業系統( 種 之一個主要功能係將各個作章立 ^ 4 業系統⑶S),諸如:―個系映射至這個底層作 信作業系、统(0S)。這個作宰季統(os)或-個通 以讓這個作業環境之操作:f=(os)減層114係可 ^ ^ ^ ^ ^ ^ m ;廷個底層作業系統(OS ) 或硬體結構。因此,透過這個 丄 產生之程式碼便可以應用於其他 -^兄 境。因此,協助改變某個作鞏系:/統(os)/硬體環 幅Γ。在這個較佳實施例中雖“ 境,Ji /i;象層114係操作於先前所述之作業環 豆他ΐ作業系統(〇S)抽象層⑴亦可以適用於 衣垅,啫如· 0SE作業系統或vs作業系統。
1258701 五、發明說明(75) 這個作業系統(0S )抽象層1 1 4係實施這個作業系統 應用程式界面(0S API )以提供這個作業環境。較佳者, 用戶軟體元件222係利用一個全域之IDC—〇s—Api h表頭 樓案’藉以透過這個作業系統應用程式界面(〇s Ap z )、 1 2 0存取這個作業環境。 這個作業系統(0S )抽象層1 1 4係根據作業系統 (0 S )構成進而为奢i為袓數個彼此獨立之模組。各個模 組係提供單一構成之某種具體實施。另外,複雜構成之具 體實施係利用低階等級之構成以達成其功能。 ’、 在這些模組中,部分模組係作業系統(os)相關模組 22 6/ ’並且,部分模組係作業系統(〇s )獨立模組以^。作 業系統(0S )相關模組2 2 6係直接與這個底層作業系統 (0S ) 228界面。並且,各個目標作業系統係呈現某種單 獨之具體實施。相對地,作業系統(〇s )獨立模組224並 不會直接與這個底層作業系統(〇s ) 228界面。另外,部 $杈組係不需要仰賴這個底層作業系統(〇s )地提供所有 需要功能,並且,部分模組係透過這個作業系統應用程式 =面⑶S API )以利用作業系統(〇s)相關構成。然而, 這些模組之具體實施均可以適用於任何目標作業系統。 相關模組226及獨立模組224之混合,其係用來產生這 個作業系統(0S )抽象層11 4,係可以根據各個作業系統 之特性分別進行調整。特別是,某個具體實施係可以利用 一個作業系統(0S )獨立模組224,並且,另一個具體實 施係T以利用一個作業系統(q $ )相關模組2 2 6。舉例來
1258701 五、發明說明(76) 說,EP0C作業環境係利用一個
0SE作業環境係利用一個相關訊自成息J宁列模組。但是, 作業環境之信號發送強度。w τ列杈組,藉以供給0SE 在較佳實施例中,這個作 下列慣例命名,藉以指定那此七)統(〇S )抽象層係利用 (0 S ),以及,指定那些桓s二"且係獨立於作業系統 —、、、且係相關於作掌fS ) (亦包括:傳送至那個作業系統(〇s ))杀糸、、先(Ub ) 作業系統(0S )獨立模組:
0S < construct >.c ❿ 字首(Prefix) 首 所有獨立模組係 冠以,,0S —π之字 ^成名% <COnstruc"t >攔位係識別這個 杈組提供之應用程式界面(Ap I )構成。 作業系統(0S )相關模組: 〇s < construct >. c 字首(Prefix) — <〇s >字首攔位係識別這個模址 之應用作業系統。 、、 構成名稱 —<construct: >攔位係識別這個
1258701 五、發明說明(77) 模組提供之應用程式界面(A P I )構成。 這個作業系統(0S」抽豕增U 4之軟體結構係相對簡 單。對於這個作業系統應用程式界面(OS AP I ) 1 2 〇之^ 個作業系統(0S )構成而言’這個作業系統(os)抽象層 11 4係具有一個模組。並且,基於各個目標作業系統之特 性’這些模組可以是作業系統(0S )相關模組226 或、 者’這些模組亦可以是作業系統(0S )獨立模組224。 這些作業系統(0S )模組係分為兩種類型,包括: 早杈組、及複雜/複合模組。簡單模組係自我完備。 模組幾乎不需要任何從屬元件之輔助以提供所有需要功一 :二!外’部分複雜/複合模組可能會需要某種複呈 之應用以達到想要功…且可能會需要從屬元件 統(〇”構成。作業系J二模組亦可能是標準作業系 業系統(0S )獨立内部界面力2内部70件係透過某個作 個作業系統(os"由象構二:取。這些:件係提供數 些元件卻不會公佈在這個5=要之共用服務,但是,這 API ) 120。另外,做?:統應用程式界面(〇S 成係透過這個作業系萄70件之標準作業系統(〇s )構 存取。 用程式界面(OSAPI)120加以 第11 B圖係表示這個
API )之軟體結構。這此=系統應用程式界面(〇S 二季人體結構係說明於第6表中。 1258701 五、發明說明(78) 模組 柄述 ^ 當案名稱 _____ Simplex 262 互斥器(MUX) 23 9 事件240 二個互斥器(MUX)。 <os>—Mutex. * 貧施一個事件。 ^___ <os>一Event. * 執行緒231 貫施一個執行緒。 ~~ϋ--'—---—- <os>_Thread. * 訊息233 具有反覆器之一般 串列 貫施基本訊息設置及解除設置服務。 ~~·~ -—--- < os > _ Message . * 只把一個連結串列,其具有一個串列反覆器。 <os>—List. * --- Complex/ComDound 7(^4 模組 描述 檔案名稱 訊息件歹1J 246 貝施一個訊息佇列。訊息佇列係提供各處理器 間通信(IPC)功能,其需要兩種具體實體, 包括·區域及遠距。 個區域佇列係與用戶放置於相同處理 裔。這個區域佇列係具有所有訊息佇列功能。 〜一個遠距佇列係提供放置於相對處理器之 一巧仔列之一個代理程式。這個遠距佇列僅經 由這個各處理器間通信(工PC)管理模組,提 供"使用者〃能力(開啟、關閉、妨靑、。 <os> —MsgQ. * < os > _ LocalMsgQ. * < os > _ RemoteMsgQ. * 先進先出(FIFO) 緩衝器24 8 汽%—個先進先出(?工?〇)緩衝器。先進先 出(FIFO)緩衝器係提供各處理器間通信 (工PC)能力,其需要兩種具體實施(或次模 組),包括:區域及遠距。 一一個區域先進先出(FIF〇)緩衝器係與用 戶放置於相同處理器。這個區域先進先出 (FIFO)緩衝器係具有所有先進先出(pa 功能。 一一個遠距先進先出(FIFO)緩衝器係提供 放於相對處理器之一個先進先出(FIF〇、^ <os >_Fif o . * < 〇s > _ LocalFifo. * < os > _ RemoteFifo. * 第83頁 1258701
、發明說明(79) 執行緒群組242 記憶體管理 254 (工PC)管理握f僅/工由14個各處理器間通信 關閉、放置)’棱供"使用者"能力(開啟、 業系r(〇srir^i固模組係獨立於作=群,相個底層作業 &錄/除錯支援 256 友供戶 if豐亦可以延伸’並且,可以分割 =作業糸4(os)相關元件及作業系統(〇s) 獨立元件。 提供錯誤及除錯回報功能 注意:it個模組亦可以延伸,並且,可以分割 為作業系統(〇S)相關元件及作業系統(〇s) 獨立元件- 時〒警理258及作 業系统(OS)時間 2 6 〇
Internal 266
^供所有日τ間相關功能。這個模組係一個混合〇s_TimeMgr . c 模組’藉以提供應用程式界面(API)服務及 作業系統(OS)抽象服務。 應用程式界面(API)服務:現在時間、及延 遲。 内部服務:設定回叫、刪除回叫。注意:這個 模組係分割為作業系統(OS )相關元件及作業 系統(OS)獨立元件。 <os > Time
第84頁 1258701
五 發明說明(80) 各處理器間通信 (IPC)管理 252 ----- 权供所有各處理器間通信(IPC)功能。設計 仍待準備。這個模組係分割為共用模組及作業 系統(OS)專有模組。 <〇s>__IPC. * 同步執行緒244 ----- 貫施同步執行緒。 注思·執行緒群組係互斥地利用這個内部模 組。 < OS > _ SyncThread.* 一般佇列250 ----- 長:供一般4宁列實施。用來產生較複雜之作業系 統(OS)構成。 …、 <os >—Queue . * 第6表 每些作業系統(OS )構成,無論是作業系統(〇s )相 ,構成226或作業系統(0S)獨立構成224,係利用下列設 。十樣式。控制方塊係儲存實施這個作業系統(〇s )抽象層 内邛之某個作業系統(0S )構成所需要之所有資訊。這個 控制方塊之開頭係具有這個構成類型所特有之一個標記。 f個標記係具有兩種用途。首先’這個標記係可以用^做 為一種防護程式措施(defensive pr〇gramming measure )。在存取這個控制方塊内部之資料前,接收 個控制方塊之一個參考值以做為輸入之函數係需要確認這 個標記。其次,這些標記係可以在除錯時利用。這些护纪 係可以使各個控制方塊能夠在記憶體中被輕易識別出 典型地,控制方塊係隱密地定義於其構成之來源檔案, ^封存其格式及具體實&。另外,控制方塊係利用專有^ 數加以設置及釋放。這種控制方塊係可以隔離其設置 制,並且,不需要影響這個核心構成電路地進行改變。 當這個作業系統(OS )層產生這個.構成場合時,—個
1258701 五、發明說明(81) ㈣系統(os)處理係指派,藉以表示或識別某個構成。 ΐ個:(os)層係利用這個構成之控制方塊位址做 ^廷個處理數值。當某個用戶輸入—個構成處理至一個作 業糸統應用程式界面(0S API)呼叫時,這個作業系統 二S i層:將這個處理轉換為一個指胃,藉以參照這個構 二Ϊ 方塊。如此,查表或搜尋動作便不需要執 =大因此:這種轉換方法係可以幾乎不需要成:: (…層變得更有效Γ 以使這個作業系統 破璃ΐί系統(〇S)構成係同時提供一種產生方法及一種 方塊,包括:產生從屬元件之物件 成之上制 制方塊。 ^件之物件’亚且’釋放這個構成之控 (〇s f:成i ί各處理器間通信(ipc)功能之作孝李* 二方法。這些,心 ^ „ 種構成場合’無論這些呼叫係故罢认丄 (QID)、先進3 獨特之識別碼(佇列識別碼 暗示性地這個 一個"擁有"用戶係產i可L 3擁有者及使用者之觀念。 成係使其”擁有”用戶可以。這個構 用"用戶係經由開啟及關閉方法、,藉以連結集及=
第86頁 1258701 五、發明說明(82) :一構成場合。關閉某個構成並 用 說 是 外,—個構成係可以限制"使用會姆其造成破壞。另 用戶可以存取這個構成特徵之戶/藉以使24些使 —個”擁有者”可以”等待"個子集合。舉例來 二個,,使用者Μ堇能"放置這置自,某個訊息仔列,但 第12圖係表示這個訊息仵列::息仔列。 232係根據這個作業系 y籌成之設計示意圖。用戶 用訊息件列。為實施其需要功能式界面⑽A:" 12〇二利 要使用數個從屬元件模組之服務固K丁列230係而 及圪個逖距矾息佇列236係表示特定之。乂 ,^ ^ ^ ^ 1亦即:與這個用戶232 :立於:同處理器)&遠距地(亦即:與這個用戶232位於 相對處理器)執行佇列操作。接著,這個概括訊息佇列 230係基於佇列類型,藉以將服務要求轉送至這些從 件0 一個區域訊息佇列234係表示這個實體符列,並且, 這個區域況息仔列2 3 4係自我完備。這個物件可以X作業 糸統(0 S )相關物件’或是’這個物件亦可以是作業系'統 (OS )獨立物件。另外,一個遠距訊息佇列236係表示某 個佇列之一個代理程式,並且,這個佇列係實體放置於這 個相對處理器。這個遠距訊息佇列2 3 6係經由這個各處理 器間通信(1 pc )管理裝置238,藉以協調與其關連佇列間 之訊息傳遞。這個各處理器間通信(Ipc )管理裝置238係 橫跨於各個處理器邊界以進行訊息傳遞’並且,利用這個
第87頁 1258701 五、發明說明(83) 標準息符列之丨丨放置"服狄丨、/ 士、> — a紅德六-从 ^ σσ間通化(1 PC )官理裝置238係 包括獨立7L件,其係執行於各個處理哭。 這個物件資料庫240係提供這個系統内 勿,“息件列及緩衝器作列)之儲存及管 動作 個可安排時程之回叫服務。^ 丁列230係利用廷個特徵,藉以執行"putAfter"、 及 CancelPutAfter" i 、丄, , + % ^、 要求。廷個服務係提供於這個區域/ ,=上(或之前)。如此,所有,加〜計么 送或放置用戶區域。這個設計係將這個傳送: 近,個計時器,•以將這個計時器搞接至這個 傳k者(而不是這個接收者)。 传。Γ自示這個訊息佇列控制方塊資料結構及其關 作紫L心I列產生及查表操作均會返回一個參考值至一個 物件!構(控制方塊)245,藉以做為這 構俜:::歹1广理。纟廷個區域佇列之例子中,這個物件結 ί係經由一個作業系統(〇s)處理,參照至一個區域訊自 :r:rf47。這個區域訊息仔列控制方塊247係“ 亡個Γ處理供應給這個區域訊息佇列模組234,每當 A =仔列模組230轉送服務要求的時候。這個遠距訊 有^ :制方塊249係包括控制這個遠距传列所需要之所 對於這個區域訊息佇列控制方塊247而言,這個控制
1258701 五 發明說明(84) 方塊247係包括:_你、由 健存訊息,—個们^結串列251,其係根據優先順序以 件列呼叫,以及H 其係實施這個阻播1待"訊息 資料結構。 為2 5 5,其係保護這個一般佇列 這個緩衝器件初| 先順序以外。A於俦 至夂架構係與訊息佇列相同,除優 衝器仵列。這二緩序,緩衝器並無法放置於某個緩 這個物件;=2要嚴格遵守"★進先出”之原則。 之儲存及管理。物件伤—供化個系統内部、各個動作物件 明確設計以分享於各個2義t作業系、统(0S )構成,其係 支援各執行緒間通=個處理器邊界,包括: 各執行緒間大資料方^:: 制及資料)、及支援 物件係利用下^ 緩衝器佇列。 碼,其係某個庫用」員型加以識別’包括:物件識別 型,其係這個物件、::二,獨特物件識別碼、物件類 及應用程式識別碼,丁列、緩衝器等等之類型、以 個應用程式識別碼攔;獨㈣別碼。這 片系統(Soc )之要灰。欠乂 /足刀頻又工(FDD )單晶 件處理,其係這個實際物件固之勿件之其他貢訊係包括:物 器’ί係表示-個處理=了=%:及一個處理 及使用係決定,器搁位之需要 有關於各處理器間通信(1協疋堆豐设計進展,特別是
!2587〇i 五、發明說明(85) 這個物件資料庫 立於作業备β 〇,如第14圖所示,尨心 件蛀杻”糸、、先(〇s)之方式杏 係利用一種獨 I構^,其通常具有一式各個物件係具有—個物 央處理早兀(CPU ) ) #型、應用程 沒個作業系統(〇s ) & /攸屬、及物件參考 壞動作。物件參考值c丈動這些物件之產生及破 用程式識別螞、物件1子在某個雜散表格262内部。瘅 為這個雜散表格別;及”;型之-個“ 個互斥器(MUX ) 264以執行绪伴^ f =庫260係利用― 較佳者,這個作業系個雜散表格262。 管理函數、山 “、先(〇s)層114係提供一個時門 =包::;=(〇”層114係提供兩組二: 務及-種=系(API)時間月民 界面UPI) B#層内部回叫機制。這個應用程式 囬)·日寸間服務係具有os—getTime及 〇s del ayMi msec函數。這個内部回叫機制係使作業 統(〇S )構成能夠基於時間(利用毫秒為單位),藉、以、安 排回叫函數之時程。這個特徵係用以提供自有之時間相關 服務(舉例來說,訊息佇列所提供之” PubAfterTime"服 務)。 這個作業系統(0S )層内部之時間管理功能係分為兩 個模組,如下列所示: os —TimeMgr :包含這個時間管理裝置(其係提供回 叫函數),及所有作業系統(0S )獨立之應用程式界面 (API)呼叫(os —getT ime )。 第90頁 1258701 五、發明說明(86) 業夺:。(S0〉S7T= 2含這個時間管理裝置使用之這個作 業糸統(0S )特有計時器(這個物 (0S )相關),及所有作f夺 、吊係作業糸統 r Αρτ , d ,所名下茶糸統相關之應用程式界面 (API)呼叫(os—delayMiUiSec)。 這個時間管理裝置物件2 6 6, 大部分之時間相關功能。這個庫:二15^圖所示’係提供 getT·項目點係用以返回應這用個私目式^面(AM)之 時間(lms刻度,由啟動開始) 别作業系統(0S) 提供其他作業系統(0S)構成所利另用外’這個項目點亦會 供自有之時間相關函數。這個 :月:務’猎以挺 用戶可以安排延遲函數呼叫之睥^特被係使時間管理裝置 戶係輸入一個函數參考值、—個=數時間管理裝置用 遲。這個時間管理裝置266係啟動 多考值、及一個延 以在這個延遲後供應這個指定參數3。回叫"這個函數,藉 這個時間管理裝置所提供 以維護時序整合性。回叫執行係 ^係執行最小處理 2 70。另外,延伸處理係影響苴'仙' ;這個計時器執行緒 操作係需要轉移給另一個執9行緒。回叫函數。因此,複雜 這個時間管理裝置266係剝° 個功能: ’、用兩個從屬元件以提供這 係由 突出 •回叫串列272係回叫要卡 最先(最快過期)至最後 個順序串列,其順序 回叫、及其資訊(函數、來串列⑺係管理 /款寺專)〇這個回叫串列
1258701
五、發明說明 272之操作係設置項目274、刪 移除項目L π π , 員目274、加入項目274 、二曰“4、及取侍下一個過期時間。 计日可裔2 6 8係提供一個内部執 叫延遲以進彳t啟動或安料程。^緒2H係基於回 置邮係根據最短之回叫寺別疋’這個蚪間管理裝 遲過期時,這個計時哭個計時器。當這個延 ψο an ° 係傳迗k號給這個時間管理萝 置266,藉以執行這個回叫函數。 了门吕理衣 詈這個循J衰係持續進行,並且,這個時間管理裝 裎。Λ冬在這個計時器268中安排這個最短延遲之時、 j:祕田延固回叫串列2 7 2清空時,這個時間管理裝置2 6 6係 】期偵::!作業系統(os)刻度被覆條件所需要之最小 λ f 1 6圖係表示一個時間管理裝置控制方塊276之功 能。這個時間管理裝置控制方塊276係關連於互斥器 (MUX ) 278、280及一般連結串列2 82。在這些互斥器 (MUXJ*中,一個互斥器係這個作業系統(OS )系統時間 互斥為(MUX ) 278,並且,另一個互斥器(MUX )係一個 回叫串列互斥器(MUX ) 2 8 0。這個連結串列2 8 2 (回叫串 列)係具有一個時間管理裝置串列項目284。這個時間管 理裝置串列項目284係具有一個ui n 164格式之過期時間回 叫函數、一個回叫函數參考值、一個回叫參數參考值、及 一個删除識別碼。 第1 7圖係表示一個產生/啟始時間管理裝置情況之較
第92頁 1258701
佳流程圖。這個作業系統(os)係啟始這個時間管理f置 之啟動函數28 6,如步驟288所示。這個時間管理裳置2&6
係傳送一個,丨 os —createLi st (Os —Handle —T *handle —p ) n訊息2 9 0以清空這個回叫串列,如步驟292 所示。另外,這個時間管理裝置2 6 6係傳送一 個’’os__createMux (Os _Handle T ^handle d )^ a 一 一 — J 矾息 2 94至這個系統時間互斥器(MUX ) 278,藉以產生—個互 斥器(MUX ),進而保護這個作業系統(〇S )系統時間, 如步驟2 9 6所示。另外,這個時間管理裝置2 6 6係傳送_
個 n os一createMux ( Os —Handle—T ^handle —Ρ ) π 訊 _、 W 298至這個回叫串列互斥器(MUX ) 280,藉以產生一個互 斥器(MUX ),進而保護這個回叫串列,如步驟3〇〇所示。 這個時間管理裝置2 6 6係傳送一個n 〇 s — i n i t T i m e r (),,訊 息3 02至這個計時器268,藉以啟始這個時間,如步驟303 所示。這個計時器啟始係包括: •決定底層作業系統(〇s )刻度周期。 。十异各個刻度周期(m s /1丨c k )。 •基於這個作業系統(OS )刻度周期,決定最大計時j 器數值(利用毫秒為單位)。 •讀取這個目前作業系統(0S )刻度、並將這個刻度 儲存為這個”最後讀取作業系統(〇S )系統刻度”。 •產生這個計時器執行緒。 這個時間管理裝置26 6係自行啟動,如步驟304所示,
第93頁 1258701 五、發明說明(89) 其係包括:設定這個目前作業系統(〇S )系統時間數值為 0x0。這個時間管理裝置2 6 6係傳送一個"os—setTimer (max· timer period ) ”訊息3 0 6至這個計時器2 68,藉以 設定這個指示計時器(在這個指定延遲後呼叫之”執行回 叫”),如步驟3 0 8所示。 第1 8圖係表示一個取得作業系統(〇 s )時間時間管理 裝置情況之較佳流程圖。這個作業系統應用程式界面(〇s API )用戶3 1 0係傳送一個n os —getTimer () ”訊息3 1 2至 這個時間管理裝置2 6 6,藉以更新這個系統時間 (”叩(18168乂3七61111^11^()11),如步驟314所示。另外, 這個時間管理裝置2 6 6係傳送一個鎖定互斥器訊息 (n os — lockMutex ( ) π )至這個系統時間互斥器(MUX ) 2 78,如步驟316 所示。一個,,os—getElapsedTime () ” 訊 息318係傳送至這個計時器2 68,藉以決定最後一次啟動某 個呼叫後之時間長度,如步驟320所示。這個決定動作係 包括:讀取這個作業系統(〇S )刻度,基於這個目前刻 度、最後刻度、及刻度周期以計算這個時間,及將這個目 前刻度儲存為最後讀取刻度。 另外,這個時間管理裝置2 6 6係更新這個目前作業系 統(0S )系統時間、並將這個通過時間加入這個目前作業 系統(0S )時間,如步驟322所示。另外,一個釋放互斥 器(MUX)訊息(’’〇s _releaseMutex ()’’)係傳送至這 個系統時間互斥器(MUX ) 278,如步驟324所示。這個時 間管理裝置266係由這個目作業系統(0S )系統時間中拉
第94頁 1258701 五、發明說明(90)
出低字元以進行返回(n〇s—TimeMS—T”),如步驟326所 示,並且’這個時間係返回至這個作業系統應用程式界面 (OS API )用戶 310 (,f return Os—TimeMS—τ"),如步 驟328所示。 σ V 第1 9圖係一個設定回叫時間管理裝置情況之較佳汽程 圖。這個時間管理裝置用戶3 3 0係傳送一 土抓 個π 〇 s — s e t C a 1 1 B a c k ”訊息至這個時間管理装置2 g g 士半 驟3 32所示。另外,這個時間管理裝置266係計算這個回$ 過期時間,如步驟3 3 4所示。這個計算動作係包括:更新 這個系統時間’以及’將這個回叫時間設定為這個目前系 統時間加上一個時間延遲。 μ 這個時間管理裝置2 6 6係傳送一個鎖定互斥器訊· 這 (n os —lockMutex ( ) π )至這個回叫串列互斥器(Μυχ ) 280,如步驟33 6所示。另外,這個時間管理裝置266係傳 送一個設置回叫項目訊息(n Alloc Cal lb =Baek Entry")至這個回叫串列272,如步驟338所示。另外, 個時間管理裝置2 6 6係利用"Expire
Time” ’callback—fp·’、narg—pn、及,,Cancel ID =running cancel ID + + n填入這個回叫項目,如步驟 340所示。 這個時間管理裝置2 6 6係傳送一個加入回叫串列項目 訊息(’’ Add Cal 1 Back List Entry”)至這個回叫串列 2 7 2,如步驟3 4 2所示。較佳者,這個回叫串列係基於這個 過期時間(最早及最晚)之一個順序串列。一個元件係基
第95頁 1258701 五、發明說明(91) 於=時間以加入這個串歹。當這個項目加入這 之士頭% (最近於第一回叫項目),這個回叫計時器係其 於这個延遲以進行刪除及重設。另外,這個 : 266係傳送一個刪除計時器訊息("Cancei Timer (),衣置 $這個計時器268,如步驟344所示。另外,這個時間管理 裝置266亦傳送一個設定計時器訊息(,,Set Time]r (delay )")至這個計時器268,如步驟346所示。這個 遲時間係設定為下-個回叫時間及最大計時器周期之 時間。這個計時器268係設定這個指定 €^rr'Execute CallBac^) 時間官理裝置266係傳送一個釋放互斥器訊息35〇至這個回 叫串列互斥器280,如步驟3 5 0所示。這個删除識別碼係返 回至這個呼叫者,如步驟351所示。這個動作有時係發生 在這個回叫延遲過期以後,如步驟352所示。 义 第20圖係表示一個刪除回叫時間管理裝置情況之較 流程圖。這個時間管理裝置用戶3 3 0係傳送一個設定回叫土 訊息(’’os—set Call Back”)訊息至這個時間管理裝置 266 ’如步驟354所示。這個時間管理裝置266係利2這個 動作計時器安排一個回叫之時程,如步驟356所示。^ 外’這個時間管理裝置用戶330係傳送一個刪除=叫$息 (’’ os —cancel Cal 1 Back”)至這個時間管理裝置2 6 6 ^ 步驟358所示。這個時間管理裝置2 6 6係傳送I個鎖定互°斥 為θίΐ息(〇 s_lockMutex ())至這個回叫串列互斥 2 8 0,如步驟3 6 0所示。這個時間管理裝置2 6 β係傳送一個
1258701 五、發明說明(92) 具有刪除識別碼之移除回叫項目("Rem〇ve CaUBack E一ntry (cancei id ) ”至這個回叫串列272,如步驟3所 示。這個回叫串列272係搜尋這個串列以找尋具有這個 =冊ί除識別碼之一個項目,並且,#這個回叫串列2 7 2確 貫找到這個項目,則由這個串列中拉出這個元件,如 3 6 4所示。 吵 這個時間管理裝置266係由這個回叫項目拉出 arg —ρ,如步驟366所不。另外,這個時間管理裝置mg ,除這個回叫項目’如步驟368所示。一個釋放互斥器訊、 心("os—releaseMutex ()")係傳送至這個回叫串 = =280,如步驟372所示,並且,arg—p係返回至這 叫者,如步驟370所示。 于 ,圖係—個執行回叫時間管理裝置情況之較佳 =、=個較佳實施例中’這個處理係在這個計時 緒裡面執行。這個計時器268係在這個回叫延遲時過 如,步驟3 74所示。另外,這個計時器係執行一個回叫 (” Execute Ca 1 1 Back () ” )吞、上 丄 如步驟376所示。 至巧個時間管理裝置26 6, 一個迴路係根據下列方式執行 所示。這個時間管理裝置266係更新=二回/ ’ °/驟378 r,uwystemTime ()"),更如新;^系統計時器 間管理裝置266係傳送一個鎖定互斥乂器8自0所不。廷個時 (n OS — lockMutex ()丨丨)至這個门°^心 步驟382所示。這個時間管理褒H叫/歹Μ斥器m,如 6 6係檢查這個目前時間
第97頁 1258701
五、發明說明(93) 及下一個過期時間,藉以決定這個回叫是否過期。若這個 目前時間係大於這個過期時間,則執行下列動作,如步驟 3 8 4所示。 若下一個回叫過期,如步驟38 6所示,一個拉回回叫 項目訊息係傳送至這個回叫串列27 2,如步驟388所示。回 叫串列互斥為、2 8 0係在啟動這個回叫函數前加以釋放。在σ 這個回叫(亦即:執行具有設定另一個呼叫之部分處理之 一個回叫)之執行期間,這個回叫串列互斥器28〇係可以 安排另一個回叫之時程。其他用戶係可以不經阻擋,藉以 在回叫執行期間加入要求。這個時間管理裝置266係傳9送 一個釋放互斥器訊息(” os —re 1 easeMutex () ”)至這個 回叫串列互斥器280,如步驟390所示。一 ° 個callback—fp ( arg —p ) ”訊息係傳送至這個時間管理 裝置用戶,如步驟3 9 2所示。這個時間管理裝置2 6 β係傳送 一個刪除回叫項目訊息(”deleteCallBackEntry ( )\ 至個回叫串列272,如步驟394所示。這個程序係回到步 驟步驟380,直到所有過期回叫均已經完成,如步驟3 98戶^ 示。另外,這個時間管理裝置2 66係傳送一個設定計時哭 矾息(nos—setTi me r (next delay peri〇d ) ”)至這個 計時器268。這個計時器268係設定這個指定計時器(指定 延遲後呼叫之’’ Execute Cal 1 backs”),如步驟4〇〇所示, 在這個較佳實施例中,這個計時器268係利用一個τ獨 立於作業系統(0S )之時間管理裝置執行緒加以取代。、言 個執行緒係一個作業系統應用程式界面(〇S AP I )執行&
第98頁
1258701 五、發明說明(94) ^ 諸,並且,封存這個計時器(設定、刪除等等)及& ,, 〇v0 i gi- Mm 個"e x e c u t e c a 1 1 b a c k"功能。以下係程式碼與設^ 關係: • MpauseCurrentThreadM —設定計時器。 • M wakeCurrentThread" —刪除計時器。 • ’· t imeMgrMain” —執行緒之主要迴路, 包括計時器執行緒及執行回叫。 各處理器間通信主要係利用一個各處理器間訊息仰列 界面加以執行。在這個較佳實施例中,這個訊息件列^組 f各處理器間通信(I pc )模組(各處理器間通信(丨pc ^ 官理裝置及佇列識別碼(q丨D )資料庫)之界面係 明如下。 w你砰細說 如苐2 2圖所示,這個訊息符列4 〇 2係具有下别々 器間通信(IPC)元件: 有下歹j各處理 •訊息佇列識別碼(QID )資料庫408 :利用、〜 以登錄區域訊息佇列’並且,增加遠距訊息佇:::系統 、•各處理器間通信(IPC )管理裝置4〇6 ··、土存取。 列代理程式係經由這個各處理器間通信 距汛息佇 置’轉送所有”放置”要求至關連佇列。 g理裝 這個δίΐ息彳宁列4 〇 2係轉送所有遠距操作至
第99頁 1258701
佇列40 4 ,。化徊逖跑訊息佇列係率 处理器間通信(IPC )管理裝置406 第2 3圖係表示各處理器間通信之訊息佇列產生及破疒 較佳流程圖。一個第一處理器係具有一個關連訊息佇= 二、訊息佇列識別碼(QID )資料庫4(^、及各處理养 j乜(IP C )官理裝置4 〇 6丨。另外,一個第二處理器亦具 個關連訊息佇列4 0 、訊息佇列識別碼(q丨d )資料& 4 0 82、及各處理器間通信(lpc )管理裝置4〇62。這個第_ 處理器訊息佇列4 0 2!係接收一個產生訊息,如步驟4丨〇所 不。一個丨’qidd 一 register MsgQ (q id, handle )丨丨訊息係 傳送至這個訊息佇列識別碼(qID )資料庫4〇8i,如步驟’、 4 1 2所示。這個資料庫4 〇 8丨係搜尋這個區域佇列識別碼 (Q ID )資料庫,如步驟414所示,及這個遠距佇列識別螞 (Q ID )資料庫’如步驟4 1 6所示,並利用這個處理,將這 個仔列識別碼(Q ID )加入這個區域佇列識別碼(q丨D ) ^ 料庫,如步驟4 1 8所示。 貝 現在’這個區域(第一)處理器係可以利用這個仵 列。這個訊息佇列識別碼(q丨D )資料庫4 〇 8!係傳送一 個’]?(:一^6?〇1^^13忌(3(91(1,1〇(^1匕&11(11),,訊息至這個 各處理器間通信(IPC )管理裝置4(^,如步驟42 0所示。_ 這個管理裝置40 6〗係傳送一個,,ipC cinds to register Q (QID, and handle ) ”訊息至這個第二處理器之各處理 器間通信(I PC )管理裝置4 〇 62之處理器邊界,如步驟4 2 2 所示。這個各處理器間通信(IPC )管理裝置4〇62係傳送〜
1258701 五、發明說明(96) 個nqidd一registerRemoteMsgQ (qid , handle in remote context ) n訊息至這個訊息佇列識別碼(QID )資 料庫4 0 82,如步驟4 2 4所示。現在,這個遠距(第二)處理 為係可以利用這個佇列。這個佇列識別碼(q I D )係利用 這個仔列識別碼(Q I D )及處理以加入這個遠距資料庫 4 0 82,如步驟42 6所示。 、 這個第一處理器之訊息佇列4 〇 係接收 息,如步驟428 所示。一個"qidd—removeMsgQ (qid, h a n d 1 e )讯息係傳送至這個訊息仔列識別碼(q i d )資料 = 408!,如步驟43 0所示。這個資料庫4〇81係搜尋這個區域 1列識別碼(QID )資料庫,如步驟432所示,及移除這個 仔列硪別碼(Q I D )至這個區域佇列識別碼(Q丨D )資 庫,如步驟434所示。 、’ ,,·這個訊息佇列識別碼(qID )資料庫4〇8ι係傳送一 ,ipe—removeMsgQ (dd )"訊息至這個各處理器間管理 衣”置4(^,如步驟43β所示。這個管理裝置4〇6!係傳送— ,IPC cmds to remove Q (QID ) ” 訊息至這個第二處 杰之各處理器間通信(IPC )管理裝置4〇 哭 “ 8所不。廷個各處理器間通信(IPC )管理裝w -個,宁列識別碼(QID)資料庫4082,如步驟44二至 5自二個遠距(第二)4理器係不再提供這個件列。這個 :二“]識別碼(⑽)資料庫 1们
1258701 五、發明說明(97) 個破%訊息代理程式(” msgq —Des tr〇ypr〇xy ()")係傳 送至這個訊息狩列,如步驟4 4 4所示。 第2 4圖係表示各處理器間通信之訊息佇列開啟之較佳 流私圖。這個訊息佇列4 〇 2!係接收一個開啟訊息,如步驟 446所示。這個訊息佇列4〇2ι係傳送一 個nQiddb—getMsgQHandle (qid )"訊息至這個訊息佇列 識別碼(q I D )資料庫4 0 8 1,如步驟4 4 8所示。這個訊息佇 列識別碼(Q I D )資料庫係搜尋這個區域佇列識別碼資料 庫以找到這個區域登錄之訊息,並且,返回這個訊息佇列 處理,如步驟450所示。隨後,這個區域處理係返回。 在遠距(第二處理器)時,若第一遠距係開啟,這個 汛息佇列40¾係接收一個開啟訊息,如步驟452所示。這個 訊息佇列 40 22 係傳送一個” diddb —getMsgQHandle (qid ) ’訊息至這個訊息佇列識別碼(QID )資料庫4〇l, ,步驟454所示。這個訊息符列識別碼(QID)、資料庫4〇82 係搜尋這個區域佇列識別碼(qId)資料庫,如步驟456所 =,^ ^個遠距佇列識別碼(qID)資料庫,如步驟45δ所 =。右XI個第二處理器資料庫未找到這個佇列識別碼 (QID),則產生這個佇列識別碼(QI 。 =㈣之仔列識別碼(QID)便可以找 此且,不需 Ϊ 處Γ:接著,這個代理程式 :=)係針,個代理程式加以設置,包括:仔列識別 Q六)、通距處王里、及遠距類型。現在,這個代理程 式已經存在。這個代理程式處理係返回至這個呼叫者(開
!258701 五、發明說明(98) (〇)τη。一d個產生代理程式訊息(,,msgq—createProxy 402 ,1丰emote Q—Handle))係傳送至這個訊息佇列 2,如父驟4 6 2所示,並且,一個代理 4系 驟4R9 % - ^ , 口叭埋私式係產生,如歩 % 列·^丨Γ/η接著,這個代理程式處理係利用這個訊息佇 為別碼(QID)資料庫㈣加以返回,如步驟樹所示。 ::斤f額外遠距資料庫係開啟,則這個開啟訊 绝讯心佇列4 0 22加以接收,如步驟4 6 6所示。這個气自 飪列4 0 22係傳送一個取得訊息處理訊息 D %、 ("qiddb—getMsgQHandle (qid)")〜至這個訊 =碼⑼D)資料雜82,如步驟繼所示。這個訊息= f別瑪(QID)貢料庫4。82係搜尋這個遠距仵列識別碼資J 庫,如步驟470所示。若這個佇列識別石馬(QID)係見於且 有一個代理程式處理之區域資料庫,則這個代理程式^ 係返回至這個呼叫者(開啟)。 第25圖係表示各處理器間通信之訊息佇列遠距放置之 較佳流程圖。一個放置訊息(” Put ( msg —ρ ),,)係利用 這個訊息佇列4 0 2 1加以接收,如步驟4 7 4所示。這個訊_ 仵列係由這個訊息仵列控制方塊中拉回這個處理,如7步^驟 476所示。這個”類型”係設定為遠距,並且,這個”處乂 ^ 理”係設置為這個遠距處理器之佇列處理。一個放置1幸、( (,,Put (handle,msg—p )")係傳送至這個遠距訊°自g 列(代理程式)4(^,如步驟478所示。這個遠距仔^4〇心 係傳送一個"ipc—sendMsg (remote handle, 1 msg —ρ ) ’’訊息至這個各處理器間通信(i pc )管理裝置
J258701 五、發明說明(99) 4壯,如步驟480所示。這個各處理器間通信(lpc )管理 =置4〇6l係命令這個處理器邊界之訊息及處理至另一個各 Π器間通信(IPC)管理裝置4〇62,如步驟48£所示。這 個貫體資料移動係發生在各處理器間通信(ipc )管理 ,及各處理器間通信(iPC )管理裝置間之互動。^ 處理器間通信〇PC)管理裝置4〇62係傳送一 谷 ’mSgQ—PUtMsgQ (handle,msg—p )"訊息至這個訊京 丁 :J4 0 22 ’如步驟484所示。這個訊息係放置於二 進行。 且化個區域訊息佇列之處理係持續 第26圖係表示這個訊息佇列識 488。這個訊息仵列識別碼(QID)資 =庫 串列以管理區域件列49。及遠 49種工用兩個 區域資料庫490係儲存區域件列場合之仔列識別這個 及區域處理。同樣地,這個遠距資料庫492係H iQlD) 列之符列識別石馬(⑽)、遠 距件 式處理。 ^ ^域代理程 這個訊以宁列界面係登錄這個訊息仔列 括:確認這個佇列並不存. ,、步驟包 加入满列至這個區域或遠距)、 器間通信(IPC)管理丁列貨料庫、及經由各處理 料庫(各處理器間通信(敗、迫:固佇”知這個遠距資 為移除-個訊息符歹報,。 由這個區域訊息佇列資料庫::::要::由包括·· 夂鉍由這個各 1258701
五、發明說明(100) 處理器間通信(IPC ) 這個佇列(各處理器 取得一個區域彳宁列之 係返回。對於一個遠 式係返 生係利 為登錄 這個各 以呼叫 並且, 為 這個各 以。乎叫 並且, 回。若 用這個 一個遠 處理器 ,其係 這個件 登錄一 處理器 ,其係 這個{宁 這個遠 距訊息 間通信 表示: 列係加 個訊息 間通信 表示: 列係由 里衣置,由這個遠距資料庫 間通信(IPC)移除訊息佇列)。二 汛息佇列處理,這個區域佇列之严 距佇列而言,這個遠距佇列之代ς 距佇列並不存在,則一個代理程 = 列模組(產生代理程式)加以觸i。 佇列’下列動作係需要執行,包括. (IPC)管理裝置係在收到通知時加 一個訊息符列係產生於相對處理写、, 入至這個遠距訊息彳宁列資料庫。 佇列,下列動作係需要執行,包括: (IPC )管理裝置係在收到通知時加 一個訊息佇列係在相對處理器破壞, 這個遠距訊息佇列資料庫移除。
1258701 圖式簡單說明 第1圖係表示一種具有軟體及應用程式界面之無線通信裝 置架構之簡單示意圖。 第2圖係表示在軟體模型語言(SDL )處理間、利用輕度 (1 i ght )整合以在各個區間内發送信號之簡單示意圖。 第3圖係表示在軟體模型語言(SDL )處理間、利用重度 (t i ght )整合以在某個區間内發送信號之簡單示意圖。 第4圖係表示在軟體模型語言(SDL )處理間、利用重度 (t i ght )整合以在各個區間内發送信號之簡單示意圖。 第5 A圖係表示利用執行緒(t h r e a d )群組之處理流程圖。 第5B圖係表示利用軟體模型語言(SDL ) C — micro產生資 料類型之結構示意圖。 第6圖係表示較佳實施例之反向軟體模型語言(SDL )處理 識別碼之表列。 第7圖係表示一種軟體模型語言(S DL )處理控制方塊之格 式。 第8、9、及1 0圖係表示一種信號識別碼在軟體模型語言 (SDL )埠接層内轉換為一過渡識別碼之處理流程圖。 第1 1 A圖係表示作業系統(0S )抽象層之高度示意圖。 第1 1 B圖係表示作業系統(0S )應用程式界面(AP I )軟體 結構之簡單示意圖。 第1 2圖係表示訊息佇列構造之設計。 第1 3圖係表示訊息佇列控制方塊之資料結構。 第1 4圖係表示利用作業系統獨立(0 S — i n d e p e n d e n t )方 式實施之物件資料庫。
第106頁 1258701 圖式簡單說明 第1 5圖係表示一種時間管理裝置物件。 第1 6圖係表示這種時間管理裝置控制方塊功能之簡單示意 圖。 第1 7圖係表示建立/啟始時間管理裝置之處理流程圖。 第1 8圖係表示取得作業系統(0S )時間管理裝置之處理流 程圖。 第19圖係表示設定回叫(Callback)時間管理裝置之處理 流程圖。 第20圖係表示取消回叫(Callback)時間管理裝置之處理 流程圖。 第21圖係表示執行回叫(Callback)時間管理裝置之處理 流程圖。 第2 2圖係表示具有各處理器間通信(I PC )元件之訊息佇 列之簡單示意圖。 第2 3圖係表示在各個處理器間之通信時,建立及破壞訊息 佇列之處理流程圖。 第2 4圖係表示在各個處理器間之通信時,開啟訊息佇列之 處理流程圖。 第2 5圖係表示在各個處理器間之通信時,遠距捨棄訊息佇 列之處理流程圖。 第2 6圖係表示一種訊息佇列識別碼(Q I D )資料庫之簡單 示意圖。 元件符號說明:
第107頁 1258701 圖式簡單說明 108 軟體模型語言模型環境 1 1 8〗-11 86 軟體模型語言程序 110 軟體模型語言埠接層 12 0 作業系統應用程式界面 1 3 Oj - 1 3 02 仔列 122 作業系統抽象層 116 底層平台 124 系統作業系統(EP0C ) 126 通信作業系統(〇SE ) 100 系統處理器(ARM ) 1 02 通信處理器(DSp ) 10 8 軟體模型語言模型環境 1 1 -至1 1 84軟體模型語言3 110 軟體模型語言埠接層 12 0作業系統應用程式界面 12 81-至 1 2 82、231執行绪 至m2、233訊息 1 3 6j - 1 3 62 分割 146 訊息佇列 15 0 動作計時器串列 154 程序識別碼 1 5 6j - 1 5 63作業系統處理 16 0 狀態指標表格 178 計時器信號 112 作業環境 1 28ι_1282、2 70 執行緒 114作業系統抽象層 10 4 通信模組 10 6 分享記憶體 序 112 作業環境 1 301 3〇2 佇列 12 2作業系統抽象層 144 程序控制方塊 14 8 儲存串列 15 2 程序描述 17 2 目前信號 18 0動作計時器串列
第108頁 1258701 圖式簡單說明 182 動 作 計 時 器 186 轉 換 表 格 位 移 188 S 前 信 號 190 轉 換 表 格 188 @ 前 信 號 210 前 進 反 覆 器 216 場 合 狀 態 表 格 212 儲 存 串 列 220 動 作 計 時 器 串 列 222 用 戶 軟 體 元 件 224 作 業 系 統 獨 立 模 組 226 作 業 系 統 相 關 模 組 232 用 戶 228 底 層 作 業 系 統 235 •^· 般 串 列 237 串 列 反 覆 器 239 、255, •264 互 斥 器 240 >253 事件 242 執 行 緒 群 組 23 0 、246 訊息佇列 248 先 進 先 出 緩 衝器 206 内 部 元 件 244 同 步 執 行 緒 234 域 訊 息 佇 列 236 遠 距 訊 息 佇 列 238 各 處 理 器 間 通 信 管 理 裝置 242 時 間 管 理 裝 置 240 物 件 資 料 庫 247 區 域 訊 息 佇 列 控 制 方 塊 250 一 般 佇 列 251 連 結 串 列 249 遠 距 訊 息 佇 列 控 制 方 塊 256 作 業 系 統 用 戶 260 物 件 資 料 庫 262 雜 散 表 格 266 時 間 管 理 裝 置 268 計 時 器 272 回 叫 串 列 274 項 @ 276 時 間 管 理 裝 置 控 制 方 塊 278 作 業 系 統 系 統 時 間 互 斥器
1258701 圖式簡單說明 280 回叫串列互斥器 282 回叫連結串列 2 92 清空回叫串列 308 設定指示計時器 310 作業系統應用程式界面 330 時間管理裝置用戶 348 設定這個指定計時器 356 動作計時器 3 78 根據下列執行回叫函數之迴路 4 0 0 設定指定計時器 402^402^402 )訊息佇列 Φ 404i - 404 遠距訊息彳宁列 408^4082 ( 408 ) 訊息佇列識別碼資料庫 406^40 62 各處理器間通信管理裝置 476 由訊息佇列控制方法拉回處理 488 訊息佇列識別碼資料庫 490 區域佇列串列 492 遠距佇列串列
第110頁

Claims (1)

1258701
至不同作業系統之方法,該方法 •一種將一軟體模型匯 係包括下列步驟: 提供一軟體模型; $供一接璋層’該埠接層係將該軟體模型埠接至一作業 提供一作業環境,該作業環境係共用於所有不同作業系 統,以及 〃、/、 提供複數作業系統抽象層,其中,各個抽象層係指定以 將該作業環境抽象至至少一目標作業系統。 2·如申請專利範圍第1項所述之方法,其中,該至少一目^ 才示作業系統係單一作業系統。 3 ·如申請專利範圍第1項所述之方法,其中,該至少一目 標作業系統係兩個作業系統,並且,該方法係將一軟體模 型匯出於一無線裝置,其中,該兩個作業系統之一第一作 業系統係一系統作業系統,並且,該兩個作業系統之一第 一作業系統係一通信作業系統。 4 ·如申請專利範圍第3項所述之方法,其中,該系統作業 系統係操作於一先進精簡指令集處理器(r I SC ),並且, 該通信作業系統係操作於,數位信號處理器(DSP )。 遍 5 ·如申請專利範圍第4項所述之方法,其中,一通信模組囑 係協助該先進精簡指令集處理器(RI S C )及該數位信號處 理器(DSP )間之通信。 6 ·如申請專利範圍第5項戶斤述之方法,其中’該通信模組 係具有一關連分享記惊 '體,用以執行該軟體模型所產生之
1258701 六、申請專利範圍 -- 程式碼操作。 ,;乍:δ:專利乾圍第1項所述之方法, 二f系統係複數作業系統。 之::請專利範園第1項所述之方法, 係獨立於處理器邊界。 柚急®明Ϊ利範園第8項所述之方法’ x s係=義該等處理器邊界,並且 界間之通信。 〇 ·種無線通信裝詈,:i:句杯· 抑通^ k組’用以協助各個系統處理器及各個通信處理 裔間之通信; >旱記*憶體’關連於該通信模組; 各個系統處理器及通信處理器係具有一 其中,/亥作業系統係執行-軟體模型所產生糸統, =體模型係埠接至一作業環境以提供一作業環境該 壞境係共用於所有不同作業系統,一作業系統抽:作業 該作業環境抽象至各個關連作業系統。 ㈢係將 11 ·如申請專利範圍第1 0項所述之無線通信裝置 該無線通信裝置係一無線傳輸及接收單元。 1 2.如申請專利範圍第11項所述之無線通信裝置 該至少一系統處理器係一先進精簡指令集處理器 該通信處理器係一數位信號處理器。 1 3.如申请專利範圍第1 〇項所述之無線通信裝置 其中 其中 該至少一目 該作業環境 其中,該作業系統 ,協助該等處理器邊 其中, 其中, ’並且 其中
第112頁 1258701
1258701 申5奢專利範圍 之通信 一分旱記憶體,關連於該通信模組; 苴们系統處理器及通信處理器係具有一關連作業系統, 敕码π作業系統係執行一軟體模型所產生之程式碼,該 誃::f係利用一單執行緒模型工具開發,-琿接層係將 ^产,1丁緒模型工具產生之程式碼埠接至一多執行緒作業 二兄4 ^接層係參考以變數埠接至該多執行緒作業環 ^ 而不疋做為變數’藉以使各個執行緒可以參考存取變 〒·如,請/利範圍第1 9項所述之無線通信裝置,其中,礞 ^ 行緒模型工具係產生變數以做為全域變數,並且,不 曰將°亥等全域變數用於該多執行緒作業環境之複數執行緒 操作。 ·如申請專利範圍第丨9項所述之無線通信裝置,其中, 違璋接層係包括一根處理表,該根處理表係具有處理描述 方塊項目’其中’該處理描述方塊項目之各個處理係具有 靜態變數。 2 2 ·如申請專利範圍第丨9項所述之無線通信裝置,其中, 該軟體開發所利用之一模型語言係軟體模型語言 (SDL· ),並且,該單執行緒軟體工具係具有輕度敗厶 m Telelogic Tau C —micro 〇 2 3 ·如申請專利範圍第1 9項所述之無線通信裝置,其 該無線通信裝置係一無線傳輸及接收單元。 “ 24· —種在一軟體環境中同步複數執行緒之方法,其中
第114頁 1258701 六、申請專利範圍 各個執行緒係一獨立執行絡徑,該方法係包括下列步驟: 針對需要同步之一執行緒群組之複數執行緒,啟始各 個執行緒; 等待該執行緒群組之所有執行緒之一啟始回復,其 中’該啟始回復係表示該執行緒之啟動已經完成;以及 在該等待步驟後,開始執行該執行緒群組之所有執行 緒。 2 5 ·如申請專利範圍第2 4項所述之方法,更包括: 提供複數同步執行緒,其中’各個同步執行緒係啟始 該執行緒群組之一執行緒、並開始執行該執行緒。 2 6 ·如申請專利範圍第2 5項所述之方法,更包括: 提供一同步執行緒資料表,其中,該同步執行緒資料 表係具有各個執行緒之一優先順序、各個執行緒之一啟始 函數、各個執行緒之一啟始引數、各個執行緒之一主要迴 路函數之一參考、及傳送以傳送至各個執行緒之一主要迴 路引數。 2 7 · —種無線通信裝置,其包括: 至少一系統處理器及至少一通信處理器; 一通k模組,用以協助各個系統處理器及通信處理哭 之通信; 間 一分享記憶體,關連於該通信模組; 、,各個^統處理器及通信處理器係具有一關連作業系統, 亚且,操作於該作業系統之軟體係同步一軟體環境中、— 執行緒群組内之複數執行緒,各個執行緒係一獨立執行: 1258701 ___ 利範圍 "" 少 f -η 徑,其中,針對需要同步之該執行緒群組之複數執行緒, 欲始該執行緒群組之各個執行緒;等待該執行緒群纽之 有執行緒之一啟始回復,其中,該啟始回復係表示該執^ 緒之啟動已經完成;以及,在該等待步驟後’開始執行$ 執行緒群組之所有執行緒。 2 8.如申請專利範圍第2 7項所述之無線通信裝置,其中, 該軟體之操作更包括:提供複數同步執行緒’其中,各個 同步執行緒係啟始該執行緒群組之一執行緒、並開始執行 該執行緒。 2 9 ·如申請專利範圍第2 7項所述之無線通信裝置,其中,❹ 該軟體之操作更包括:提供一同步執行緒資料表,其中, 該同步執行緒資料表係具有各個執行緒之一優先順序、各 個執行緒之一啟始函數、各個執行緒之一啟始引數、各個 執行緒之一主要迴路函數之一參考、及傳送以傳送至各個 執行緒之一主要迴路引數。 3 0 ·如申請專利範圍第2 7項所述之無線通信裝置,其中, 該無線通信裝置係一無線傳輸及接收單元。 3 1 · —種作業系統抽象層,其包括: 具有一作業環境之一界面,其中,該作業環境之操作 獨立於配備之作業系統; 〇 一作業系統獨立模組,用以執行獨立於一目標作業 之操作; ’' … 作業系統相關模組,用以執行相關於該目標作業系 之操作;以及 /、、、
第116頁 1258701 六、申請專利範圍 具有一目標作業系統之一界面。 3 2. —種抽象一作業環境至複數作業系統之方法,該方法 係包括下列步驟: 提供一作業環境,其中,該作業環境係共用於所有不同 作業系統;以及 提供複數作業系統抽象層,其中,各個作業系統抽象層 係設計以抽象該作業環境至至少一目標作業系統。 3 3.如申請專利範圍第3 2項所述之方法,其中,各個抽象 層係具有一相同作業系統相關模組及一不同作業系統獨立 模組。 34. —種無線通信裝置,其包括: 至少一系統處理器及至少一通信處理器; 一通信模組,用以協助各個系統處理器及通信處理器間 之通信; 一分享記憶體,關連於該通信模組; 各個系統處理器及通信處理器係具有一關連作業系統, 其中,該作業系統係執行一作業系統抽象層之程式碼,該 作業系統抽象層係與一作業環境界面、並具有:一作業系 統獨立模組,用以執行獨立於一目標作業系統之操作;以 及,一作業系統相關模組,用以執行相關於該目標作業系 統之操作。 3 5.如申請專利範圍第34項所述之無線通信裝置,其中, 該無線通信裝置係一無線傳輸及接收單元。 3 6. —種在一多作業系統環境中控制軟體時序之方法,該
第117頁 1258701 六、申請專利範圍 方法係包括下列步驟: 提供一時間管理裝置; 各個作業系統之作業系統構成係傳送回叫至該時間管理 裝置; 在各個回叫指定之一時間周期後,該時間管理裝置係傳 送一回叫訊息至該回叫構成;以及 該構成之操作係因應於該接收訊息。 3 7.如申請專利範圍第3 6項所述之方法,其中,該時間管 理裝置係具有一關連回叫清單,其中,該關連回叫清單係 該等傳送回叫之回叫時間請求之一順序清單。 3 8.如申請專利範圍第3 6項所述之方法,其中,該時間管 理裝置係具有一計時器,其中,該計時器係具有複數執行 緒,其中,該等執行緒之啟動係因應於回叫時間請求之期 滿。 3 9.如申請專利範圍第3 6項所述之方法,其中,該時間管 理裝置係具有一計時器,其中,該計時器係安排一最短回 叫延遲,以及,在該最短回叫延遲期滿後,安排下一次最 短回叫延遲。 4 0. —種時間管理裝置,用以控制一多作業系統環境之軟 體時序,該時間管理裝置係包括: 一輸入,架構以接收各個作業系統之作業系統構成傳送 之回叫;以及 一計時器,在各個回叫指定之一時間周期後,產生一執 行緒以對該回叫構成表示該回叫之期滿。
第118頁 1258701 六、申請專利範圍 '— 4 1 ·如申請專利範圍第40項所述之時間管理裝置,其中, 該計時器係安排一最短回叫延遲,以及,在該最短回叫延 遲期滿後,安排下一次最短回叫延遲。 42· —種無線通信裝置,其包括: 至少一系統處理器及至少一通信處理器; 一通佗模組’用以協助各個系統處理器及各個通信處理 器間之通信; 一分享記憶體,關連該通信模組; 各個系統處理器及通信處理器係具有一關連作業系統; 以及 | 一時間管理裝置,用以控制各個作業系統之軟體時序, 該時間管理裝置係包括: 一輸入,架構以接收各個作業系統之作業系統構成傳 送之回叫;以及 一計時器,在各個回叫指定之一時間周期後,產生— 執行緒以對該回叫構成表示該回叫之期滿。 43·如申請專利範圍第42項所述之無線通信裝置,其中, 該計時器係安排一最短回叫延遲,以及,在該最短回叫延 遲期滿後,安排下一次最短回叫延遲。 4 4 ·如申請專利範圍第4 2項所述之無線通信裝置,其中,4 该無線通信裝置係一無線傳輸及接收單元。 4 5 · —種軟體處理以在處理器邊界間通信之方法,該方法 係包括下列步驟: 提供關連於一區域處理器之一區域處理、及關連—、土
1258701 六、申請專利範圍 處理器之一遠距處理; 提供該區域處理之一區域件列; 提供或產生該遠距處理之一遠距符列; 一該區域處理係在該區域佇列中具有一置入請求,藉以表 示欲傳送至該遠距處理之一訊肩、;以及 將該訊息置入該遠距符列。 4 6 · —種無線通信裝置,其包括: 至少一系統處理器及至少一通信處理器; 一通信模組’用以協助各個系統處理器及通信處理器間 之通信; 一分享記憶體,關連於該通信模組; 各個系統處理器及通信處理器係具有一關連作業系統; 如一區域處理係關連於系統及通信處理器之一區域處理 器,以及,一遠距處理係關連系統及通信處理考=、土 處理器; σ义遂距 一區域佇列係關連於該區域處理;以及 一遠距佇列係關連於該遠距處理;以及 其中,該區域處理係在該區域佇列中具有一置入請求, 藉以表示欲傳送至該遠距處理之一訊息;以及,將該訊_ 置入該遠距佇列。 〜 4 7 ·如申請專利範圍第4 6項所述之無線通信裝置,其中, °亥無線通信裝置係一無線傳輸及接收單元。
第120頁
TW092123237A 2002-08-26 2003-08-22 Wireless device operating system (OS) application programmer's interface TWI258701B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US40599502P 2002-08-26 2002-08-26

Publications (2)

Publication Number Publication Date
TW200411562A TW200411562A (en) 2004-07-01
TWI258701B true TWI258701B (en) 2006-07-21

Family

ID=31946952

Family Applications (3)

Application Number Title Priority Date Filing Date
TW093110150A TWI324309B (en) 2002-08-26 2003-08-22 Communication circuit
TW095128941A TWI336848B (en) 2002-08-26 2003-08-22 Wireless transmit/receive unit and method for providing a communication path between a plurality of operating systems in a wireless device
TW092123237A TWI258701B (en) 2002-08-26 2003-08-22 Wireless device operating system (OS) application programmer's interface

Family Applications Before (2)

Application Number Title Priority Date Filing Date
TW093110150A TWI324309B (en) 2002-08-26 2003-08-22 Communication circuit
TW095128941A TWI336848B (en) 2002-08-26 2003-08-22 Wireless transmit/receive unit and method for providing a communication path between a plurality of operating systems in a wireless device

Country Status (6)

Country Link
US (4) US7409682B2 (zh)
EP (1) EP1540472A4 (zh)
AR (1) AR044190A1 (zh)
AU (1) AU2003262877A1 (zh)
TW (3) TWI324309B (zh)
WO (1) WO2004019211A1 (zh)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8458754B2 (en) 2001-01-22 2013-06-04 Sony Computer Entertainment Inc. Method and system for providing instant start multimedia content
CA2472740A1 (en) * 2002-01-11 2003-07-17 Sierra Wireless, Inc. Host extensible wireless application interface
US7343593B2 (en) * 2002-12-09 2008-03-11 Siemens Aktiengesellschaft Method and device for porting software programs to a target platform by way of an electronic data processing system
CN1320468C (zh) * 2004-07-06 2007-06-06 威盛电子股份有限公司 可支持基本输入功能的无线外设与控制方法
US7356808B2 (en) * 2004-09-23 2008-04-08 International Business Machines Corporation Method, system and program product for porting code utilizing a portable execution environment
US20060101436A1 (en) 2004-10-26 2006-05-11 Microsoft Corporation Hosting environment abstraction model for content
US8453157B2 (en) * 2004-11-16 2013-05-28 International Business Machines Corporation Thread synchronization in simultaneous multi-threaded processor machines
US7810105B2 (en) * 2004-12-29 2010-10-05 Motorola, Inc. Method and apparatus for running different types of applications on a wireless mobile device
US7784065B2 (en) * 2005-02-07 2010-08-24 Microsoft Corporation Interface for consistent program interaction with auxiliary computing devices
WO2006085305A2 (en) * 2005-02-08 2006-08-17 Eliezer Kantorowitz Environment-independent software
US7657574B2 (en) * 2005-06-03 2010-02-02 Microsoft Corporation Persistent storage file change tracking
US20070005721A1 (en) * 2005-06-30 2007-01-04 Microsoft Corporation Remotable porting layer
JP4725955B2 (ja) * 2005-06-30 2011-07-13 株式会社リコー 情報処理装置、メッセージ管理方法、プログラムおよび記憶媒体
GB0516438D0 (en) * 2005-08-10 2005-09-14 Symbian Software Ltd Adding functionality to a computing device using thread call tables
JP4961781B2 (ja) * 2006-03-14 2012-06-27 ソニー株式会社 情報処理装置、その起動方法およびプログラム
US8533700B1 (en) * 2006-04-11 2013-09-10 Open Invention Networks, Llc Workstation uptime, maintenance, and reboot service
US9596585B2 (en) * 2006-08-04 2017-03-14 Microsoft Technology Licensing, Llc Managing associations in ad hoc networks
US20080031208A1 (en) * 2006-08-04 2008-02-07 Microsoft Corporation Synchronization between wireless devices while saving power
US7860038B2 (en) * 2006-08-04 2010-12-28 Microsoft Corporation Wireless support for portable media player devices
US7853925B2 (en) * 2006-12-13 2010-12-14 Sap Ag System and method for managing hierarchical software development
US9483405B2 (en) 2007-09-20 2016-11-01 Sony Interactive Entertainment Inc. Simplified run-time program translation for emulating complex processor pipelines
US7953878B1 (en) * 2007-10-09 2011-05-31 Netapp, Inc. Multi-threaded internet small computer system interface (iSCSI) socket layer
US8838817B1 (en) 2007-11-07 2014-09-16 Netapp, Inc. Application-controlled network packet classification
US8855093B2 (en) * 2007-12-12 2014-10-07 Broadcom Corporation Method and system for chip-to-chip communications with wireline control
US9170962B2 (en) * 2007-12-21 2015-10-27 International Business Machines Corporation Dynamic designation of retirement order in out-of-order store queue
US8930680B2 (en) 2007-12-21 2015-01-06 International Business Machines Corporation Sync-ID for multiple concurrent sync dependencies in an out-of-order store queue
US8566833B1 (en) 2008-03-11 2013-10-22 Netapp, Inc. Combined network and application processing in a multiprocessing environment
US7657879B1 (en) * 2008-06-13 2010-02-02 Sony Computer Entertainment America Inc. System and method for cross-platform quality control
US8312474B2 (en) 2009-02-09 2012-11-13 International Business Machines Corporation Method, apparatus, and system for applying timed operations to non-timed functions
SE533987C2 (sv) * 2009-07-17 2011-03-22 Mobisma Ab Applikation i mobil telefon för styrning av en icke-publik telefonväxel
US8457430B2 (en) * 2009-08-02 2013-06-04 Mediatek Inc. Region-based method for iterative regularization image enhancement, and associated region-based apparatus and associated processing circuit
US8126987B2 (en) 2009-11-16 2012-02-28 Sony Computer Entertainment Inc. Mediation of content-related services
US8433759B2 (en) 2010-05-24 2013-04-30 Sony Computer Entertainment America Llc Direction-conscious information sharing
TWI494935B (zh) * 2010-07-12 2015-08-01 Taiwan Secom Co Ltd 具有高信賴度資料與資料流處理裝置
CN102123196B (zh) * 2010-12-29 2013-07-17 浙大网新科技股份有限公司 在Android手机上实现WinCE/Android混合API的方法
KR101319815B1 (ko) * 2011-06-22 2013-10-21 김강수 멀티 단말 장치 간 서버-클라이언트 서비스 환경을 지원하는 앱 구동 방법
US9348568B2 (en) 2011-08-24 2016-05-24 Accenture Global Services Limited Software application porting system
CN103975285B (zh) 2011-12-15 2017-02-15 英特尔公司 实施在使用毫米波无线电的多核系统中的处理器间通信
US8914706B2 (en) 2011-12-30 2014-12-16 Streamscale, Inc. Using parity data for concurrent data authentication, correction, compression, and encryption
US8683296B2 (en) 2011-12-30 2014-03-25 Streamscale, Inc. Accelerated erasure coding system and method
US9923950B1 (en) 2012-07-24 2018-03-20 Ports America Group, Inc. Systems and methods involving features of terminal operation including TOS-agnostic and/or other features
KR20150052843A (ko) * 2012-07-24 2015-05-14 포츠 아메리카 그룹, 인코포레이티드 사용자 인터페이스 및/또는 다른 특징들을 포함하는 터미널 운영의 특징들을 수반하는 시스템들 및 방법들
US9348359B2 (en) * 2013-01-31 2016-05-24 Red Hat, Inc. Updating a desired tick rate for a kernel
US8752075B1 (en) * 2013-02-26 2014-06-10 Xilinx, Inc. Method for data transport
US9454630B1 (en) 2013-02-26 2016-09-27 Xilinx, Inc. Graphical representation of integrated circuits
US9898468B2 (en) * 2013-12-18 2018-02-20 Quantum Corporation Single pass file system repair with copy on write
US9372996B2 (en) * 2014-05-15 2016-06-21 International Business Machines Corporation Protecting data owned by an operating system in a multi-operating system mobile environment
CN109828772B (zh) * 2019-02-19 2022-03-11 百度在线网络技术(北京)有限公司 热更新方法、操作系统、终端设备和存储介质
US11119531B2 (en) * 2019-12-06 2021-09-14 Oracle International Corporation Parallel pseudo infinite monotonic timeline clock
CN113778706B (zh) * 2021-08-18 2023-08-15 北京自动化控制设备研究所 一种基于amp架构的操作系统核间通信方法

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US708260A (en) * 1901-06-24 1902-09-02 Herbert H Sanderson Stair-pad.
EP0592079A2 (en) * 1992-09-20 1994-04-13 Sun Microsystems, Inc. Automated software installation and operating environment configuration on a computer system
US5379432A (en) * 1993-07-19 1995-01-03 Taligent, Inc. Object-oriented interface for a procedural operating system
US5493692A (en) * 1993-12-03 1996-02-20 Xerox Corporation Selective delivery of electronic messages in a multiple computer system based on context and environment of a user
US5742639A (en) * 1994-05-13 1998-04-21 Westinghouse Electric Corporation Mobile terminal apparatus and method for a satellite communication system
US5956507A (en) * 1996-05-14 1999-09-21 Shearer, Jr.; Bennie L. Dynamic alteration of operating system kernel resource tables
US5946487A (en) * 1996-06-10 1999-08-31 Lsi Logic Corporation Object-oriented multi-media architecture
US6275519B1 (en) * 1996-11-21 2001-08-14 Dsp Group, Inc. Frame synchronization in a digital communications system
US6628965B1 (en) * 1997-10-22 2003-09-30 Dynamic Mobile Data Systems, Inc. Computer method and system for management and control of wireless devices
US6542926B2 (en) * 1998-06-10 2003-04-01 Compaq Information Technologies Group, L.P. Software partitioned multi-processor system with flexible resource sharing levels
US6256775B1 (en) 1997-12-11 2001-07-03 International Business Machines Corporation Facilities for detailed software performance analysis in a multithreaded processor
WO1999031584A1 (de) * 1997-12-17 1999-06-24 Fujitsu Siemens Computers Gmbh Verfahren zum umsetzen eines systemaufrufs
US6029000A (en) 1997-12-22 2000-02-22 Texas Instruments Incorporated Mobile communication system with cross compiler and cross linker
EP0926590A1 (en) * 1997-12-23 1999-06-30 Sony International (Europe) GmbH Component-based control structure for wireless communication
FI108478B (fi) * 1998-01-21 2002-01-31 Nokia Corp Sulautettu jõrjestelmõ
US6407751B1 (en) * 1998-01-28 2002-06-18 International Business Machines Corporation Method and apparatus of generating mobile objects and storage medium storing an object generating mobile objects
US6446225B1 (en) * 1998-04-23 2002-09-03 Microsoft Corporation Server system with scalable session timeout mechanism
US6954922B2 (en) * 1998-04-29 2005-10-11 Sun Microsystems, Inc. Method apparatus and article of manufacture for time profiling multi-threaded programs
US6256637B1 (en) * 1998-05-05 2001-07-03 Gemstone Systems, Inc. Transactional virtual machine architecture
US6493740B1 (en) * 1998-06-16 2002-12-10 Oracle Corporation Methods and apparatus for multi-thread processing utilizing a single-context architecture
US6505228B1 (en) 1998-07-22 2003-01-07 Cisco Technology, Inc. Dynamic determination of execution sequence
US6226788B1 (en) * 1998-07-22 2001-05-01 Cisco Technology, Inc. Extensible network management system
US6920634B1 (en) * 1998-08-03 2005-07-19 International Business Machines Corporation Detecting and causing unsafe latent accesses to a resource in multi-threaded programs
US6434150B1 (en) * 1998-08-05 2002-08-13 Sprint Communications Company, L.P. Telecommunications provider agent
GB9825102D0 (en) 1998-11-16 1999-01-13 Insignia Solutions Plc Computer system
US6952825B1 (en) * 1999-01-14 2005-10-04 Interuniversitaire Micro-Elektronica Centrum (Imec) Concurrent timed digital system design method and environment
US6754885B1 (en) * 1999-05-17 2004-06-22 Invensys Systems, Inc. Methods and apparatus for controlling object appearance in a process control configuration system
WO2000074368A2 (en) * 1999-06-01 2000-12-07 Bsquare Corporation Device driver platform layer
JP2000349782A (ja) * 1999-06-08 2000-12-15 Nec Corp 赤外線送受信装置および赤外線送受信方法
US6856950B1 (en) 1999-10-15 2005-02-15 Silicon Graphics, Inc. Abstract verification environment
US6711739B1 (en) 1999-11-08 2004-03-23 Sun Microsystems, Inc. System and method for handling threads of execution
US6549617B1 (en) * 2000-01-19 2003-04-15 International Controllers, Inc. Telephone switch with delayed mail control system
US6757904B1 (en) * 2000-03-10 2004-06-29 Microsoft Corporation Flexible interface for communicating between operating systems
US6721949B1 (en) * 2000-03-27 2004-04-13 General Instrument Corporation Kernel abstraction layer for digital television set-top box firmware
US20010027464A1 (en) * 2000-03-27 2001-10-04 General Instrument Corporation Operating system abstraction interface for broadband terminal platform firmware
US6631516B1 (en) * 2000-04-25 2003-10-07 International Business Machines Corporatioin Extended syntax record for assembler language instructions
EP1281264B1 (en) * 2000-05-08 2012-12-12 Broadcom Corporation System and method for supporting multiple voice channels
US6854108B1 (en) * 2000-05-11 2005-02-08 International Business Machines Corporation Method and apparatus for deterministic replay of java multithreaded programs on multiprocessors
US7012622B2 (en) * 2000-08-14 2006-03-14 Twin Communications Of America, Inc. Portable operating environment for information devices
US20040054821A1 (en) * 2000-08-22 2004-03-18 Warren Christopher E. Multifunctional network interface node
US6721945B1 (en) * 2000-09-18 2004-04-13 International Business Machines Corporation Optimization of calls in programming languages using pointers for passing reference parameters
JP2002099432A (ja) * 2000-09-22 2002-04-05 Sony Corp 演算処理システム及び演算処理制御方法、タスク管理システム及びタスク管理方法、並びに記憶媒体
US6968541B1 (en) * 2000-10-04 2005-11-22 International Business Machines Corporation Apparatus and method for template instantiation with a cross compiler
US7162718B1 (en) * 2000-12-12 2007-01-09 International Business Machines Corporation Language extension for light weight threading in a JVM
US6400985B1 (en) * 2001-02-06 2002-06-04 Pacesetter, Inc. Method and apparatus for timing events within an implantable medical device
FR2822627B1 (fr) * 2001-03-22 2003-06-20 Wavecom Sa Module de radiocommunication hebergeant et executant un logiciel client, et procede correspondant de mise en oeuvre d'un logiciel client de pilotage
US7082604B2 (en) * 2001-04-20 2006-07-25 Mobile Agent Technologies, Incorporated Method and apparatus for breaking down computing tasks across a network of heterogeneous computer for parallel execution by utilizing autonomous mobile agents
US6842433B2 (en) * 2001-04-24 2005-01-11 Wideray Corporation System and method for communicating information from a computerized distributor to portable computing devices
CA2346762A1 (en) * 2001-05-07 2002-11-07 Ibm Canada Limited-Ibm Canada Limitee Compiler generation of instruction sequences for unresolved storage devices
US7028305B2 (en) * 2001-05-16 2006-04-11 Softricity, Inc. Operating system abstraction and protection layer
US6851110B2 (en) * 2001-06-07 2005-02-01 Hewlett-Packard Development Company, L.P. Optimizing an executable computer program having address-bridging code segments
US7827611B2 (en) * 2001-08-01 2010-11-02 Mcafee, Inc. Malware scanning user interface for wireless devices
US6804682B1 (en) * 2002-04-29 2004-10-12 Borland Software Corporation System and methodology providing compiler-assisted refactoring
WO2003107220A1 (en) * 2002-06-12 2003-12-24 Fslogic, Inc. Layered computing systems and methods for insecure environments
JP2004056010A (ja) * 2002-07-23 2004-02-19 Toyota Central Res & Dev Lab Inc 窒化物半導体発光素子
US7039788B1 (en) * 2002-10-28 2006-05-02 Sandisk Corporation Method and apparatus for splitting a logical block
US7174554B2 (en) * 2002-12-20 2007-02-06 Microsoft Corporation Tools and methods for discovering race condition errors
US7082432B2 (en) * 2003-04-24 2006-07-25 Sun Microsystems, Inc. Specifying transaction manager type at various application levels
US6976253B1 (en) 2003-07-30 2005-12-13 Microsoft Corporation Method and apparatus for configuring a mobile device

Also Published As

Publication number Publication date
US20040123306A1 (en) 2004-06-24
US7506340B2 (en) 2009-03-17
US7526777B2 (en) 2009-04-28
EP1540472A4 (en) 2005-12-21
AR044190A1 (es) 2005-09-07
US20040216125A1 (en) 2004-10-28
TW200511037A (en) 2005-03-16
TWI336848B (en) 2011-02-01
TW200411562A (en) 2004-07-01
TW200725302A (en) 2007-07-01
TWI324309B (en) 2010-05-01
EP1540472A1 (en) 2005-06-15
US20090178057A1 (en) 2009-07-09
WO2004019211A1 (en) 2004-03-04
AU2003262877A1 (en) 2004-03-11
US20040205754A1 (en) 2004-10-14
US7409682B2 (en) 2008-08-05

Similar Documents

Publication Publication Date Title
TWI258701B (en) Wireless device operating system (OS) application programmer's interface
Dou et al. Misco: a mapreduce framework for mobile systems
JP7200455B2 (ja) 時間的に正確なイベントストリームの作成のためのシステム及び方法
Bouteiller et al. Correlated set coordination in fault tolerant message logging protocols
US9600681B2 (en) Method for controlling access to electronic documents using locks
EP1347377A3 (en) Abstract user inteface manager with prioritization
WO2002001390A2 (en) Coordination-centric framework for software design in a distributed environment
CN109032815A (zh) 功能模块间的信息交互方法、装置、设备及存储介质
Kohlhoff Boost. asio
WO2018121698A1 (zh) 基于c++语言的远程函数调用方法、通信装置
JP3845497B2 (ja) コンピュータ・システム
Horvat et al. Mobile agents and Java mobile agents toolkits
Bouteiller et al. Correlated set coordination in fault tolerant message logging protocols for many‐core clusters
Zaplata et al. Flexible execution of distributed business processes based on process instance migration
CA2519731A1 (en) Mediator-based recovery mechanism for multi-agent system
Jaghoori et al. Schedulability of asynchronous real-time concurrent objects
CN109388388A (zh) 功能模块间的信息交互方法、装置、设备及存储介质
Kalkov et al. Explicit prioritization of parallel Intent broadcasts in real‐time Android
Zarezadeh et al. Performance analysis of hardware/software middleware in network of smart camera systems
JP2011108093A (ja) 高可用サーバシステム、高可用サーバシステムの障害時復旧方法、および高可用サーバ
Janus Identifying requirements for support of distributed multimedia applications
Mullender et al. Programming distributed applications using plan 9 from bell labs
TWI476688B (zh) Message Oriented Architecture Business Process Control Engine
JP2002077308A (ja) 情報処理装置、情報処理方法及びメモリ媒体
Pyarali Patterns for Providing Real-Time Guarantees in DOC Middleware-Doctoral Dissertation, May 2002

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees