新四季網

一種工作於混合模式執行引擎中的異常處理方法

2023-04-26 15:36:41

專利名稱:一種工作於混合模式執行引擎中的異常處理方法
技術領域:
本發明屬於Java編譯運行環境設計技術領域,具體涉及Java不同的執行引擎混合工作時的異常處理方法。
背景技術:
異常處理機制是現代程式語言中普遍採用的一種提高程序可靠性的方法。作為目前應用最廣泛的面向對象程式語言,Java也將異常處理機制視為語言規範的一個重要方面。異常通常分為兩種類型,運行時異常(Runtime Exc印tion)和檢查異常(Checked Exc印tion)。前者為程序運行過程中可能拋出的不確定異常,諸如空指針(Null Pointer), 數據下標越界(Arraylndex Out Of Bounds)等;後者為程式設計師在編寫程序代碼時指定的某些函數可能拋出的異常,如IOException等。異常處理通常也分為兩個階段,異常拋出 (Throw)與異常捕獲(Catch)階段。前一階段將構造即將拋出的異常對象並啟動後一階段, 後一階段依據前一階段提供的信息,操作虛擬機異常處理相關數據結構,對拋出的異常處理器進行搜索並做相應的執行流跳轉。虛擬機存在多個執行引擎,如解釋器、即時編譯器。Java應用程式一次執行通常只發生在一個引擎上。現如今,在某些虛擬機中已經存在著多種執行引擎混合執行的工作模式。混合執行能使虛擬機同時獲得解釋器資源要求少和即時編譯器執行更快的優點,從而增加了 Java應用程式的可使用範圍,更易於Java在多樣的資源有限的嵌入式等設備上擴張。通常,異常處理機制有不同的實現方式,但是這些實現只是針對非混合執行的工作模式。新的執行模式需要引入新的異常處理機制以保證Java應用程式在混合模式執行下的可靠性與正確性。因此,設計一種能夠支持混合執行模式的Java異常處理機制,並將其正確地實現是當務之急,也顯得尤為重要。

發明內容
本發明的目的在於提出一種能保證Java應用程式在混合模式執行下的可靠性與正確性的異常處理方法。由於運行於動態編譯與解釋執行混合執行模式下的Java虛擬機有幾種不同模式生成代碼交互運行,而非解釋器模式下的單一解釋模式執行,其涉及到的函數棧幀,除了解釋器模式下的Java函數棧幀,還包括了本地函數棧幀以及動態編譯生成函數棧幀,且各個執行引擎在執行函數時棧幀結構、PC值信息等不盡相同。因此,要在混合模式下實現異常的捕獲,需要在原有的傳統解釋模式下執行的異常處理步驟的基礎上,進一步考慮在不同引擎上執行的代碼相互調用邊界,以保證棧幀回退能正確進行。因此,在混合模式執行下的異常處理機制主要分為如下兩步 一、尋找最先匹配的Catch塊
這部分操作的目的主要在於定位「異常產生的位置」,然後尋找到相匹配的Catch塊。須注意此位置只與Java代碼相關。比如Throw語句導致的異常拋出,此語句的所在位置即為此異常的位置;以及在JNI本地函數中產生了異常,則此本地函數被調用的位置即為此異常產生的位置。虛擬機在執行過程中,當遇到0P_THR0W等拋出異常的字節碼指令,或是程序滿足了拋出運行時異常的條件,又或是在本地函數中發生了異常的「偽拋出」,執行引擎就會在適當的時候,初始化並存儲此異常對象,然後將該異常對象實際「拋出」,並啟動「捕獲」過程,也就是在當前函數調用軌跡上,尋找到與此異常所匹配的最近的異常處理代碼,並跳轉到此Catch塊中。解釋器在解釋0P_THR0ff/0P_THR0ff_VERI FI CAT 10N_ERR0R時,先獲取異常對象,當前PC值以及當前執行的Java函數的棧幀指針等值,隨後解釋器依據當前PC值,從當前函數棧幀(即THROW所在函數)開始搜索該PC值是否出現在某一 Try塊的作用範圍內。若找到Throw所在的Try塊,則進一步拿異常對象與其所匹配的Catch塊所處理的異常類型進行比對,若符合,則說明找到了相應的Catch塊,若無符合的情況,則說明相應的Catch處理邏輯不在當前關注的Java函數中,則進行棧的回退。當Java虛擬機在混合模式執行引擎執行下時,因為會有部分Java函數被即時編譯並執行,其函數棧幀處在本地棧上,故而需要將這些本地函數棧幀同解釋器執行的 Java函數棧幀進行「串聯」,以提供一個完整的當前執行上下文(Execution Context, or Execution Path)視圖。當進行解釋模式執行時,解釋器執行引擎會在當前的Java棧幀中分配出一塊內存區域,稱為保存區。每次會在這塊保存區中記錄下上個函數的棧幀指針、PC 值等信息,繼而為之後的棧回退做準備,同時每次從本地棧幀通過JNI調用進入解釋器模式時,都會在Java棧上插入一個中斷棧幀,用來標識Java執行流被中斷。因此在解釋模式下,如上措施可以保證Java函數棧幀之間的「串聯性」(如附圖1所示)。因此,即時編譯器在編譯Java函數生成本地棧幀時,需要在生成的本地函數棧上也分配一塊類似Java棧幀中的保存區的區域,用以記錄調用者函數的棧幀指針值和調用語句的PC值;在被編譯執行的函數去調用解釋模式的函數時,在此函數對應的Java函數棧幀上的中斷區域裡,亦需記錄下動態編譯函數的本地棧幀指針及調用發生時的本地PC值。 如此,便可以使得本地函數棧幀同Java函數棧幀相「串聯」起來。當採用解釋模式時,異常產生的位置是由於執行Java字節碼產生的;採用混合模式執行,異常產生的位置還有可能在動態編譯生成的二進位代碼裡。故而在動態編譯代碼時,與解釋器類似,也需要創建Try塊表(Try Table),用以存儲每個編譯執行的函數的 Try-Catch信息,即每個Try塊作用的二進位代碼範圍、每個Catch塊所對應的二進位代碼地址。這樣,當異常產生於二進位代碼層面上的位置時,就能按照異常處理的兩個步驟操作判斷異常產生的位置所處的Try塊,從而進一步再找到其所對應的Catch塊處理代碼位置並跳轉。根據調用者及被調用者的種類不同,保存區的存放位置也會有所不同,有如下幾種情況
1)本地函數調用解釋器函數
會通過函數調用進入解釋模式,主要邏輯同正常進入解釋器模式邏輯相同,將在Java 棧上插入一個中斷棧幀,表示調用者為本地函數。
2)動態編譯生成函數調用解釋器函數
同上一種情況類似,所不同的是,對於中斷棧幀的處理。為了同本地函數調用解釋器函數時的中斷棧幀有所區別,我們需要在中斷棧幀中,另外記錄一下調用者究竟是動態編譯生成的函數還是本地函數。3)被調用者為本地函數
主要邏輯同正常的解釋器模式執行一致,仍然為此本地函數在Java棧幀結構上分配一塊保存區,記錄調用者的棧幀指針值及PC值。若調用者為解釋器函數,則棧幀指針及PC 則分別指向解釋器中的棧幀以及解釋器中的指令位置;若調用者為動態編譯生成函數,則棧幀指針及PC則分別指向本地棧中的棧幀以及真實PC寄存器的值。4)被調用者為動態編譯生成函數
與上種情況所不同的是,為動態編譯生成函數所分配的保存區位於本地棧幀之上。這樣一來,便可以獲得處理異常時的調用路徑,然後對此路徑上的函數,逐層往上考察各層函數,通過每個函數棧幀中的Try-Catch信息,就可定位出「異常產生的位置」存在於哪個Try塊中,從而可進一步得知此Try塊所對應的各個Catch塊,之後再進行進一步的異常對象與各Catch塊所捕捉的異常的類型的比對,最終可定位出捕獲此異常的Catch 邏輯的位置。二進行棧回退,並跳轉到異常捕獲代碼
在通過函數調用獲得某一異常所匹配的Catch塊及Catch塊所在函數的信息之後,接下來需要將執行流程改變到此Catch塊上,同時,棧的信息也要層層回退到此Catch塊所在函數所對應的棧幀。對於執行流程的改變,如果Catch塊所在函數運行在解釋模式下,則在找到所匹配的Catch塊後,解釋器獲得其所在的函數的棧幀指針值以及Catch語句首條指令地址,隨後,解釋器操作棧指針使Catch塊所在函數處於棧頂,同時將PC值設置為Catch 塊所在函數的起始地址+偏移的位置,然後就是正常的取址、分發、解釋的執行流程了 ;若其所在函數為動態編譯生成的代碼,則通過調整物理寄存器PC的值,使CPU執行此段代碼即可。但在執行流程改變之前,需要完成棧的回退操作,這是為了保證稍後執行的代碼的上下文信息(真實寄存器、虛擬寄存器、棧幀)的正確性。在回退的過程中,需要根據異常發生時所在函數的類別,而採取不同的操作 A、異常發生在動態編譯生成函數中
通過函數調用,沿著調用路徑向上尋找所匹配的Catch塊處理函數,此時只關注調用路徑上的動態編譯生成函數,若找到某一動態編譯生成函數,其包含著所匹配的Catch塊, 則將真實的棧幀指針、棧頂指針切換到此函數所對應的棧幀指針以及棧頂指針,並將PC調整為Catch塊的起始地址;若在尋找過程中,遇到了 Java棧幀(中斷棧幀或是Java函數對應的Java棧幀),說明此異常不能被當前已經遍歷過的動態編譯生成函數所捕獲,那麼,該異常一定是被再上層的函數所捕獲的,此時,將真實的棧幀指針以及棧頂指針替換為此最頂端的動態編譯生成函數所保存的棧幀指針以及棧頂指針的值,然後取出動態編譯生成函數所對應的返回地址,使其直接返回即可。上述函數返回至不同執行引擎的邊界,該邊界稱作函數調用橋(Call Bridge)。函數調用橋在不同引擎切換時,負責記錄調用者與被調用者的信息,以及上下文信息的一致性與完整性。通過調用橋,可以獲知函數的調用者的類型。若調用此動態編譯生成函數的父函數為本地函數,則它會帶著異常繼續執行,直到某個點,虛擬機檢查到此異常的存在,然後將異常拋回給調用該本地函數的引擎使回退過程得以繼續;若調用此動態編譯生成函數的父函數為解釋執行的函數,函數調用橋會檢查此異常,並藉助記錄的調用者信息,復原解釋器狀態,從而將此異常交由以下第二種策略所描述的解釋執行模式處理方式繼續處理。 故而採用這種策略,既保證了 Java中遇到本地函數時對於異常處理的規範,又確保了完整無缺地處理了異常。B、異常發生在解釋執行函數中
此時的處理邏輯同正常的解釋模式執行中的處理邏輯相似,在掃描當前調用路徑上, 從當前函數起往上的所有連續的解釋執行的函數。若掃描到中斷棧幀(本地函數)或是掃描到動態編譯生成函數,則停止掃描。若在掃描過程中,尋找到某一解釋執行函數,其包含相應的Catch塊處理函數,則將虛擬棧幀指針值恢復為此解釋執行的函數對應的棧幀指針值,同時將虛擬PC設置為此 Catch塊處理函數的第一條指令的地址,之後便將在解釋模式下進行取址分發。若在掃描過程中,沒有尋找到包含相匹配Catch塊的解釋模式下的函數,則一定代表掃描時遇到了中斷棧幀(動態編譯生成函數或是本地函數調用解釋模式的函數時壓入的),則此時會退出解釋器引擎而進入執行邊界的函數調用橋。之後,同A中所述類似,藉助函數調用橋中維護的信息,若調用此函數的父函數為本地函數,則它會帶著異常繼續執行,直到某個點,虛擬機檢查到此異常的存在,然後將異常拋回給調用該本地函數的引擎使回退過程得以繼續;若調用者為動態編譯生成函數,則需要在它調用解釋器函數之後,對當前線程上的異常進行檢查,如發現有異常,則轉用第一種策略,繼續處理此異常。本發明的有益效果是本發明針對現有的混合執行引擎工作模式下的Java虛擬機中的異常處理問題,提出了一個結合了不同執行引擎異常處理特點的異常處理方法,實現了 Java虛擬機採用動態編譯和解釋器模式混合執行模式下的異常處理策略。


圖1 Java棧與本地棧結構棧回退示圖。圖2算法流程圖。圖3示例棧結構示圖。
具體實施例方式本發明設計並實現了上述的工作於混合模式執行引擎中的異常處理機制,本節對該框架的具體實施作一個詳細的介紹。介紹以實例方式進行,示例主體代碼如附錄所示。該程序在main函數中,直接調用nestFimc,該函數將由動態編譯器進行動態編譯執行;nestFimc函數將調用interpFimc函數,而該函數將由解釋器進行解釋執行;最後, interpFunc 函數調用 ExceptionThrowFunc。ExceptionThrowFunc 也是由動態編譯器進行動態編譯執行,在該函數中,將會拋出一個運行時異常,以供最外層main函數中的 1Try-Catch 捕獲。
遇到異常拋出時,將按照如下算法進行異常處理,算法的過程如下 Begin
(1)if檢查異常拋出
(2)將線程中表示異常發生的標誌位置上
(3)for取出當前函數Method的棧幀do
(4)掃描函數中的所有的異常處理代碼,找出和當前異常相匹配的異常處理塊
(5)if 找到 do
(6)跳出循環
(7)else
(8)根據當前棧幀的類型(Java函數棧幀,動態編譯生成函數棧幀)進行不同策略的棧回退,找到上一個函數的棧幀
(9)if取出棧幀為中斷棧幀do
(10)將線程異常位依舊置上,拋給上層進行處理
(11)end if
(12)end for
(13)找到了匹配的異常處理塊,根據當前棧幀的類型,採取不同的策略更新PC 值,跳轉至Catch塊的首指令處
(14)end if End。示例中,當虛擬機檢測到異常發生時,取出當前棧幀,為Exc印tionllirowFunc函數棧幀,該函數為動態編譯生成函數,查找當前函數,並未找到相應的異常處理塊,故而需要進行棧回退,根據保存區中的信息,取出上一個棧幀,發現為Java棧幀,即interpFimc函數的棧幀,查找相應的異常處理塊,未能匹配,再次進行Java棧幀上的棧回退,取出上一個棧幀發現為中斷棧幀,繼續棧回退,取出當前棧幀,為nestFimc,查找相應的異常處理塊,未能匹配,取出上一個棧幀,發現仍為動態編譯生成函數棧幀,故而繼續在本地棧幀上的進行棧回退,取出main函數的函數棧幀,查找相應的異常處理塊,匹配成功,更新PC值,進入相應的異常處理塊進行繼續執行。至此,示例函數中產生的異常被成功捕獲。附錄
0001:public class Example {
0002 public static void nestFunc{
0003System, out. println("This is a nest func!〃);
0004interpFunc ;
0005
0006
0007 public static void ExceptionThrowFunc {
0008throw new RuntimeException("Exception example!
0009
00100011 public static void interpFunc {
0012ExceptionThrowFuncO ;
0013 }
0014
0015 public static void main(String args[]) {
0016 try{
0017nestFunc ;
0018catch(Exception ex) {
0019System, out. println("Exception catched!〃);
0020ex.printStackTrace;
0021 } 0022 }
0023 }
權利要求
1. 一種工作於混合模式執行引擎中的異常處理方法,其特徵在於分為如下兩步一、尋找最先匹配的Catch塊虛擬機在執行過程中,當遇到0P_THR0W拋出異常的字節碼指令,或是程序滿足了拋出運行時異常的條件,或是在本地函數中發生了異常的「偽拋出」,執行引擎在適當的時候,初始化並存儲此異常對象,然後將該異常對象實際「拋出」,並啟動「捕獲」過程,即在當前函數調用軌跡上,尋找到與此異常所匹配的最近的異常處理代碼,並跳轉到此Catch塊中;解釋器在解釋0P_THR0ff/0P_THR0ff_VERI FI CAT 10N_ERR0R時,先獲取異常對象、當前PC 值以及當前執行的Java函數的棧幀指針值,隨後解釋器依據當前PC值,從當前函數棧幀即THROW所在函數開始搜索該PC值是否出現在某一 Try塊的作用範圍內;若找到Throw所在的Try塊,則進一步拿異常對象與其所匹配的Catch塊所處理的異常類型進行比對,若符合,則找到了相應的Catch塊,若無符合的情況,相應的Catch處理邏輯不在當前關注的 Java函數中,則進行棧的回退;當Java虛擬機在混合模式執行引擎執行下時,將這些本地函數棧幀同解釋器執行的 Java函數棧幀進行「串聯」,以提供一個完整的當前執行上下文視圖;當進行解釋模式執行時,解釋器執行引擎在當前的Java棧幀中分配出一塊內存區域,稱為保存區;每次在這塊保存區中記錄下上個函數的棧幀指針、PC值信息,為之後的棧回退做準備,同時每次從本地棧幀通過JNI調用進入解釋器模式時,在Java棧上插入一個中斷棧幀,用來標識Java執行流被中斷;即時編譯器在編譯Java函數生成本地棧幀時,在生成的本地函數棧上也分配一塊類似Java棧幀中的保存區的區域,用以記錄調用者函數的棧幀指針值和調用語句的PC值;在被編譯執行的函數去調用解釋模式的函數時,在此函數對應的Java函數棧幀上的中斷區域裡,亦記錄下動態編譯函數的本地棧幀指針及調用發生時的本地PC值,使得本地函數棧幀同Java函數棧幀相「串聯」起來;當採用解釋模式時,異常產生的位置是執行Java字節碼產生的;採用混合模式執行, 異常產生的位置可能在動態編譯生成的二進位代碼裡;故而在動態編譯代碼時,需要創建 Try塊表,用以存儲每個編譯執行的函數的Try-Catch信息,即每個Try塊作用的二進位代碼範圍、每個Catch塊所對應的二進位代碼地址;這樣,當異常產生於二進位代碼層面上的位置時,按照異常處理的兩個步驟操作判斷異常產生的位置所處的Try塊,從而進一步再找到其所對應的Catch塊處理代碼位置並跳轉;根據調用者及被調用者的種類不同,保存區的存放位置也會有所不同,有如下幾種情況1)本地函數調用解釋器函數通過函數調用進入解釋模式,主要邏輯同正常進入解釋器模式邏輯相同,將在Java棧上插入一個中斷棧幀,表示調用者為本地函數;2)動態編譯生成函數調用解釋器函數為了同本地函數調用解釋器函數時的中斷棧幀有所區別,在中斷棧幀中,另外記錄一下調用者究竟是動態編譯生成的函數還是本地函數;3)被調用者為本地函數主要邏輯同正常的解釋器模式執行一致,仍然為此本地函數在Java棧幀結構上分配一塊保存區,記錄調用者的棧幀指針值及PC值;若調用者為解釋器函數,則棧幀指針及PC 則分別指向解釋器中的棧幀以及解釋器中的指令位置;若調用者為動態編譯生成函數,則棧幀指針及PC則分別指向本地棧中的棧幀以及真實PC寄存器的值;4)被調用者為動態編譯生成函數與上種情況所不同的是,為動態編譯生成函數所分配的保存區位於本地棧幀之上;這樣,便獲得處理異常時的調用路徑,然後對此路徑上的函數,逐層往上考察各層函數,通過每個函數棧幀中的Try-Catch信息,定位出「異常產生的位置」存在於哪個Try塊中,從而進一步得知此Try塊所對應的各個Catch塊,之後再進行進一步的異常對象與各 Catch塊所捕捉的異常的類型的比對,最終定位出捕獲此異常的Catch邏輯的位置;二、進行棧回退,並跳轉到異常捕獲代碼在通過函數調用獲得某一異常所匹配的Catch塊及Catch塊所在函數的信息之後,將執行流程改變到此Catch塊上,同時,棧的信息也要層層回退到此Catch塊所在函數所對應的棧幀;對於執行流程的改變,如果Catch塊所在函數運行在解釋模式下,則在找到所匹配的 Catch塊後,解釋器獲得其所在的函數的棧幀指針值以及Catch語句首條指令地址,隨後, 解釋器操作棧指針使Catch塊所在函數處於棧頂,同時將PC值設置為Catch塊所在函數的起始地址+偏移的位置,然後進行正常的取址、分發、解釋的執行流程;若其所在函數為動態編譯生成的代碼,則通過調整物理寄存器PC的值,使CPU執行此段代碼即可;但在執行流程改變之前,需要完成棧的回退操作;在回退的過程中,需要根據異常發生時所在函數的類別,而採取不同的操作A、異常發生在動態編譯生成函數中通過函數調用,沿著調用路徑向上尋找所匹配的Catch塊處理函數,此時只關注調用路徑上的動態編譯生成函數,若找到某一動態編譯生成函數,其包含著所匹配的Catch塊, 則將真實的棧幀指針、棧頂指針切換到此函數所對應的棧幀指針以及棧頂指針,並將PC調整為Catch塊的起始地址;若在尋找過程中,遇到Java棧幀,說明此異常不能被當前已經遍歷過的動態編譯生成函數所捕獲,那麼,該異常一定是被再上層的函數所捕獲的,此時,將真實的棧幀指針以及棧頂指針替換為此最頂端的動態編譯生成函數所保存的棧幀指針以及棧頂指針的值,然後取出動態編譯生成函數所對應的返回地址,使其直接返回即可;上述函數返回至不同執行引擎的邊界,該邊界稱作函數調用橋;函數調用橋在不同引擎切換時,負責記錄調用者與被調用者的信息,以及上下文信息的一致性與完整性;通過函數調用橋,可以獲知函數的調用者的類型;若調用此動態編譯生成函數的父函數為本地函數,則它帶著異常繼續執行,直到某個點,虛擬機檢查到此異常的存在,然後將異常拋回給調用該本地函數的引擎使回退過程得以繼續;若調用此動態編譯生成函數的父函數為解釋執行的函數,函數調用橋檢查此異常,並藉助記錄的調用者信息,復原解釋器狀態,從而將此異常交由以下第二種策略所描述的解釋執行模式處理方式繼續處理;B、異常發生在解釋執行函數中此時的處理邏輯同正常的解釋模式執行中的處理邏輯相似,在掃描當前調用路徑上, 從當前函數起往上的所有連續的解釋執行的函數;若掃描到中斷棧幀或是掃描到動態編譯生成函數,則停止掃描;若在掃描過程中,尋找到某一解釋執行函數,其包含相應的Catch塊處理函數,則將虛擬棧幀指針值恢復為此解釋執行的函數對應的棧幀指針值,同時將虛擬PC設置為此Catch 塊處理函數的第一條指令的地址,之後便將在解釋模式下進行取址分發;若在掃描過程中,沒有尋找到包含相匹配Catch塊的解釋模式下的函數,則一定代表掃描時遇到了中斷棧幀,則此時退出解釋器引擎而進入執行邊界的函數調用橋;之後,同A中所述類似,藉助函數調用橋中維護的信息,若調用此函數的父函數為本地函數,則它帶著異常繼續執行,直到某個點,虛擬機檢查到此異常的存在,然後將異常拋回給調用該本地函數的引擎使回退過程得以繼續;若調用者為動態編譯生成函數,則需要在它調用解釋器函數之後,對當前線程上的異常進行檢查,如發現有異常,則轉用第一種策略,繼續處理此異常。
全文摘要
本發明屬於Java編譯運行環境設計技術領域,具體為一種工作於混合模式執行引擎中的異常處理方法。本發明針對現有Java虛擬機中存在的多種執行引擎混合工作模式,根據不同執行引擎各自不同的特性制定相應的異常處理策略,從而提出一種新型的異常處理方法,包括尋找最先匹配的Catch塊,通過函數調用獲得某一異常所匹配的Catch塊及Catch塊所在函數的信息,將執行流程改變到此Catch塊上,同時,棧的信息也要層層回退到此Catch塊所在函數所對應的棧幀。本發明解決了多種執行引擎下的Java虛擬機中的異常處理問題。
文檔編號G06F9/44GK102262537SQ20111020455
公開日2011年11月30日 申請日期2011年7月21日 優先權日2011年7月21日
發明者張源, 彭智俊, 楊珉 申請人:復旦大學

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀