两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

改善Optware環(huán)境下IPkg程序的I/O讀寫(xiě)速度的方法

文檔序號(hào):8942937閱讀:425來(lái)源:國(guó)知局
改善Optware環(huán)境下IPkg程序的I/O讀寫(xiě)速度的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及I/O設(shè)備領(lǐng)域,尤其涉及一種改善Optware環(huán)境下IPkg程序的I/O讀寫(xiě)速度的方法。
【背景技術(shù)】
[0002]Optware是DD-WRT系統(tǒng)中的一個(gè)類(lèi)似第三方的運(yùn)行環(huán)境,可以和路由器本身的環(huán)境共存,該系統(tǒng)存在于支持USB設(shè)備的路由器上,并采用IPKG安裝包的形式,添加額外的功能,可以對(duì)路由器固件進(jìn)行瘦身,固件只保存基本的u-boot和一些基本的路由功能,將大量的第三方程序以Pkg的形式安裝在路由器中,這樣勢(shì)必會(huì)產(chǎn)生一個(gè)問(wèn)題,如何讀取路由系統(tǒng)中的NVRAM值。
[0003]現(xiàn)有的技術(shù)是通過(guò)在Optware環(huán)境中添加一個(gè)shell腳本,在程序中需要讀取某一個(gè)NVRAM (Non-VolatiIe Random Access Memory,非易失性隨機(jī)訪問(wèn)存儲(chǔ)器)值時(shí),調(diào)用shell script,將NVRAM的NVRAM值傳遞給腳本,由腳本中調(diào)用nvram_get的命令寫(xiě)進(jìn)一個(gè)文件中,接著在程序中在打開(kāi)這個(gè)臨時(shí)文件,將內(nèi)容讀取出來(lái),這樣勢(shì)必會(huì)產(chǎn)生大量的I/O的關(guān)閉和打開(kāi)。
[0004]目前Optware現(xiàn)有的讀取NVRAM的方式,需要耗費(fèi)大量I/O打開(kāi)和關(guān)閉的動(dòng)作,還需要添加while循環(huán)檢查shell script是否已經(jīng)寫(xiě)完畢,這樣程序耗費(fèi)大量的等待時(shí)間,不利于輪詢(xún)的一些Pkg文件的使用。
[0005]ipkg的安裝都是基于自帶USB的路由設(shè)備,通過(guò)安裝第三方的Optware環(huán)境,提供對(duì)ipkg運(yùn)行環(huán)境的支持。
[0006]—般的IPkg程序需要讀取寫(xiě)入NVRAM的值,需要先調(diào)用腳本,傳遞需要讀取的NVRAM的NVRAM值,將值寫(xiě)進(jìn)臨時(shí)的文件,在通過(guò)讀取文件值的方式,在程序中獲得對(duì)應(yīng)的值。
[0007]使用這種情形如果程序一次請(qǐng)求中讀取很少的NVRAM,則不會(huì)有明顯的影響,如果是Iighttpd這種的web服務(wù)器使用,在一次請(qǐng)求中需要讀取大量的NVRAM值,這會(huì)導(dǎo)致⑶I的響應(yīng)非常緩慢。讀取NVRAM字符設(shè)備會(huì)大大提升I/O讀取效率,提高響應(yīng)速度。

【發(fā)明內(nèi)容】

[0008]鑒于上述問(wèn)題,本申請(qǐng)記載了一種改善Optware環(huán)境下IPkg程序的I/O讀寫(xiě)速度的方法,,包括步驟:
[0009]打開(kāi)NVRAM字符設(shè)備;
[0010]所述NVRAM字符設(shè)備在應(yīng)用層調(diào)用mmap機(jī)制將內(nèi)核字符串地址映射到內(nèi)存地址空間中;
[0011]所述NVRAM字符設(shè)備進(jìn)行讀或?qū)懖僮鳌?br>[0012]較佳的,步驟進(jìn)行讀操作包括步驟:
[0013]Pkg文件讀取一個(gè)NVRAM值;
[0014]從全局變量中讀取所述NVRAM值對(duì)應(yīng)偏移量;
[0015]讀取所述偏移量所存取的值。
[0016]較佳的,步驟進(jìn)行寫(xiě)操作包括步驟:
[0017]Pkg文件讀取一個(gè)NVRAM值;
[0018]從全局變量中讀取所述NVRAM值對(duì)應(yīng)偏移量;
[0019]在所述偏移量中寫(xiě)入數(shù)據(jù)。
[0020]較佳的,所述NVRAM值對(duì)應(yīng)的所述偏移量位于全局變量中。
[0021]較佳的,所述Pkg文件讀取所述NVRAM值后,判斷所述全局變量是否已經(jīng)打開(kāi);
[0022]如果所述全局變量已打開(kāi),執(zhí)行步驟從所述全局變量中讀取所述NVRAM值對(duì)應(yīng)的所述偏移量;
[0023]否則,所述Pkg文件調(diào)用打開(kāi)函數(shù)打開(kāi)所述全局變量,所述全局變量打開(kāi)后執(zhí)行步驟從所述全局變量中讀取所述NVRAM值對(duì)應(yīng)的所述偏移量。
[0024]較佳的,所述內(nèi)核字符串地址映射到內(nèi)存地址空間的堆區(qū)和棧區(qū)之間。
[0025]上述技術(shù)方案具有如下優(yōu)點(diǎn)或有益效果:本發(fā)明可實(shí)現(xiàn)低耗時(shí)、減少I(mǎi)/O打開(kāi)和關(guān)閉、提升高效的讀寫(xiě)速度、方便易用的字符設(shè)備讀取技術(shù);基于NVRAM字符設(shè)備操作技術(shù),克服了采用腳本和傳統(tǒng)文件讀寫(xiě)的I/O操作,while循環(huán)加sleep等待腳本執(zhí)行完成的技術(shù)缺點(diǎn),具有較高的發(fā)展前景。
【附圖說(shuō)明】
[0026]參考所附附圖,以更加充分的描述本發(fā)明的實(shí)施例。然而,所附附圖僅用于說(shuō)明和闡述,并不構(gòu)成對(duì)本發(fā)明范圍的限制。
[0027]圖1為本發(fā)明一種改善Optware環(huán)境下IPkg程序的I/O讀寫(xiě)速度的方法內(nèi)核字符串地址映射到內(nèi)存地址空間的狀態(tài)示意圖;
[0028]圖2為本發(fā)明一種改善Optware環(huán)境下IPkg程序的I/O讀寫(xiě)速度的方法中進(jìn)行讀操作的流程圖;
[0029]圖3為本發(fā)明一種改善Optware環(huán)境下IPkg程序的I/O讀寫(xiě)速度的方法進(jìn)行寫(xiě)操作的流程圖。
【具體實(shí)施方式】
[0030]下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明的改善Optware環(huán)境下IPkg程序的I/O讀寫(xiě)速度的方法進(jìn)行詳細(xì)說(shuō)明。
[0031]—種改善Optware環(huán)境下IPkg程序的I/O讀寫(xiě)速度的方法,包括步驟:
[0032]打開(kāi)NVRAM字符設(shè)備;
[0033]在應(yīng)用層調(diào)用_ap的機(jī)制將內(nèi)核字符串地址映射到內(nèi)存地址空間中;
[0034]NVRAM字符設(shè)備進(jìn)行讀操作。
[0035]如圖1所示,其中,調(diào)用_ap將文件的內(nèi)容映射到內(nèi)存地址空間中,所述文件的存儲(chǔ)映射部分位于堆區(qū)和棧區(qū)之間。
[0036]如圖2所示,在NVRAM字符設(shè)備進(jìn)行讀操作過(guò)程中,具體包括步驟:
[0037]Pkg文件讀取某一個(gè)NVRAM值;
[0038]調(diào)用封裝的nvram_get,即調(diào)用一檢測(cè)函數(shù);
[0039]利用所述檢測(cè)函數(shù)判斷全局變量nvram_fd是否已經(jīng)打開(kāi);
[0040]如果全局變量nvram_fd打開(kāi)時(shí),調(diào)用read函數(shù),讀取出NVRAM值對(duì)應(yīng)的偏移量offset ;
[0041]如果全局變量nvram—fd沒(méi)有打開(kāi),調(diào)用封裝的nvram—init,即調(diào)用打開(kāi)函數(shù),利用所述打開(kāi)函數(shù)打開(kāi)所述全局變量,之后調(diào)用read函數(shù),讀取出NVRAM值對(duì)應(yīng)的偏移量offset ;
[0042]從全局變量nvram_buf中讀取對(duì)應(yīng)偏移量所存取的值value。
[0043]在該過(guò)程中,首先判斷全局變量nvram_fd是否已經(jīng)打開(kāi),如果打開(kāi)則調(diào)用read函數(shù),讀取出NVRAM值對(duì)應(yīng)的偏移量offset,最后從全局變量nvram_buf中讀取對(duì)應(yīng)偏移量所存取的value,即可完成一次讀取。
[0044]如圖3所示,在NVRAM字符設(shè)備進(jìn)行寫(xiě)操作過(guò)程中,具體包括步驟:
[0045]Pkg文件讀取某一個(gè)NVRAM值;
[0046]調(diào)用封裝的nvram_get,即調(diào)用一檢測(cè)函數(shù);
[0047]利用所述檢測(cè)函數(shù)判斷全局變量nvram_fd是否已經(jīng)打開(kāi);
[0048]如果全局變量nvram_fd打開(kāi)時(shí),調(diào)用read函數(shù),讀取出NVRAM值對(duì)應(yīng)的偏移量offset ;
[0049]如果全局變量nvram_fd沒(méi)有打開(kāi),調(diào)用封裝的nvram_init,即調(diào)用打開(kāi)函數(shù),利用所述打開(kāi)函數(shù)打開(kāi)所述全局變量,之后調(diào)用read函數(shù),讀取出NVRAM值對(duì)應(yīng)的偏移量offset ;
[0050]在偏移量offset中寫(xiě)入值value。
[0051]本發(fā)明主要在Optware環(huán)境的Pkg文件中添加NVRAM字符設(shè)備的打開(kāi)、讀、寫(xiě)和關(guān)閉的操作。打開(kāi)的動(dòng)作實(shí)現(xiàn)一次打開(kāi)字符設(shè)備的文件描述符,并映射內(nèi)核字符串到用戶(hù)空間,讀的操作和正常的文件讀操作一致,由系統(tǒng)的read調(diào)用至NVRAM字符設(shè)備的read操作函數(shù),實(shí)現(xiàn)讀取對(duì)應(yīng)NVRAM的NVRAM值的偏移地址,從對(duì)應(yīng)的映射到用戶(hù)空間的字符串中查找對(duì)應(yīng)偏移量的值返回給調(diào)用者,完成一次讀取的動(dòng)作,寫(xiě)的方式類(lèi)似。
[0052]本發(fā)明使用NVRAM字符設(shè)備的操作應(yīng)用到Optware環(huán)境對(duì)應(yīng)的Pkg文件中,實(shí)現(xiàn)一次打開(kāi)一次關(guān)閉的高效讀寫(xiě)方式,使Optware環(huán)境的Pkg文件也可以正常讀取NVRAM值。
[0053]本發(fā)明可實(shí)現(xiàn)低耗時(shí)、減少1/0打開(kāi)和關(guān)閉、提升高效的讀寫(xiě)速度、方便易用的字符設(shè)備讀取技術(shù);基于NVRAM字符設(shè)備操作技術(shù),克服了采用腳本和傳統(tǒng)文件讀寫(xiě)的1/0操作,while循環(huán)加sleep等待腳本執(zhí)行完成的技術(shù)缺點(diǎn),具有較高的發(fā)展前景。
[0054]對(duì)于本領(lǐng)域的技術(shù)人員而言,閱讀上述說(shuō)明后,各種變化和修正無(wú)疑將顯而易見(jiàn)。因此,所附的權(quán)利要求書(shū)應(yīng)看作是涵蓋本發(fā)明的真實(shí)意圖和范圍的全部變化和修正。在權(quán)利要求書(shū)范圍內(nèi)任何和所有等價(jià)的范圍與內(nèi)容,都應(yīng)認(rèn)為仍屬本發(fā)明的意圖和范圍內(nèi)。
【主權(quán)項(xiàng)】
1.一種改善Optware環(huán)境下IPkg程序的I/O讀寫(xiě)速度的方法,其特征在于,包括步驟: 打開(kāi)NVRAM字符設(shè)備; 所述NVRAM字符設(shè)備在應(yīng)用層調(diào)用_ap機(jī)制將內(nèi)核字符串地址映射到內(nèi)存地址空間中; 所述NVRAM字符設(shè)備進(jìn)行讀或?qū)懖僮鳌?.根據(jù)權(quán)利要求1所述的改善Optware環(huán)境下IPkg程序的I/O讀寫(xiě)速度的方法,其特征在于,所述進(jìn)行讀操作的步驟包括: Pkg文件讀取一個(gè)NVRAM值; 讀取所述NVRAM值對(duì)應(yīng)偏移量; 讀取所述偏移量所存取的值。3.根據(jù)權(quán)利要求1所述的改善Optware環(huán)境下IPkg程序的I/O讀寫(xiě)速度的方法,其特征在于,所述進(jìn)行寫(xiě)操作的步驟包括: Pkg文件讀取一個(gè)NVRAM值; 讀取所述NVRAM值對(duì)應(yīng)偏移量; 在所述偏移量中寫(xiě)入數(shù)據(jù)。4.根據(jù)權(quán)利要求2或3所述的改善Optware環(huán)境下IPkg程序的I/O讀寫(xiě)速度的方法,其特征在于,所述方法中: 所述NVRAM值對(duì)應(yīng)的所述偏移量位于全局變量中。5.根據(jù)權(quán)利要求4所述的改善Optware環(huán)境下IPkg程序的I/O讀寫(xiě)速度的方法,其特征在于,所述方法中: 于所述Pkg文件讀取所述NVRAM值后,判斷所述全局變量是否已經(jīng)打開(kāi); 如果所述全局變量已打開(kāi),執(zhí)行步驟從所述全局變量中讀取所述NVRAM值對(duì)應(yīng)的所述偏移量; 否則,所述Pkg文件調(diào)用打開(kāi)函數(shù)打開(kāi)所述全局變量,所述全局變量打開(kāi)后執(zhí)行步驟從所述全局變量中讀取所述NVRAM值對(duì)應(yīng)的所述偏移量。6.根據(jù)權(quán)利要求1所述的改善Optware環(huán)境下IPkg程序的I/O讀寫(xiě)速度的方法,其特征在于,所述方法中: 所述內(nèi)核字符串地址映射到內(nèi)存地址空間的堆區(qū)和棧區(qū)之間。
【專(zhuān)利摘要】本發(fā)明提供一種改善Optware環(huán)境下IPKG程序的I/O讀寫(xiě)速度的方法,包括步驟:打開(kāi)NVRAM字符設(shè)備;所述NVRAM字符設(shè)備在應(yīng)用層調(diào)用mmap機(jī)制將內(nèi)核字符串地址映射到內(nèi)存地址空間中;所述NVRAM字符設(shè)備進(jìn)行讀或?qū)懖僮?。本發(fā)明可實(shí)現(xiàn)低耗時(shí)、減少I(mǎi)/O打開(kāi)和關(guān)閉、提升高效的讀寫(xiě)速度、方便易用的字符設(shè)備讀取技術(shù);基于NVRAM字符設(shè)備操作技術(shù),克服了采用腳本和傳統(tǒng)文件讀寫(xiě)的I/O操作,while循環(huán)加sleep等待腳本執(zhí)行完成的技術(shù)缺點(diǎn),具有較高的發(fā)展前景。
【IPC分類(lèi)】G06F12/08, G06F9/50
【公開(kāi)號(hào)】CN105159778
【申請(qǐng)?zhí)枴緾N201510483518
【發(fā)明人】陶成軍
【申請(qǐng)人】上海斐訊數(shù)據(jù)通信技術(shù)有限公司
【公開(kāi)日】2015年12月16日
【申請(qǐng)日】2015年8月7日
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
资阳市| 舞钢市| 南乐县| 阿城市| 东海县| 彰化县| 涞水县| 昌黎县| 武功县| 兰州市| 轮台县| 临漳县| 南投县| 娱乐| 即墨市| 扶沟县| 永福县| 华坪县| 尤溪县| 乌恰县| 琼结县| 天门市| 清苑县| 迁安市| 大宁县| 崇义县| 大足县| 佛教| 新昌县| 涟源市| 射洪县| 镇沅| 浦东新区| 邹城市| 中卫市| 砀山县| 宿州市| 高密市| 桃源县| 自治县| 罗山县|