本發(fā)明涉及支付設(shè)備技術(shù)領(lǐng)域,具體涉及一種提高支付終端啟動(dòng)速度的方法及裝置。
背景技術(shù):
隨著國(guó)內(nèi)電子支付市場(chǎng)和支付技術(shù)的發(fā)展,支付終端的軟件系統(tǒng)也日益復(fù)雜。目前的支付終端,大都使用了基于Linux甚至Android的復(fù)雜操作系統(tǒng),并支持包括IC卡、磁卡、射頻卡、各種通訊方式等多種外設(shè)驅(qū)動(dòng),并實(shí)現(xiàn)了GUI、設(shè)備服務(wù)、管理以及多應(yīng)用等多種軟件功能。
使用了Linux或Android系統(tǒng)后,由于系統(tǒng)龐大,加上有眾多增加的支付相關(guān)軟件模塊需要初始化,啟動(dòng)速度很慢,大約超過(guò)20秒甚至接近一分鐘。這給客戶(hù)造成了很大不變,也對(duì)生產(chǎn)時(shí)測(cè)試效率造成很大影響。
目前使用了操作系統(tǒng)的支付終端,初始化過(guò)程大都是按順序完成各軟件模塊初始化后才加載程序的。就算使用了多核處理器,其初始化過(guò)程也是單任務(wù)完成的。其開(kāi)機(jī)慢,初始化過(guò)程長(zhǎng)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問(wèn)題是:提高處理器在初始化階段利用率,從而縮短了系統(tǒng)初始化時(shí)間,提高開(kāi)機(jī)速度的一種提高支付終端啟動(dòng)速度的方法及裝置。
為了解決上述技術(shù)問(wèn)題,本發(fā)明采用的技術(shù)方案為:提供一種提高支付終端啟動(dòng)速度的方法,包括如下步驟:
步驟S1:獲取支付終端中需要初始化的軟件模塊,將所述軟件模塊劃分到多個(gè)初始化集合;
每個(gè)所述初始化集合中的軟件模塊按初始化順序排列;所述初始化集合中的軟件模塊的劃分滿(mǎn)足條件為:沒(méi)有初始化順序依賴(lài)關(guān)系的兩個(gè)軟件模塊不放在同一個(gè)初始化集合中;
步驟S2:根據(jù)步驟S1所述初始化集合的數(shù)量,依次創(chuàng)建對(duì)應(yīng)數(shù)量的初始化進(jìn)程;
步驟S3:根據(jù)所述初始化進(jìn)程依次執(zhí)行對(duì)應(yīng)初始化集合中的軟件模塊的初始化,軟件模塊根據(jù)在初始化集合中的順序進(jìn)行初始化;
初始化進(jìn)程都執(zhí)行完成初始化后,支付終端初始化完成。
優(yōu)選的,上述的提高支付終端啟動(dòng)速度的方法中,所述初始化集合中的軟件模塊的劃分滿(mǎn)足條件具體為:a、后面的軟件模塊依賴(lài)于前面軟件模塊初始化完成;b、一個(gè)初始化集合中的任意軟件模塊初始化不依賴(lài)于其他初始化集合中的軟件模塊;c、互相沒(méi)有先后順序關(guān)系的兩個(gè)軟件模塊,一定位于不同的初始化集合中。
本發(fā)明的另一技術(shù)方案為提供一種提高支付終端啟動(dòng)速度的裝置,包括:
劃分模塊,用于獲取支付終端中需要初始化的軟件模塊,將所述軟件模塊劃分到多個(gè)初始化集合;
每個(gè)所述初始化集合中的軟件模塊按順序排列;所述初始化集合中的軟件模塊的劃分滿(mǎn)足如下條件:不將沒(méi)有關(guān)系的兩個(gè)軟件模塊放在同一個(gè)初始化集合中,避免一個(gè)任意軟件模塊無(wú)謂等待另一個(gè)軟件模塊初始化;
創(chuàng)建模塊,用于根據(jù)劃分模塊中的初始化集合的數(shù)量,依次創(chuàng)建對(duì)應(yīng)數(shù)量的初始化進(jìn)程;
執(zhí)行模塊,用于根據(jù)所述初始化進(jìn)程依次執(zhí)行對(duì)應(yīng)初始化集合中的軟件模塊的初始化,初始化進(jìn)程都執(zhí)行完成初始化后,支付終端初始化完成。
優(yōu)選的,上述的提高支付終端啟動(dòng)速度的裝置中,所述初始化集合中的軟件模塊的劃分滿(mǎn)足條件具體為:a、后面的軟件模塊依賴(lài)于前面軟件模塊初始化完成;b、一個(gè)初始化集合中的任意軟件模塊初始化不依賴(lài)于其他初始化集合中的軟件模塊;c、互相沒(méi)有先后順序關(guān)系的兩個(gè)軟件模塊,一定位于不同的初始化集合中。
本發(fā)明的有益效果在于:區(qū)別于現(xiàn)有技術(shù)的支付終端初始化過(guò)程大都是按順序完成各軟件模塊初始化后才加載程序,本發(fā)明的方法和裝置通過(guò)將初始化程序修改為多進(jìn)程的初始化執(zhí)行,充分利用了多核處理器的并行處理能力,縮短了系統(tǒng)初始化時(shí)間。對(duì)于單核處理器,這種方法也在一定程度上能縮短系統(tǒng)初始化時(shí)間。因?yàn)橥ㄟ^(guò)并行操作,提高了處理器利用率,可以避免IO消耗型初始化阻塞導(dǎo)致此時(shí)無(wú)法進(jìn)行其他初始化操作而延長(zhǎng)開(kāi)機(jī)時(shí)間。提供了支付終端的生產(chǎn)工作效率。
附圖說(shuō)明
圖1為本發(fā)明具體實(shí)施方式的提高支付終端啟動(dòng)速度的方法流程圖;
圖2為本發(fā)明具體實(shí)施方式的提高支付終端啟動(dòng)速度的裝置的結(jié)構(gòu)框圖;
標(biāo)號(hào)說(shuō)明:
1、提高支付終端啟動(dòng)速度的裝置;11、劃分模塊;12、創(chuàng)建模塊;13、執(zhí)行模塊。
具體實(shí)施方式
為詳細(xì)說(shuō)明本發(fā)明的技術(shù)內(nèi)容、所實(shí)現(xiàn)目的及效果,以下結(jié)合實(shí)施方式并配合附圖予以說(shuō)明。
本發(fā)明最關(guān)鍵的構(gòu)思在于:本發(fā)明的方法和裝置通過(guò)將初始化程序修改為多進(jìn)程的初始化執(zhí)行,縮短了支付終端系統(tǒng)初始化時(shí)間。
隨著ARM Cortex系列處理器的發(fā)展,多核處理器的價(jià)格不斷下跌,支付終端也開(kāi)始使用多核處理器。目前,Cortex系列的多核處理器都是基于SMP架構(gòu),Linux內(nèi)核可以自動(dòng)將多個(gè)任務(wù)分配到多個(gè)處理器核上運(yùn)行,且對(duì)應(yīng)用程序和內(nèi)核驅(qū)動(dòng)都是透明的。
而目前基于Linux的系統(tǒng),包括安卓系統(tǒng),初始化過(guò)程都是單任務(wù)的,包括內(nèi)核中的初始化,以及用于空間初始化過(guò)程。這樣在啟動(dòng)階段無(wú)法充分利用多核處理器的優(yōu)勢(shì)。即使對(duì)于單核處理器,單任務(wù)的初始化過(guò)程中,有時(shí)因?yàn)榈却布瓿晒ぷ?比如讀文件、檢測(cè)外設(shè))而阻塞在某個(gè)初始化節(jié)點(diǎn)上,而此時(shí)處理器空閑,也對(duì)啟動(dòng)時(shí)間造成了一定影響。
因此,基于上述考慮,可以讓系統(tǒng)初始化過(guò)程以多任務(wù)方式運(yùn)行,以提高處理器的利用率,讓更多運(yùn)算能力用于初始化過(guò)程??紤]到Linux內(nèi)核中的初始化過(guò)程過(guò)于復(fù)雜,涉及很多內(nèi)存管理和任務(wù)管理初始化,難以實(shí)現(xiàn)多任務(wù),本發(fā)明著眼于提高用戶(hù)空間初始化的并行能力來(lái)提高啟動(dòng)速度。
請(qǐng)參照?qǐng)D1,本發(fā)明提供一種提高支付終端啟動(dòng)速度的方法,包括如下步驟:
步驟S1:獲取支付終端中需要初始化的軟件模塊,按照各軟件模塊的初始化先后關(guān)系,將所述軟件模塊劃分到多個(gè)初始化集合;
每個(gè)所述初始化集合中的軟件模塊按初始化順序排列;所述初始化集合中的軟件模塊的劃分滿(mǎn)足條件為:不將沒(méi)有初始化順序依賴(lài)關(guān)系的兩個(gè)軟件模塊放在同一個(gè)初始化集合中;避免了支付終端中的一個(gè)任意軟件模塊無(wú)謂等待另一個(gè)軟件模塊初始化,浪費(fèi)等待時(shí)間;
劃分滿(mǎn)足條件具體為:a、后面的軟件模塊依賴(lài)于前面軟件模塊初始化完成;b、一個(gè)初始化集合中的任意軟件模塊初始化不依賴(lài)于其他初始化集合中的軟件模塊;c、互相沒(méi)有先后順序關(guān)系的兩個(gè)軟件模塊,一定位于不同的初始化集合中。
上述的設(shè)置,避免了支付終端中的一個(gè)任意軟件模塊無(wú)謂等待另一個(gè)軟件模塊初始化,浪費(fèi)等待時(shí)間。
步驟S2:根據(jù)步驟S1所述初始化集合的數(shù)量,依次創(chuàng)建對(duì)應(yīng)數(shù)量的初始化進(jìn)程;
步驟S3:根據(jù)所述初始化進(jìn)程依次執(zhí)行對(duì)應(yīng)初始化集合中的軟件模塊的初始化,軟件模塊根據(jù)在初始化集合中的順序進(jìn)行初始化;
等各初始化進(jìn)程都執(zhí)行完成初始化后,支付終端初始化完成。初始化程序再進(jìn)行后續(xù)工作
請(qǐng)參照?qǐng)D2,本發(fā)明還提供一種提高支付終端啟動(dòng)速度的裝置1,包括:
劃分模塊11,用于獲取支付終端中需要初始化的軟件模塊,將所述軟件模塊劃分到多個(gè)初始化集合;
每個(gè)所述初始化集合中的軟件模塊按順序排列;所述初始化集合中的軟件模塊的劃分滿(mǎn)足如下條件:不將沒(méi)有關(guān)系的兩個(gè)軟件模塊放在同一個(gè)初始化集合中,避免一個(gè)任意軟件模塊無(wú)謂等待另一個(gè)軟件模塊初始化;
所述初始化集合中的軟件模塊的劃分滿(mǎn)足條件具體為:a、后面的軟件模塊依賴(lài)于前面軟件模塊初始化完成;b、一個(gè)初始化集合中的任意軟件模塊初始化不依賴(lài)于其他初始化集合中的軟件模塊;c、互相沒(méi)有先后順序關(guān)系的兩個(gè)軟件模塊,一定位于不同的初始化集合中。上述的設(shè)置,避免了支付終端中的一個(gè)任意軟件模塊無(wú)謂等待另一個(gè)軟件模塊初始化,浪費(fèi)等待時(shí)間。
創(chuàng)建模塊12,用于根據(jù)劃分模塊中的初始化集合的數(shù)量,依次創(chuàng)建對(duì)應(yīng)數(shù)量的初始化進(jìn)程;
執(zhí)行模塊13,用于根據(jù)所述初始化進(jìn)程依次執(zhí)行對(duì)應(yīng)初始化集合中的軟件模塊的初始化,初始化進(jìn)程都執(zhí)行完成初始化后,支付終端初始化完成。
綜上所述,本發(fā)明提供的提高支付終端啟動(dòng)速度的方法和裝置通過(guò)將初始化程序修改為多進(jìn)程的初始化執(zhí)行,充分利用了多核處理器的并行處理能力,縮短了系統(tǒng)初始化時(shí)間。
對(duì)于單核處理器,本發(fā)明方法也在一定程度上能縮短系統(tǒng)初始化時(shí)間。因?yàn)橥ㄟ^(guò)并行操作,提高了處理器利用率,可以避免IO消耗型初始化阻塞導(dǎo)致此時(shí)無(wú)法進(jìn)行其他初始化操作而延長(zhǎng)開(kāi)機(jī)時(shí)間。提高了支付終端的生產(chǎn)工作效率。
以上所述僅為本發(fā)明的實(shí)施例,并非因此限制本發(fā)明的專(zhuān)利范圍,凡是利用本發(fā)明說(shuō)明書(shū)及附圖內(nèi)容所作的等同變換,或直接或間接運(yùn)用在相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專(zhuān)利保護(hù)范圍內(nèi)。