Windows ETC

Windows NT 아키텍처 - Part 3

2012.11.30 08:26

호스트웨이 조회 수:1455

***NT 실행부(익스큐티브)

 

 NT 커넬이 대통령과 같다면,  NT 실행부는 행정부와 비슷하다고 볼 수 있다.

NT 실행부는 전체 시스템에 생명과도 같은 중요한 태스크들을 관리한다. 그러

나 커넬은 직접적으로 그것들을 다루기엔 너무 바쁘다.

 명확하고 간결한 정의를 하자면 NT 실행부는 시스템에서 수행되는 모든 다른

애플리케이션들에게 제공될 수 있는 OS의 기반을 제공한다고 할 수 있다. 

것은 오브젝트 관리, 가상메모리관리, I/O관리, 프로세스 관리 서비스를 포함

한다.

 NT 실행부는 커넬 모드에서 배타적으로 동작하며, 프로텍티드 환경 서브시스

템에 의해 필요에 따라 호출된다. NT의 조직도에 따라, 사용자 프로그램은 NT

실행부를 직접 호출하지 않는다. 대신, 환경 서브시스템에게 서비스를 요청한

. 그리고 그 환경 서브시스템이 NT 실행부를 호출한다.

 NT실행부 안에는 실재하는  API들에 의해 공개되지 않는 펑션들이 존재한다.

이것은 NT 설계자들이  차후의 업그레이드를 위해 OS속에 후킹을 넣으려고 노

력했기 때문이다.

 커넬 자체를 제쳐두면 NT실행부의 주요 구성은 다음과 같다.

 

   오브젝트 관리자

   프로세스 관리자

   가상메모리 관리자

   Local Procedure Call Facility (지역 프로시저 호출 시설)

   Security Reference Monitor (보안 참조 감시자)

   I/O 관리자

 

***오브젝트 관리자

 

 오브젝트 관리자는 NT 실행부를 구성하는 모든 시스템에 의해 쓰이는 오브젝

트들을 생성하고 고치고 삭제하는 일에 쓰인다. 오브젝트들은 OS의 자원을 나

타내는데 쓰이는 추상적인 데이터 타잎이다. 그것은 또한 OS의 나머지 부분에

오브젝트의 상태 정보를 제공해준다.

 오브젝트는 디바이스 포트 처럼 확실한 것일수도 있고,  쓰레드처럼 더 추상

적일 수도 있다. 오브젝트가 생성되면,  그 오브젝트에 다른 프로그램이 액세

스할 수 있도록 이름이 부여된다.  다른 프로세스가 오브젝트를 액세스하려고

하면,  오브젝트는 오브젝트 매니저로부터 생성된 오브젝트 핸들이 있어야 한

.  오브젝트 핸들은 그 오브젝트가 어떻게 액세스될 수 있는지에 대한 제어

액세스 뿐만 아니라  실제 오브젝트를 지정하는 데에 쓰이는 포인터를 제공한

. 이 제어 액세스는 NT 보안 서브세스템에 의해 제공된다.

 오브젝트 관리자는 주인이 없다고 판단되는 오브젝트를 클리어해주는 역할도

한다. 이것은 가베지 코렉션이라고 알려져 있다. 윈도우 3.1은 그러한 기능이

부족해서 문제가 많이 생겼었다. 응용프로그램이 비정상적으로 종료되거나 멎

으면 그 자원을 다시 가져올 수가 없었기 때문이다. 즉 시스템 자원 부족이라

는 에러를 많이 겪어야만 했다.

 

***프로세스 관리자

 

 프로세스 관리자는 모든 프로세스와 쓰레드의 생성, 제거, 변경에 대한 관리

를 한다. 또한 쓰레드와 프로세스들의 상태 정보를 알려준다.

 프로세스 관리자는 기타 다른 NT 수행부의 요소들과 비슷하게,  전체 시스템

의 운영에 아주 중요한 역할을 담당하고 있다.  애플리케이션이 시작되면,

로세스의 형태로 생성이 되며, 그것은 프로세스 관리자 호출에 필요하다. 

든 프로세스가 최소한 1개 이상의 쓰레드를 필요로 하기 때문에, 프로세스 관

리자가 쓰레드를 생성하기 위해 다시금 호출된다.

 프로세스 관리자는 쓰레드를 관리하는데 쓰이지만, 쓰레드들이 어떻게, 언제

스케줄링 되어야 하는지에 대한 테이블은 갖고 있지 않다.

 이는 마이크로커넬 자체에 의해 결정되는 정책이다.

 

***가상메모리 관리자

 

 가상메모리 관리자(VMM)는 시스템의 가상 메모리 풀에 대한 관리를 제공한다.

가상메모리는 디스크를 페이징과 복원 작업으로 물리 메모리 대신 사용할 

있도록 해주는 기법이다. 이것은 윈도우 NT가 모든 프로세스에게 실제 메모리

가 얼마나 되는지는 상관없이 32비트 주소 영역을 제공하기 때문에  필수적인

부분이다.

 각각의 프로세스에는  4GB의 가상 메모리 공간이 할당된다.  이 공간의 상위

2기가바이트는 시스템에 의해 예약되어 있고, 나머지 2기가가  프로세서가 쓸

수 있는 부분이다. 각 프로세스들은 마치 메모리 공간상에 자신만이 있는것처

럼 주소를 할당한다.  가상메모리  관리자는 따라서 프로세스  자체의 메모리

주소를 실질적인 시스템 메모리 어드레스로 번역해주는 역할도 한다. 만약 프

로세스의 메모리 주소가 디스크로 페이지 아웃된 메모리 영역을 참고하려 

, VMM은 그 페이지된 영역을 디스크로부터 다시 찾아온다.

번호 제목 글쓴이 날짜 조회 수
197 Adsutil.vbs 를 이용한 IUSR 및 IWAM 계정의 암호 취득 및 설정 file 호스트웨이 2012.07.27 20617
196 Windows 2008 Server Telnet Client 설치 file 호스트웨이 2012.03.30 20090
195 CHKDSK 예약된 경우 취소 방법 file 호스트웨이 2012.06.15 19628
194 Windows 2008 Server에서 사용자 정보 확인 및 패스워드 변경 file 호스트웨이 2012.04.27 19296
193 Windows 2008, 2012에서 특정IP에 원격접속 허용하기 file 호스트웨이 2015.09.15 19254
192 리눅스 시간 동기화 및 시간대 설정 file 호스트웨이 2012.03.15 18948
191 두개의 NIC에 각각 다른 대역의 IP를 등록하는 방법 file 호스트웨이 2012.08.23 18774
190 윈도우 2008 작업스케줄러 file 호스트웨이 2012.09.07 18724
189 Windows 2003 Server에서 방화벽 Port Range 단위로 Allow file 호스트웨이 2012.05.11 18238
188 윈도우 운영체제가 지원하는 최대 메모리 크기 호스트웨이 2012.05.25 18127
187 Windows 실행창 명령어 호스트웨이 2012.03.23 17261
186 Windows 원격 데스크톱 접속시 Local 리소스 사용 방법 file 호스트웨이 2012.03.23 17190
185 Tracert, Traceroute 를 이용한 네트워크 회선점검(2) file 호스트웨이 2012.03.16 16664
184 이벤트로그 DB 파일 저장위치 변경 file 호스트웨이 2012.03.30 16614
183 Windows에서 포트 별 프로세스 확인 방법 file 호스트웨이 2012.06.08 16482
182 Windows Server 2008 백업 기능 설치 file 호스트웨이 2012.03.09 16426
181 Windows 탐색기에서 파일 확장자 보기 - Windows Server 2008 Urikiri 2012.05.25 16205
180 윈도우서비스 제거 및 생성방법 file 호스트웨이 2012.04.20 16065
179 Administrator 계정 이름 바꾸기 file 호스트웨이 2012.08.23 15931
178 위키의 고도화(소셜메모) file 호스트웨이 2012.04.06 15794