專利名稱:用于從阻塞任務(wù)收回預(yù)算資源的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種調(diào)度第一任務(wù)的方法,包括以下步驟在一個周期中啟動第一任務(wù)運行的第一步,檢測該周期中第一任務(wù)阻塞的第二步。
此外,本發(fā)明還涉及一種調(diào)度第一任務(wù)的系統(tǒng),包括在一個周期中運行第一任務(wù)的運行裝置,檢測第一任務(wù)阻塞狀態(tài)的檢測裝置。
從US-6,108,683可以了解上述方法的一種實施例。這里,公開了一種可以在實時類進程調(diào)度程序空間用于多媒體處理的用戶級進程調(diào)度程序。實時類進程調(diào)度程序是一種由操作系統(tǒng)支持的固定優(yōu)先級調(diào)度程序。用戶級進程調(diào)度程序為用戶進程分配CPU時間,同時,用戶級進程調(diào)度程序提供了具有低于或等于用戶進程優(yōu)先級的阻塞檢測進程。當(dāng)用戶進程由于輸入/輸出而阻塞時,用戶級進程調(diào)度程序為阻塞檢測進程分配CPU時間。然后,阻塞檢測進程檢測阻塞的發(fā)生并向用戶級進程調(diào)度程序公布該阻塞的發(fā)生。通過公布這個發(fā)生,用戶級進程調(diào)度程序識別出用戶進程的執(zhí)行被暫?;蛲V?,而且用戶級進程調(diào)度程序允許執(zhí)行另一個用戶進程。此外,當(dāng)用戶進程的狀態(tài)變?yōu)橹甘居脩暨M程可以執(zhí)行的就緒或可執(zhí)行狀態(tài)時,通過公布檢測到的就緒狀態(tài)來通知用戶級進程調(diào)度程序。當(dāng)用戶級進程調(diào)度程序接收到這個表示檢測到就緒狀態(tài)的通知時,用戶級進程調(diào)度程序再次為該用戶進程分配CPU時間。
本發(fā)明的一個目的是提供一種如上所述以改進方式處理任務(wù)阻塞狀態(tài)的方法。為了實現(xiàn)這個目的,根據(jù)本發(fā)明的方法的特征在于該方法還包括防止第一任務(wù)在周期中恢復(fù)運行的第三步。通過防止第一任務(wù)在檢測到第一任務(wù)阻塞的周期中恢復(fù)運行來防止其它任務(wù)可能錯過它們的截止時限。截止時限表示周期中的一個時間戳,一個任務(wù)必須在它之前執(zhí)行一定數(shù)量的工作。截止時限可以等于周期的終點。當(dāng)一個任務(wù)在周期中沒有遇到其截止時限時,系統(tǒng)的整體性能將下降。在一個任務(wù)阻塞期間,可以阻止其它任務(wù)前進,這導(dǎo)致這些其它任務(wù)也將錯過它們的截止時限。為了防止阻塞任務(wù)干擾其它任務(wù),因為這將導(dǎo)致其它任務(wù)錯過它們的截止時限,要防止阻塞任務(wù)在其阻塞的周期中恢復(fù)。
根據(jù)本發(fā)明方法的一種實施例在權(quán)利要求2中進行了描述。通過利用上下文轉(zhuǎn)換信息,沒有必要提供必須由實時操作系統(tǒng)調(diào)度的獨立阻塞檢測任務(wù)或提供以預(yù)定時間間隔輪詢每個任務(wù)并查詢它是否阻塞的輪詢機制。實時操作系統(tǒng)可以執(zhí)行上下文轉(zhuǎn)換,其中當(dāng)前運行的任務(wù)掛起而另一任務(wù)恢復(fù)。實時操作系統(tǒng)可以為該上下文轉(zhuǎn)換期間執(zhí)行的鏈接(link-in)軟件提供接口或鉤子。然后,內(nèi)連軟件可以訪問有關(guān)在上下文轉(zhuǎn)換期間掛起和恢復(fù)任務(wù)的信息,并利用該信息檢測掛起任務(wù)是否阻塞。
根據(jù)本發(fā)明方法的一種實施例在權(quán)利要求3中進行了描述。通過利用上下文轉(zhuǎn)換信息,任務(wù)的阻塞可以得自基礎(chǔ)(underlying)實時操作系統(tǒng)的可用信息和提供的接口,而不是向任務(wù)本身添加額外的接口或信息或者向系統(tǒng)添加專用的阻塞檢測任務(wù)。例如,當(dāng)?shù)燃墕握{(diào)調(diào)度(RMS)應(yīng)用到調(diào)度任務(wù)時,掛起任務(wù)的優(yōu)先級和恢復(fù)任務(wù)的優(yōu)先級可以在上下文轉(zhuǎn)換期間使用。在RMS中,長周期任務(wù)比短周期任務(wù)優(yōu)先級低,而且高優(yōu)先級任務(wù)的調(diào)度比低優(yōu)先級任務(wù)有優(yōu)先權(quán)。為了在周期中遇到其截止時限,為每個任務(wù)分配允許任務(wù)在周期中消耗的預(yù)算資源。當(dāng)在周期中掛起的任務(wù)比恢復(fù)的任務(wù)優(yōu)先級高并且高優(yōu)先級任務(wù)沒有消耗完其為該周期分配的預(yù)算資源時,則掛起的任務(wù)阻塞。
根據(jù)本發(fā)明方法的一種實施例在權(quán)利要求4中進行了描述。通過從第一阻塞任務(wù)收回剩余的預(yù)算資源,防止該第一阻塞任務(wù)在其掛起的同一周期內(nèi)恢復(fù)。因此,該第一阻塞任務(wù)不會使其它任務(wù)錯過它們的截止時限。這是由為了在周期中恢復(fù)一個任務(wù)必須滿足的條件產(chǎn)生的。這些條件中的一個是任務(wù)必須有在周期中消耗的剩余預(yù)算資源。當(dāng)一個任務(wù)在周期中沒有剩余的預(yù)算資源可消耗時,基礎(chǔ)實時操作系統(tǒng)不會在這個周期中恢復(fù)任務(wù)的運行。
本發(fā)明的另一個目的是提供一種如上所述以改進方式處理任務(wù)阻塞狀態(tài)的系統(tǒng)。為了實現(xiàn)這個目的,根據(jù)本發(fā)明調(diào)度第一任務(wù)的系統(tǒng)特征在于該系統(tǒng)還包括防止第一任務(wù)在周期中恢復(fù)運行的防止裝置。
根據(jù)本發(fā)明系統(tǒng)的實施例在權(quán)利要求6中進行了描述。
以下將通過由
的實施例來描述本發(fā)明圖1說明了一種管道或流線型體系結(jié)構(gòu),圖2說明了一個任務(wù)錯過的截止時限,圖3說明了根據(jù)本發(fā)明方法的一種實施例的主要步驟,圖4示意性地說明了根據(jù)本發(fā)明系統(tǒng)的一種實施例的最重要組成部分,圖5示意性地說明了包括根據(jù)本發(fā)明系統(tǒng)一種實施例的電視機,圖6示意性地說明了包括根據(jù)本發(fā)明系統(tǒng)一種實施例的機頂盒。
現(xiàn)在,連續(xù)媒體處理越來越多地是通過可編程元件,而不是專用的單一功能元件來實現(xiàn)的。如音頻和視頻所要求的,連續(xù)媒體處理的一個特征是定時限制,也稱為截止時限,的存在。為了適當(dāng)?shù)靥幚磉@種數(shù)據(jù),一個系統(tǒng)必須觀察該定時限制并且必須保證有足夠的系統(tǒng)資源用于處理。由于實時資源是有限的,所以可能沒有為一個具體的處理段保留足夠的系統(tǒng)資源。這將導(dǎo)致任務(wù)錯過其截止時限,這將會引起系統(tǒng)性能的下降及可用資源不是最佳的使用。
在高質(zhì)量視頻系統(tǒng)中,一個任務(wù)可以有允許其在其中運行的預(yù)定個數(shù)的周期。此外,一個任務(wù)的所有周期可以等長,而且它們可以是連續(xù)的。允許一個任務(wù)在其每個周期中消耗的預(yù)算資源稱為周期預(yù)算資源。一個任務(wù)的周期預(yù)算資源可以每個周期都相等或者每個周期都不等。任務(wù)可以有指示時間戳的截止時限,在一個周期中任務(wù)必須在時間戳之前執(zhí)行一定數(shù)量的工作。這里,截止時限等于周期的終點。當(dāng)一個任務(wù)在周期中沒有遇到其截止時限時,系統(tǒng)的整體性能將下降。
根據(jù)本發(fā)明方法的一種實施例利用了稱為pSOS的商用實時操作系統(tǒng)。其它支持固定優(yōu)先級調(diào)度的實時操作系統(tǒng),如VxWorks,也可以使用。實時操作系統(tǒng)根據(jù)任務(wù)的優(yōu)先級調(diào)度不同的任務(wù)高優(yōu)先級任務(wù)比低優(yōu)先級任務(wù)有優(yōu)先權(quán)。任務(wù)根據(jù)固定優(yōu)先級調(diào)度技術(shù)-等級單調(diào)調(diào)度(RMS)來接收優(yōu)先級。這意味著長周期任務(wù)比短周期任務(wù)優(yōu)先級低。當(dāng)兩個任務(wù)有同樣的周期時,有較少預(yù)算資源的任務(wù)獲得高優(yōu)先級。以這種方式計算的優(yōu)先級稱為等級單調(diào)優(yōu)先級(RM)。為了使一個任務(wù)能夠在周期中消耗其預(yù)算資源,任務(wù)的優(yōu)先級被提升到RM優(yōu)先級。一旦預(yù)算資源耗盡,該任務(wù)的優(yōu)先級就被設(shè)置為后臺優(yōu)先級。后臺優(yōu)先級是最低優(yōu)先級。當(dāng)任務(wù)的優(yōu)先級被設(shè)置為RM優(yōu)先級時,其預(yù)算資源是激活的;當(dāng)任務(wù)的優(yōu)先級被設(shè)置為后臺優(yōu)先級時,其預(yù)算資源是禁用的。
操作系統(tǒng)激活預(yù)算資源并禁用它們。當(dāng)預(yù)算資源被激活時,任務(wù)恢復(fù)或進入系統(tǒng)。當(dāng)預(yù)算資源被禁用時,任務(wù)掛起或離開系統(tǒng)。在由操作系統(tǒng)執(zhí)行的上下文轉(zhuǎn)換期間,一個任務(wù)進入系統(tǒng)而另一個任務(wù)離開系統(tǒng)。操作系統(tǒng)提供了接口以便同可以在上下文轉(zhuǎn)換期間執(zhí)行的根據(jù)本發(fā)明方法的實施例內(nèi)連。這使得編程人員可以擴展基礎(chǔ)操作系統(tǒng)的功能性。該擴展的功能性可以用于提高系統(tǒng)的性能。
圖1說明了管道或流線型體系結(jié)構(gòu)的一種實例,其中執(zhí)行連續(xù)媒體處理的任務(wù)通過隊列互相鏈接。從其輸入隊列106接收輸入數(shù)據(jù)的任務(wù)102處理輸入數(shù)據(jù)并將其結(jié)果輸出數(shù)據(jù)放入其輸出隊列108。任務(wù)102的輸出隊列充當(dāng)其后繼任務(wù)104的輸入隊列。輸入隊列和輸出隊列是有界隊列,這意味著它們保存任務(wù)處理數(shù)據(jù)的容量有限。在這種管道或流線型體系結(jié)構(gòu)中,當(dāng)一個任務(wù)的輸入隊列空或輸出隊列滿時,該任務(wù)阻塞。如下所述根據(jù)本發(fā)明方法的一種實施例防止阻塞任務(wù),如任務(wù)102,干擾非阻塞任務(wù),如任務(wù)104,的處理。
圖2說明了一個任務(wù)錯過截止時限的實例。這里,任務(wù)202是有優(yōu)先級P202、周期T202=5和周期預(yù)算資源B202=2的周期任務(wù),而任務(wù)206是有優(yōu)先級P206、周期T206=6和周期預(yù)算資源B206=3的周期任務(wù)。因為任務(wù)202的周期小于任務(wù)206的周期,所以任務(wù)202是高優(yōu)先級任務(wù)T202<T206=>P202>P206每個任務(wù)都在其周期起點準(zhǔn)備運行,從而在周期起點開始運行。箭頭指示周期起點,Ti,j指示任務(wù)i用于周期j的周期T,而Bi,j指示任務(wù)i用于周期j的周期預(yù)算資源B。
如圖2所示,因為210是任務(wù)202第一個周期T202,1的開始,所以任務(wù)202在210開始。在212,任務(wù)202消耗了其預(yù)算資源B202,1。實時操作系統(tǒng)pSOS在212掛起任務(wù)202并啟動任務(wù)206運行。第二個周期T202,2在214開始。但是,從214到216任務(wù)202是阻塞的,在此期間任務(wù)不消耗其周期預(yù)算資源。任務(wù)206的第二個周期T206,2在216開始。由于每個任務(wù)都在其周期起點準(zhǔn)備運行而且任務(wù)202阻塞,所以任務(wù)206在216開始運行。但是在218,任務(wù)202不再阻塞,而且因為202的優(yōu)先級高于206的優(yōu)先級,所以在218任務(wù)202搶到任務(wù)206的前面。但是,如從圖2可以得到的,在這個時候任務(wù)206消耗了比其周期預(yù)算資源B206,2少的消耗掉預(yù)算資源CB206,2;CB206,2=1且B206,2=3=>CB206,2<B206,2那么任務(wù)206剩余的預(yù)算資源RB206,2就是RB206,2=B206,2-CB206,2=2任務(wù)202消耗了其全部的預(yù)算資源B202,2。任務(wù)202的下一個周期T202,3在220開始,而且由于它是任務(wù)202第三個周期的起點且任務(wù)202的優(yōu)先級高于任務(wù)206的優(yōu)先級,因此任務(wù)202在220開始運行。當(dāng)任務(wù)202消耗完其全部的預(yù)算資源B202,3時,任務(wù)202掛起而任務(wù)206開始消耗其剩余的預(yù)算資源RB206,2。因為任務(wù)206的第三個周期在任務(wù)206消耗其剩余的預(yù)算資源RB206,2之前就開始了,所以在224任務(wù)206錯過了其截止時限。如圖3所示根據(jù)本發(fā)明方法的一種實施例的主要步驟防止了作為高優(yōu)先級阻塞任務(wù)恢復(fù)結(jié)果的低優(yōu)先級任務(wù)截止時限的錯過。
圖3說明了根據(jù)本發(fā)明方法的一種實施例的主要步驟。這里,一個任務(wù)的周期是等長的、周期是連續(xù)的且周期預(yù)算資源是相等的。該方法是在上下文轉(zhuǎn)換期間執(zhí)行的,其中上下文轉(zhuǎn)換是由如前所述的基礎(chǔ)操作系統(tǒng)pSOS執(zhí)行的。
在步驟300中,相對于即將進入系統(tǒng)的任務(wù)的優(yōu)先級檢查離開系統(tǒng)的任務(wù)的優(yōu)先級。當(dāng)離開系統(tǒng)的任務(wù)的優(yōu)先級低于或等于進入系統(tǒng)的任務(wù)的優(yōu)先級時,在步驟320中允許進入系統(tǒng)的任務(wù)運行并且根據(jù)本發(fā)明的方法將控制返回給pSOS。當(dāng)離開系統(tǒng)的任務(wù)的優(yōu)先級高于進入系統(tǒng)的任務(wù)的優(yōu)先級時,在步驟302中檢查離開任務(wù)的預(yù)算資源。離開任務(wù)的預(yù)算資源表示在離開任務(wù)的當(dāng)前周期中任務(wù)沒有使用的剩余預(yù)算資源。當(dāng)離開任務(wù)的剩余預(yù)算資源等于零時,基礎(chǔ)操作系統(tǒng)不允許離開任務(wù)再次運行。在步驟320中允許進入系統(tǒng)的任務(wù)運行并且根據(jù)本發(fā)明的方法將控制返回給pSOS。當(dāng)離開任務(wù)的剩余預(yù)算資源大于零時,離開任務(wù)阻塞。然后在步驟304中這個離開且阻塞任務(wù)的剩余預(yù)算資源減少到零。通過將離開任務(wù)的剩余預(yù)算資源減少到零,基礎(chǔ)操作系統(tǒng)將不會在離開任務(wù)的當(dāng)前周期中選擇離開任務(wù)再次運行。在減少剩余預(yù)算資源后,在步驟320中允許進入系統(tǒng)的任務(wù)運行并且根據(jù)本發(fā)明的方法將控制返回給pSOS。
所述本發(fā)明方法實施例中的順序不是必須遵循的,本領(lǐng)域的技術(shù)人員可以在不背離本發(fā)明概念的前提下,改變步驟的順序或者利用線程模型、多處理器系統(tǒng)或多重處理并行執(zhí)行步驟。
圖4示意性地說明了根據(jù)本發(fā)明系統(tǒng)一種實施例的最重要組成部分。系統(tǒng)400包括具有用于執(zhí)行第一任務(wù),例如解碼圖象幀,的內(nèi)嵌計算機可讀代碼的第一存儲器402。第二存儲器404具有用于執(zhí)行第二任務(wù),例如對解碼后的幀應(yīng)用圖象增強,的內(nèi)嵌計算機可讀代碼。實時操作系統(tǒng),例如pSOS,的代碼嵌入在第三存儲器406中。實時操作系統(tǒng)的代碼可以訪問包括第一和第二任務(wù)的優(yōu)先級、所分配預(yù)算資源和周期的存儲器410。這里,如前所述,第一任務(wù)是有優(yōu)先級P1、周期T1=5和周期預(yù)算資源B1=2的周期任務(wù),而第二任務(wù)是有優(yōu)先級P2、周期T2=6和周期預(yù)算資源B2=3的周期任務(wù)。此外,存儲器410包括從開始運行嵌入在第一存儲器402中用于執(zhí)行第一任務(wù)的代碼所耗費的時間。實時操作系統(tǒng)pSOS根據(jù)等級單調(diào)調(diào)度來調(diào)度任務(wù)。周期預(yù)算資源B1和B2指示當(dāng)一個任務(wù)的預(yù)算資源被實時操作系統(tǒng)pSOS激活時,在一個周期中任務(wù)可以使用的CPU 408的CPU周期個數(shù)。當(dāng)執(zhí)行上下文轉(zhuǎn)換時,實時操作系統(tǒng)pSOS在存儲器412中填滿上下文轉(zhuǎn)換信息。在上下文轉(zhuǎn)換中,預(yù)算資源被禁用的任務(wù)的優(yōu)先級和剩余預(yù)算資源及預(yù)算資源即將被激活的任務(wù)的優(yōu)先級和剩余預(yù)算資源放入存儲器412中。存儲器414有用于檢索來自存儲器412的信息并更新預(yù)算資源被禁用的任務(wù)的剩余預(yù)算資源的內(nèi)嵌計算機可讀代碼。如前所述,當(dāng)檢索到的信息指示帶被禁用預(yù)算資源的任務(wù)阻塞時,這個阻塞狀態(tài)添加到存儲器412的內(nèi)容中。然后在該任務(wù)的當(dāng)前周期中由實時操作系統(tǒng)pSOS將帶被禁用預(yù)算資源的任務(wù)的剩余預(yù)算資源設(shè)置為零,并將其優(yōu)先級設(shè)置為后臺優(yōu)先級。系統(tǒng)400在希望作為應(yīng)用軟件由計算機或其它任何可以運行軟件的標(biāo)準(zhǔn)體系結(jié)構(gòu)來運行的軟件中實現(xiàn)。該系統(tǒng)可以用于操作數(shù)字電視機416。該軟件還可以從包括用來執(zhí)行根據(jù)本發(fā)明方法的計算機程序產(chǎn)品的存儲設(shè)備420進行更新。該存儲設(shè)備是由連接到系統(tǒng)400的CD閱讀器418來讀取的。
圖5示意性地說明了包括根據(jù)本發(fā)明系統(tǒng)一種實施例的電視機510的最重要組成部分。這里,天線500接收電視信號。該天線還可以是,例如,圓盤式衛(wèi)星電視天線、電纜、存儲設(shè)備、互連網(wǎng)、以太網(wǎng)或任何其它可以接收電視信號的設(shè)備。接收器502接收信號。該信號可以是,例如,數(shù)字的、模擬的、RGB或YUV。除接收器502之外,電視機還包括可編程元件504,例如可編程集成電路。這個可編程元件包括根據(jù)發(fā)明506的系統(tǒng)。電視屏幕508顯示由接收器502接收并由可編程元件504、根據(jù)發(fā)明506的系統(tǒng)和其它通常包含在電視機中但在此未示出的組成部分處理的圖象。
圖6示意性地說明了包括根據(jù)本發(fā)明系統(tǒng)一種實施例的機頂盒的最重要組成部分。這里,天線600接收電視信號。該天線還可以是,例如,圓盤式衛(wèi)星電視天線、電纜、存儲設(shè)備、互連網(wǎng)、以太網(wǎng)或任何其它可以接收電視信號的設(shè)備。機頂盒602接收信號。該信號可以是,例如,數(shù)字的、模擬的、RGB或YUV。除包含在機頂盒中但未在此示出的常用組成部分之外,機頂盒還包括根據(jù)發(fā)明604的系統(tǒng)。電視機606可以顯示從由機頂盒602同根據(jù)發(fā)明604的系統(tǒng)一起接收到的信號產(chǎn)生的輸出信號。輸出信號還可以被引導(dǎo)到如VCR、DVD-RW或硬盤的存儲設(shè)備,或者它們還可以指向互連網(wǎng)連接而不是指向電視機。
權(quán)利要求
1.一種調(diào)度第一任務(wù)的方法,包括以下步驟在一個周期中啟動第一任務(wù)運行的第一步,在該周期中檢測第一任務(wù)阻塞的第二步,特征在于該方法還包括防止第一任務(wù)在該周期中恢復(fù)運行的第三步。
2.根據(jù)權(quán)利要求1的調(diào)度第一任務(wù)的方法,其中第二步的基礎(chǔ)是上下文轉(zhuǎn)換信息。
3.根據(jù)權(quán)利要求2的調(diào)度第一任務(wù)的方法,其中在周期中檢測第一任務(wù)阻塞的第二步包括檢測第一任務(wù)掛起而允許第二任務(wù)開始運行的第一次步驟;其中上下文轉(zhuǎn)換信息包括低于第一任務(wù)第一優(yōu)先級的第二任務(wù)第二優(yōu)先級,及基本上等于為該周期分配的預(yù)算資源減去在該周期中消耗的預(yù)算資源的第一任務(wù)的剩余預(yù)算資源。
4.根據(jù)權(quán)利要求3的調(diào)度第一任務(wù)的方法,其中在所述周期中從第一任務(wù)收回剩余的預(yù)算資源。
5.一種用于調(diào)度第一任務(wù)的系統(tǒng)(400),包括在周期中運行第一任務(wù)的運行裝置(408),檢測第一任務(wù)阻塞狀態(tài)的檢測裝置(412),其特征在于該系統(tǒng)還包括防止第一任務(wù)在該周期中恢復(fù)運行的防止裝置(414)。
6.根據(jù)權(quán)利要求5的用于調(diào)度第一任務(wù)的系統(tǒng),其中檢測裝置(412)還被設(shè)計為根據(jù)以下所述來工作掛起的第一任務(wù)的第一優(yōu)先級,比第一任務(wù)第一優(yōu)先級低的恢復(fù)的第二任務(wù)第二優(yōu)先級,基本上等于為該周期分配的預(yù)算資源減去在該周期中消耗的預(yù)算資源的第一任務(wù)的剩余預(yù)算資源。
7.用于執(zhí)行根據(jù)權(quán)利要求1至4任何一項的方法的計算機程序產(chǎn)品。
8.存儲設(shè)備(420),包括根據(jù)權(quán)利要求7的計算機程序產(chǎn)品。
9.電視機(510),包括根據(jù)權(quán)利要求5或6的系統(tǒng)。
10.機頂盒(602),包括根據(jù)權(quán)利要求5或6的系統(tǒng)。
全文摘要
根據(jù)本發(fā)明的方法在由基礎(chǔ)實時操作系統(tǒng)(406)執(zhí)行的上下文轉(zhuǎn)換期間檢測阻塞任務(wù)并防止該阻塞任務(wù)在任務(wù)被阻塞的周期中運行。
文檔編號G06F9/46GK1478230SQ02800511
公開日2004年2月25日 申請日期2002年1月30日 優(yōu)先權(quán)日2001年3月5日
發(fā)明者C·M·奧特羅佩雷茲, E·F·M·斯蒂芬斯, R·J·布里爾, C M 奧特羅佩雷茲, M 斯蒂芬斯, 布里爾 申請人:皇家菲利浦電子有限公司