首页 > Web开发 > 详细

.Net Framework CLR 托管程序执行机制

时间:2014-01-20 22:44:45      阅读:376      评论:0      收藏:0      [点我收藏+]


Managed Execution Process  


Running Code


       Common Language Runtime(CLR)是.Net托管程序执行的基础,在某个方法执行前,MSIL代码会被Just in Time(JIT)编译器编译成本地特定的处理器代码。每个方法在第一次调用前都会被JIT编译器生成本地代码,而下一次执行时,则直接调用已经存在的JIT编译的本地代码。 JIT编译和执行会一直不断重复直到执行结束。

       在执行过程中,托管代码接受如垃圾回收,安全,与非托管代码交互,跨语言调试支持,增强部署,版本支持等服务。

       在window XP和vista, 操作系统loader会通过检查COFF头的一个字节位判断程序是否为托管模块, 如果是,则加载mscoree.dll,_CorValidateImage方法 和 _CorImageUnloading方法会通知loader托管模块已加载和已卸载.

        _CorValidateImage 执行以下动作:

    1.确认代码是有效的托管代码 

    2. 把映像的入口设成当前运行时入口

在64位window系统, 会把映像在内存中的格式由PE32转换为PE32+格式







参考: http://msdn.microsoft.com/en-us/library/k5532s8a(v=vs.110).aspx#introduction


.Net Framework CLR 托管程序执行机制

原文:http://blog.csdn.net/omage/article/details/18501341

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!