亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Dalvik虛擬機(jī)進(jìn)程模型研究

        2019-09-09 13:33:49孫丹
        數(shù)碼世界 2019年6期
        關(guān)鍵詞:線程進(jìn)程應(yīng)用程序

        孫丹

        摘要:不同于傳統(tǒng)Java程序,DaMk虛擬機(jī)能夠完成多個獨(dú)立進(jìn)程創(chuàng)建。基于這種認(rèn)識,本文在對Dalvik虛擬機(jī)展開分析的基礎(chǔ)上,對Dalvik虛擬機(jī)進(jìn)程模型進(jìn)行了探討,發(fā)現(xiàn)其能夠在吸收Linux和Java進(jìn)程控制特點(diǎn)基礎(chǔ)上,利用特有進(jìn)程實(shí)現(xiàn)API控制,因此在DaMk虛擬機(jī)應(yīng)用時還要把握這一特征,加強(qiáng)平臺進(jìn)程控制管理。

        關(guān)鍵詞:DaMk虛擬機(jī)進(jìn)程模型

        引言

        Android平臺目前是智能手機(jī)廣泛應(yīng)用的平臺,其采用Dalvik虛擬機(jī)技術(shù)保證手機(jī)多個應(yīng)用程序在運(yùn)行過程中減少資源占用,并保持較高運(yùn)行效率Da Mk虛擬機(jī)之所以能夠?qū)崿F(xiàn)平臺程序兼容優(yōu)化,與其進(jìn)程創(chuàng)建特性有著直接關(guān)系。因此,還要加強(qiáng)Dalvik虛擬機(jī)進(jìn)程模型分析,以便掌握Dalvik虛擬機(jī)進(jìn)程創(chuàng)建優(yōu)缺點(diǎn),達(dá)到合理應(yīng)用虛擬技術(shù)的目標(biāo)。

        1 Dalvik虛擬機(jī)概述

        Dalvik虛擬機(jī)實(shí)際上就是Google公司為Android平臺設(shè)計(jì)的虛擬機(jī),是Android移動設(shè)備平臺核心組成部分之一。采用Dalvik虛擬機(jī),能夠?yàn)檗D(zhuǎn)換為Dalvik Executable(簡稱,dex)格式的Java程序運(yùn)行提供支持。作為Dalvik專用壓縮格式,.dex能夠在處理速度及內(nèi)存有限的運(yùn)算系統(tǒng)中得到應(yīng)用,可以同時對多個虛擬機(jī)實(shí)例進(jìn)行運(yùn)用,并將每個應(yīng)用當(dāng)成是獨(dú)立Linux進(jìn)程。通過創(chuàng)建獨(dú)立進(jìn)程,能夠避免虛擬機(jī)崩潰時出現(xiàn)所有程序被關(guān)閉問題。但與此同時,創(chuàng)建多個獨(dú)立進(jìn)程,可能導(dǎo)致系統(tǒng)運(yùn)行速度減慢,因此Dalvik虛擬機(jī)被看成是拖慢Android的根本原因。

        2 Dalvik虛擬機(jī)進(jìn)程模型分析

        2.1虛擬機(jī)進(jìn)程與線程

        所謂的Dalvik虛擬機(jī)進(jìn)程,從通俗意義上來講就是Android應(yīng)用程序進(jìn)程,實(shí)際Dalvik虛擬機(jī)在創(chuàng)建進(jìn)程時,將對一個成員函數(shù)進(jìn)行調(diào)用。而一旦發(fā)現(xiàn)函數(shù)為JNI方法,其將直接跳轉(zhuǎn)到相應(yīng)地址執(zhí)行程序,即在本地操作系統(tǒng)上運(yùn)行程序,并非利用虛擬機(jī)解釋器執(zhí)行操作。因此采用JNI方法,可以實(shí)現(xiàn)Android應(yīng)用程序與本地操作系統(tǒng)直接通信。除了對Java代碼進(jìn)行執(zhí)行,Dalvik虛擬機(jī)能夠執(zhí)行Native代碼,即c/c++函數(shù)。在函數(shù)調(diào)用期間,虛擬機(jī)能夠利用本地操作系統(tǒng)直接進(jìn)行進(jìn)程或線程創(chuàng)建,得到相應(yīng)的Linux進(jìn)程和線程。利用Native代碼創(chuàng)建進(jìn)程,需要對虛擬機(jī)進(jìn)行加載.因此可以看成是虛擬機(jī)的一個進(jìn)程。如果創(chuàng)建出的線程能夠?qū)ava代碼進(jìn)行執(zhí)行,則能看成是虛擬機(jī)的一個線程。

        2.2進(jìn)程創(chuàng)建過程

        Dalvik虛擬機(jī)進(jìn)程能夠利用Activity Manager Service服務(wù)提供。分析進(jìn)程創(chuàng)建過程可以發(fā)現(xiàn),該服務(wù)能夠利用android.Os.Process類的靜態(tài)成員函數(shù)start進(jìn)行Zygote進(jìn)程創(chuàng)建,然后由該進(jìn)程通過dalvik.system.Zygote類的靜態(tài)成員函數(shù)forkAndSpecialize實(shí)現(xiàn)虛擬機(jī)線程創(chuàng)建。相較于進(jìn)程,線程占用資源少,能夠與其他線程共享資源。但線程管理相對麻煩,需要解決同步問題-個線程的崩潰可能引起其他線程崩潰從Java語言層面來講,可以利用java.lang.Thread類的成員函數(shù)start進(jìn)行虛擬機(jī)線程創(chuàng)建。在實(shí)際創(chuàng)建過程中,將完成本地操作系統(tǒng)進(jìn)程創(chuàng)建,得到Linux進(jìn)程。不同于之前創(chuàng)建的Linux進(jìn)程,該進(jìn)程無對應(yīng)虛擬機(jī)實(shí)例,因此不會自動附加到虛擬機(jī)中,而是需要對Java代碼進(jìn)行執(zhí)行才能完成附加。

        2.3創(chuàng)建方法比較

        由Dalvik虛擬機(jī)進(jìn)程創(chuàng)建過程可知,其基本采用本地方法實(shí)現(xiàn)進(jìn)程創(chuàng)建。采用fork方法,得到的子進(jìn)程僅為半初始化狀態(tài),是zygote進(jìn)程。在父進(jìn)程完成addNeWHeap調(diào)用的情況下,將采用寫時復(fù)制方式實(shí)現(xiàn)進(jìn)程共享,完成初始化操作。采用forkAndSpecialize方法,將單獨(dú)完成子進(jìn)程的創(chuàng)建,需要對HeapWorker線程進(jìn)行啟動,完成對象終結(jié)函數(shù)的執(zhí)行,進(jìn)行對象清理和歸隊(duì)引用,從而完成線程調(diào)試。通過執(zhí)行addNewHeap,能夠進(jìn)行新堆創(chuàng)建,為特定任務(wù)運(yùn)行提供支持。采用forkSystemServer方法,基本與forkAndSpecialize擁有相同進(jìn)程創(chuàng)建過程,但在子進(jìn)程結(jié)束后將不會進(jìn)行父進(jìn)程的創(chuàng)建。在Linux進(jìn)程中,對forx進(jìn)行調(diào)用,得到的父子進(jìn)程堆棧不存在關(guān)聯(lián),但除dex文件以往的其他文件均能對虛擬機(jī)核心庫代碼進(jìn)行共享,因此不僅可以使Linux進(jìn)程的優(yōu)勢充分發(fā)揮,也能使系統(tǒng)內(nèi)存得到節(jié)省。從比較結(jié)果來看,Dalvik虛擬機(jī)在對傳統(tǒng)Java進(jìn)程控制API方式進(jìn)行保留的同時,也對Linux操作系統(tǒng)特點(diǎn)進(jìn)行了汲取,能夠利用特有進(jìn)程實(shí)現(xiàn)API的控制,利用forx語義或控制信號實(shí)現(xiàn)進(jìn)程創(chuàng)建,因此在系統(tǒng)啟動時就能完成系統(tǒng)服務(wù)進(jìn)程創(chuàng)建。

        3結(jié)論

        綜上所述,在開源的Android系統(tǒng)中,Dalvik虛擬機(jī)能夠通過加強(qiáng)Java應(yīng)用和吸取Linux特點(diǎn)利用特有進(jìn)程完成API控制,因此才能在大量智能移動平臺上得到使用和移植。相信伴隨著虛擬技術(shù)的發(fā)展,Dalvik虛擬機(jī)也將突破運(yùn)行速度方面的局限性。

        參考文獻(xiàn)

        [1]尹學(xué)淵,陳興蜀,陶術(shù)松,等.一種無代理虛擬機(jī)進(jìn)程監(jiān)控方法[J],南京大學(xué)學(xué)報(bào)(自然科學(xué)),2019,55(02):221 230.

        [2]陳佳昕,虛擬機(jī)隱藏進(jìn)程檢測系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]現(xiàn)代計(jì)算機(jī)(專業(yè)版),2019(O1):93-96.

        猜你喜歡
        線程進(jìn)程應(yīng)用程序
        債券市場對外開放的進(jìn)程與展望
        中國外匯(2019年20期)2019-11-25 09:54:58
        刪除Win10中自帶的應(yīng)用程序
        淺談linux多線程協(xié)作
        社會進(jìn)程中的新聞學(xué)探尋
        我國高等教育改革進(jìn)程與反思
        Linux僵死進(jìn)程的產(chǎn)生與避免
        Linux線程實(shí)現(xiàn)技術(shù)研究
        關(guān)閉應(yīng)用程序更新提醒
        電腦迷(2012年15期)2012-04-29 17:09:47
        么移動中間件線程池并發(fā)機(jī)制優(yōu)化改進(jìn)
        三星電子將開設(shè)應(yīng)用程序下載商店
        99久久免费精品色老| 国产精品_国产精品_k频道 | 欧美亚洲日韩国产人成在线播放| 女人天堂国产精品资源麻豆| 精品无码av一区二区三区不卡| 亚洲狠狠婷婷综合久久久久图片| 青青在线精品2022国产| 亚洲一区二区三区乱码在线| 亚洲日本精品国产一区二区三区| 狠狠躁天天躁中文字幕| 插鸡网站在线播放免费观看| 国产特级毛片aaaaaaa高清| 日韩秘 无码一区二区三区| 丰满人妻一区二区三区精品高清| 国产一区二区三区三区四区精品| 毛片a级毛片免费观看| 国产精品一区二区韩国AV | 欧美三级不卡在线观看| 亚洲第一页综合图片自拍| 色婷婷综合激情| 亚洲精品一区二区三区日韩| 久久久久亚洲av无码a片| 国产成年无码v片在线| 国产精品一区二区资源| 国产一区二区视频在线看| 亚洲成a人v欧美综合天堂| 久久综合精品国产丝袜长腿 | 玖玖资源站无码专区| 情色视频在线观看一区二区三区| 亚洲少妇一区二区三区老| 亚洲精品一区久久久久一品av| 亚洲日韩精品欧美一区二区| 精品久久久久88久久久| 中文字幕一区二区黄色| 国产精品免费_区二区三区观看| 99热在线精品播放| 亚洲中文字幕乱码在线视频| 国产大屁股视频免费区| 又爆又大又粗又硬又黄的a片 | 国产精品18禁久久久久久久久| 久久夜色精品国产亚洲av老牛 |