久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

一個(gè)典型的C#/.NET應(yīng)用程序的執(zhí)行過(guò)程

 quasiceo 2012-12-17
一個(gè)典型的C#/.NET應(yīng)用程序的執(zhí)行過(guò)程:

1.用戶執(zhí)行編譯器輸出的應(yīng)用程序(PE文件),操作系統(tǒng)載入PE文件,,以及其他的DLL(.NET動(dòng)態(tài)連接庫(kù)),。
2.操作系統(tǒng)裝載器根據(jù)前面PE文件中的可執(zhí)行文件頭跳轉(zhuǎn)到程序的入口點(diǎn)。顯然,,操作系統(tǒng)并不能執(zhí)行中間語(yǔ)言,,該入口點(diǎn)也被設(shè)計(jì)為跳轉(zhuǎn)到mscoree.dll(.NET平臺(tái)的核心支持DLL)的_ CorExeMain()函數(shù)入口。
3.CorExeMain()函數(shù)開(kāi)始執(zhí)行PE文件中的中間語(yǔ)言代碼,。這里的執(zhí)行的意思是通用語(yǔ)言運(yùn)行時(shí)按照調(diào)用的對(duì)象方法為單位,,用即時(shí)編譯器將中間語(yǔ)言編譯成本地機(jī)二進(jìn)制代碼,執(zhí)行并根據(jù)需要存于機(jī)器緩存,。
程序的執(zhí)行過(guò)程中,,垃圾收集器負(fù)責(zé)內(nèi)存的分配,釋放等管理功能,。
程序執(zhí)行完畢,,操作系統(tǒng)卸載應(yīng)用程序。

NET Framework,,一個(gè)運(yùn)行在操作系統(tǒng)Windows之上的軟件虛擬機(jī),。開(kāi)發(fā)出來(lái)的程序經(jīng)過(guò)編譯之后,生成的可執(zhí)行程序?qū)嶋H上包含的只是MSIL指令代碼,,這是一種托管代碼,,只能運(yùn)行在.NET虛擬機(jī)之上。
托管EXE文件被調(diào)用時(shí),,Windows先加載該文件,,發(fā)現(xiàn)其.idata部分記錄了要把MSCorEE.dll加載到進(jìn)程的地址空間.加載了MSCorEE.dll后,,加載器獲得_CorExeMain函數(shù)的地址,同時(shí)修正托管EXE中的stub函數(shù)的JMP指令,。進(jìn)程的主線程開(kāi)始執(zhí)行修正后的x86 stub函數(shù),,該函數(shù)會(huì)跳轉(zhuǎn)到_CorExeMain函數(shù)上,_CorExeMain函數(shù)開(kāi)始初始化CLR,,并查看可執(zhí)行程序集的CLR表頭以確定要執(zhí)行的托管入口點(diǎn)方法,。隨后IL代碼被翻譯成本地CPU指令。CLR跳轉(zhuǎn)到編譯后的本地CPU指令上,,至此,,托管應(yīng)用程序開(kāi)始真正運(yùn)行。

http://msdn.microsoft.com/zh-cn/library/k5532s8a.aspx

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多