C# 프로그램이 어떻게 실행이 되는지 나중에 기억이 안날 때 참고하기 위하여 따로 정리하였습니다.
📌 C# 프로그램 실행 과정
- 사용자가 소스코드를 작성한다.
- 각 언어별로 있는 컴파일러가 소스코드를 컴파일한다.
- 컴파일된 결과물은 exe, dll을 만든다. 이를 어셈블리라고 부른다.
이 어셈블리는 CIL(Common Intermediate Language)로 불리며 코드 + 메타데이터 정보를 포함하고 있다. - CIL은 CLR에 의해 네이티브 코드로 변환되어 실행되게 된다.
더보기※ CLR(Common Language Runtime): 실행 환경 전반을 관리하는 핵심 엔진이다!
1. 우선 CIL은 실행하기 위해 메모리에 로드한다.
2. 메모리에 올라간 CIL을 네이티브 코드로 변환하기 위해 JIT(Just In Time) 컴파일러가 사용된다.
3. JIT로 변환된 네이티브 코드는 다음 번 실행 시 빠르게 실행될 수 있게 메모리에 캐시됩니다. - OS는 변환된 네이티브 코드를 이해하여 프로그램이 동작될 수 있게 해줍니다.
- 프로그램이 실행됩니다.
📌 C# 프로그램 실행 과정
using System; //System이라는 namespace를 사용하기 위한 과정
static void Main(string[] args) //실행 시 args[0]에 프로그램 경로를 가지고 있음
{
}
static으로 인해 Main 함수를 미리 메모리에 할당할 수 있습니다.
이 프로그램이 실행되면 CLR이 프로그램을 메모리에 올리고 시작지점을 찾습니다.
미리 Main함수가 메모리에 할당되어 있기 때문에 CLR이 시작지점을 찾을 수 있습니다.
'C#' 카테고리의 다른 글
[C#] - async/await 사용 (0) | 2023.01.11 |
---|---|
[C#] - 레지스트리의 사용 (0) | 2023.01.04 |