TWI258701B - Wireless device operating system (OS) application programmer's interface - Google Patents
Wireless device operating system (OS) application programmer's interface Download PDFInfo
- 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
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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45537—Provision of facilities of other operating environments, e.g. WINE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software 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頁
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)
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)
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 |
-
2003
- 2003-08-22 TW TW093110150A patent/TWI324309B/zh not_active IP Right Cessation
- 2003-08-22 TW TW095128941A patent/TWI336848B/zh not_active IP Right Cessation
- 2003-08-22 TW TW092123237A patent/TWI258701B/zh not_active IP Right Cessation
- 2003-08-26 US US10/648,663 patent/US7409682B2/en not_active Expired - Fee Related
- 2003-08-26 AR ARP030103079A patent/AR044190A1/es unknown
- 2003-08-26 US US10/648,155 patent/US7506340B2/en not_active Expired - Fee Related
- 2003-08-26 US US10/648,019 patent/US7526777B2/en not_active Expired - Fee Related
- 2003-08-26 AU AU2003262877A patent/AU2003262877A1/en not_active Abandoned
- 2003-08-26 EP EP03793413A patent/EP1540472A4/en not_active Ceased
- 2003-08-26 WO PCT/US2003/026691 patent/WO2004019211A1/en not_active Application Discontinuation
-
2009
- 2009-03-13 US US12/403,861 patent/US20090178057A1/en not_active Abandoned
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 |