운영체제에서는 프로세스를 이용하여 응용 프로그램을 구분 및 관리한다. .Net Framework는 프로세스를 아래와 같은 구조로 관리한다.
프로세스는 응용 프로그램 도메인을 기본적으로 하나를 가지고 있고, 그 안에 Main스레드를 가지고 있다.
하나의 프로세스안에 여러개의 응용 프로그램 도메인을 생성할 수 가 있다.
운영체제 환경에서는 프로세스를 사용하여 응용 프로그램 간을 경계를 구분한다(MSDN에서는 격리라는 표현을 사용). 이는 한 응용 프로그램에서 실행 중인 코드가 서로 관련 없는 다른 응용 프로그램에 나쁜 영향을 주지 않게 한다. 이처럼 닷넷프레임워크 환경에서는 하나의 프로세스에 이런 효과를 줄 수 있다. 서로 다른 프로세스인 경우 프로세스 간에 크로스 프로세스 호출 또는 프로세스 스위칭으로 인한 추가 오버헤드가 발생하는데, 응용 프로그램 도메인을 사용하면, 응용 프로그램 도메인간에 경계를 구분하면서도, 위의 문제가 발생하지 않는 장점이 있다. 이는 단일 프로세스에서 여러 응용 프로그램을 실행할 수 있는 기능을 통해 서버 확장성이 증대되는 효과를 얻을 수 있다.
한 프로세스에서 여러개의 응용 프로그램 도메인이 생성되어 있고, 하나의 응용 프로그램 도메인에서 오류가 발생했다고 가정하자. 서로의 응용 프로그램 도메인은 각각 구분 되어 있기 때문에 다른 응용 프로그램 도메인에는 전혀 영향이 가지 않는다. 즉 오류가 발생한 응용 프로그램 도메인만 언로드 시킬 수 있다. 그리고 전체 프로세스를 중지 하지 않고도 개별적으로 응용 프로그램 도메인을 중지 할 수 도 있다.
응용 프로그램 도메인 개요 : http://msdn.microsoft.com/ko-kr/library/2bh4z9hs(VS.80).aspx
이 글은 스프링노트에서 작성되었습니다.
'닷넷 프레임워크' 카테고리의 다른 글
3. 스레드 생성 및 종료 (0) | 2009.04.27 |
---|---|
2. 스레드 및 스레딩 (0) | 2009.04.27 |
Managed Code 개요 (0) | 2009.04.27 |
IFormatProvider 인터페이스 (0) | 2009.04.27 |
Generic (0) | 2009.04.27 |