本申請實施例涉及計算機軟件應(yīng)用,尤其涉及一種字節(jié)碼執(zhí)行方法、裝置、操作系統(tǒng)、虛擬機、電子設(shè)備、終端、介質(zhì)及程序。
背景技術(shù):
1、對于資源受限設(shè)備來說,虛擬機??梢杂糜诖鎯os(多應(yīng)用智能卡,multi-application?smartcard?operation?system)應(yīng)用程序的方法調(diào)用和返回信息,包括局部變量、方法參數(shù)、中間運行結(jié)果、返回值和調(diào)用方法信息,又稱虛擬機(運行)調(diào)用棧。
2、目前,常用的虛擬機棧的棧幀結(jié)構(gòu)中包含了操作數(shù)棧、當(dāng)前pc(指令計數(shù)器,program?counter)指針、當(dāng)前函數(shù)結(jié)構(gòu)體變量以及前一個函數(shù)的棧幀指針等數(shù)據(jù),它的操作數(shù)棧中包含了操作數(shù)棧頂、棧底相關(guān)指針和分支塊相關(guān)的指針,分支塊相關(guān)的指針和跳轉(zhuǎn)相關(guān)指令與字節(jié)碼執(zhí)行有關(guān)。
3、發(fā)明人在實現(xiàn)本申請的過程中,發(fā)現(xiàn)相關(guān)技術(shù)存在如下缺陷:目前虛擬機棧的棧幀的結(jié)構(gòu)比較復(fù)雜,如函數(shù)結(jié)構(gòu)體變量以及分支塊結(jié)構(gòu)體變量等結(jié)構(gòu)體結(jié)構(gòu)都很復(fù)雜,對于資源受限設(shè)備來說需要占用的虛擬機內(nèi)存空間很大,并且虛擬機字節(jié)碼解釋執(zhí)行的效率也比較低。
技術(shù)實現(xiàn)思路
1、本申請實施例提供一種字節(jié)碼執(zhí)行方法、裝置、操作系統(tǒng)、虛擬機、電子設(shè)備、終端、介質(zhì)及程序,提高了虛擬機棧結(jié)構(gòu)的簡潔性和讀寫操作的便捷性,能夠降低虛擬機內(nèi)存空間占用,從而提高虛擬機內(nèi)存空間利用率和虛擬機的讀寫性能,并提高虛擬機字節(jié)碼解釋執(zhí)行的效率。
2、根據(jù)本申請的一方面,提供了一種字節(jié)碼執(zhí)行方法,應(yīng)用于虛擬機,包括:
3、響應(yīng)于目標(biāo)函數(shù)被調(diào)用,生成所述目標(biāo)函數(shù)在虛擬機棧中對應(yīng)的棧幀結(jié)構(gòu);其中,所述虛擬機棧包括局部變量區(qū)、操作數(shù)棧以及幀上下文,或,所述虛擬機棧包括局部變量區(qū)和操作數(shù)棧;所述局部變量區(qū)用于存儲函數(shù)相關(guān)的局部變量信息,所述操作數(shù)棧用于存儲執(zhí)行指令所需的操作數(shù),所述幀上下文用于保存函數(shù)調(diào)用前指令所在的函數(shù)的信息;
4、根據(jù)所述目標(biāo)函數(shù)的棧幀結(jié)構(gòu)依次執(zhí)行所述目標(biāo)函數(shù)編譯形成的字節(jié)碼。
5、根據(jù)本申請的另一方面,提供了一種字節(jié)碼執(zhí)行裝置,配置于虛擬機,包括:
6、棧幀結(jié)構(gòu)生成模塊,用于響應(yīng)于目標(biāo)函數(shù)被調(diào)用,生成所述目標(biāo)函數(shù)在虛擬機棧中對應(yīng)的棧幀結(jié)構(gòu);其中,所述虛擬機棧包括局部變量區(qū)、操作數(shù)棧以及幀上下文,或,所述虛擬機棧包括局部變量區(qū)和操作數(shù)棧;所述局部變量區(qū)用于存儲函數(shù)相關(guān)的局部變量信息,所述操作數(shù)棧用于存儲執(zhí)行指令所需的操作數(shù),所述幀上下文用于保存函數(shù)調(diào)用前指令所在的函數(shù)的信息;
7、字節(jié)碼執(zhí)行模塊,用于根據(jù)所述目標(biāo)函數(shù)的棧幀結(jié)構(gòu)依次執(zhí)行所述目標(biāo)函數(shù)編譯形成的字節(jié)碼。
8、根據(jù)本申請的另一方面,提供了一種操作系統(tǒng),所述操作系統(tǒng)中執(zhí)行有運行時環(huán)境,所述操作系統(tǒng)通過所述運行時環(huán)境執(zhí)行本申請任一實施例所述的字節(jié)碼執(zhí)行方法。
9、根據(jù)本申請的另一方面,提供了一種虛擬機,所述虛擬機運行于操作系統(tǒng),所述操作系統(tǒng)中執(zhí)行有運行時環(huán)境,所述操作系統(tǒng)通過所述運行時環(huán)境執(zhí)行本申請任一實施例所述的字節(jié)碼執(zhí)行方法。
10、根據(jù)本申請的另一方面,提供了一種電子設(shè)備,所述電子設(shè)備上安裝有上述所述的操作系統(tǒng),所述電子設(shè)備包括:
11、至少一個處理器;以及
12、與所述至少一個處理器通信連接的存儲器;其中,
13、所述存儲器存儲有可被所述至少一個處理器執(zhí)行的計算機程序,所述計算機程序被所述至少一個處理器執(zhí)行,以使所述至少一個處理器能夠執(zhí)行本申請任一實施例所述的字節(jié)碼執(zhí)行方法。
14、根據(jù)本申請的另一方面,提供了一種終端,包括上述所述的電子設(shè)備。
15、根據(jù)本申請的另一方面,提供了一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)存儲有計算機指令,所述計算機指令用于使處理器執(zhí)行時實現(xiàn)本申請任一實施例所述的字節(jié)碼執(zhí)行方法。
16、根據(jù)本申請的另一方面,還提供了一種計算機程序產(chǎn)品,包括計算機程序,所述計算機程序在被處理器執(zhí)行時實現(xiàn)本申請任一實施例所述的字節(jié)碼執(zhí)行方法。
17、本申請實施例通過虛擬機響應(yīng)于目標(biāo)函數(shù)被調(diào)用,生成目標(biāo)函數(shù)在虛擬機棧中對應(yīng)的棧幀結(jié)構(gòu),并根據(jù)目標(biāo)函數(shù)的棧幀結(jié)構(gòu)依次執(zhí)行目標(biāo)函數(shù)編譯形成的字節(jié)碼。由于本申請實施例中的虛擬機棧包括局部變量區(qū)、操作數(shù)棧以及幀上下文,或,虛擬機棧僅包括局部變量區(qū)和操作數(shù)棧,實現(xiàn)了對虛擬機棧的棧幀結(jié)構(gòu)的優(yōu)化,可以解決現(xiàn)有虛擬機棧存在的棧幀結(jié)構(gòu)復(fù)雜以致虛擬機讀寫性能較差的問題,提高了虛擬機棧結(jié)構(gòu)的簡潔性和讀寫操作的便捷性,能夠降低虛擬機內(nèi)存空間占用,從而提高虛擬機內(nèi)存空間利用率和虛擬機的讀寫性能,并提高虛擬機字節(jié)碼解釋執(zhí)行的效率。
18、應(yīng)當(dāng)理解,本部分所描述的內(nèi)容并非旨在標(biāo)識本申請的實施例的關(guān)鍵或重要特征,也不用于限制本申請的范圍。本申請的其它特征將通過以下的說明書而變得容易理解。
1.一種字節(jié)碼執(zhí)行方法,其特征在于,應(yīng)用于虛擬機,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述目標(biāo)函數(shù)包括入口函數(shù),所述生成所述目標(biāo)函數(shù)在虛擬機棧中對應(yīng)的棧幀結(jié)構(gòu),包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述目標(biāo)函數(shù)包括當(dāng)前函數(shù)調(diào)用的模塊函數(shù),所述生成所述目標(biāo)函數(shù)在虛擬機棧中對應(yīng)的棧幀結(jié)構(gòu),包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述目標(biāo)函數(shù)包括native函數(shù),所述生成所述目標(biāo)函數(shù)在虛擬機棧中對應(yīng)的棧幀結(jié)構(gòu),包括:
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述目標(biāo)函數(shù)包括重新進入虛擬機環(huán)境的入口函數(shù),所述生成所述目標(biāo)函數(shù)在虛擬機棧中對應(yīng)的棧幀結(jié)構(gòu),包括:
6.一種字節(jié)碼執(zhí)行裝置,其特征在于,配置于虛擬機,包括:
7.一種電子設(shè)備,其特征在于,所述電子設(shè)備上安裝有權(quán)利要求18所述的操作系統(tǒng),所述電子設(shè)備包括:
8.一種終端,其特征在于,包含如權(quán)利要求7所述的電子設(shè)備。
9.一種計算機可讀存儲介質(zhì),其特征在于,所述計算機可讀存儲介質(zhì)存儲有計算機指令,所述計算機指令用于使處理器執(zhí)行時實現(xiàn)權(quán)利要求1-5中任一項的字節(jié)碼執(zhí)行方法。
10.一種計算機程序產(chǎn)品,其特征在于,所述計算機程序產(chǎn)品包括計算機程序,所述計算機程序在被處理器執(zhí)行時實現(xiàn)根據(jù)權(quán)利要求1-5中任一項的字節(jié)碼執(zhí)行方法。