다음을 통해 공유


코드 실행

업데이트: 2007년 11월

공용 언어 런타임에서는 실행 중에 사용할 수 있는 다양한 서비스 뿐만 아니라 관리되는 실행을 가능하게 해주는 인프라를 제공합니다. 메서드를 실행하려면 프로세서 고유의 코드로 컴파일해야 합니다. MSIL(Microsoft Intermediate Language)이 생성된 모든 메서드는 맨 처음 호출될 때 JIT로 컴파일된 다음 실행됩니다. 다음 번에 이 메서드를 실행하면 기존의 JIT로 컴파일된 네이티브 코드가 실행됩니다. 실행이 완료될 때까지 JIT 컴파일 및 코드 실행 프로세스가 반복됩니다.

실행되는 동안 관리 코드는 가비지 수집, 보안, 비관리 코드와의 상호 운용성, 다양한 언어 디버깅 지원, 확장된 배포 및 버전 관리 지원 등과 같은 서비스를 받습니다.

Microsoft Windows XP 및 Windows Vista에서는 운영 체제 로더가 COFF(Common Object File Format) 헤더의 비트를 검사하여 관리되는 모듈인지 확인합니다. 비트가 설정되어 있으면 관리되는 모듈입니다. 로더가 관리되는 모듈을 발견하면 mscoree.dll이 로드되며 _CorValidateImage 및 _CorImageUnloading은 관리되는 모듈 이미지의 로드 및 언로드 시기를 로더에 알립니다. _CorValidateImage는 다음 작업을 수행합니다.

  1. 코드가 유효한 관리 코드인지 확인합니다.

  2. 이미지의 진입점을 런타임의 진입점으로 변경합니다.

64비트 Windows의 경우 _CorValidateImage는 메모리에 있는 이미지를 PE32 형식에서 PE32+ 형식으로 변환하여 수정합니다.

참고 항목

개념

관리되는 실행 프로세스

기타 리소스

.NET Framework의 보안

비관리 코드와의 상호 운용

.NET Framework 응용 프로그램 배포