您的位置:首页 > 其它

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

2014-01-19 12:22 232 查看

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐