익스큐티브 객체
- Windows Server 2008
익스큐티브 객체는 일반적으로 사용자 애플리케이션을 위해 환경 서브시스템에 의해 생성되거나 다양한 운영체제 구성 요소의 통상적인 동작으로 인해 생성 된다. 예를 들어 파일을 생성하기 위해 윈도우 애플리케이션은 윈도우 서브시스템 DLL인 Kernel32.dll 에 구현된 윈도우 CreateFile 함수를 호출한다. CreateFile은 일부 유효성 검사와 초기화 이후에 익스큐티브 파일 객체를 생성하기 위해 네이티브 윈도우 서비스 NtCraeteFile을 호출 한다.
윈도우 서브시스템은 자신의 객체 집합(이 중의 많은 객체가 익스큐티브 객체와 직접적으로 대응된다.)을 익스포트 하기 위해 익스큐티브 객체를 사용한다. 예를 들어 윈도우 뮤텍스와 세마포어는 익스큐티브 객체에서 직접 기반을 둔다. 윈도우 서브시스템은 또한 네임드 파이프(named pipe)와 메일 슬롯, 익스큐티브 파일 객체를 기반으로 하는 자원을 제공한다.
POSIX 같은 서브시스템은 객체를 객체로 전혀 지원하지 않는다. POSIX 서브시스템은 POSIX 스타일의 프로세스와 파이프, 자신의 애플리케이션에 대한 그 밖의 자원을 제공하기 위한 기본으로 익스큐티브 객체와 서비스를 사용한다.
다음 표는 익스큐티브가 제공하는 주 객체의 목록이다.
객체 유형 | 의미 |
Process | 스레드 객체들의 실행을 위해 필요한 가상 주소 공간과 제어 정보 |
Thread | 프로세스 내의 실행가능 주체(entity) |
Job | 잡(job)을 통한 단일 주체로서 관리 가능한 프로세스의 모임 |
Section | 공유 메모리 영역(파일 메모리 매핑) |
File | 오픈 파일이나 I/O 디바이스 인스턴스 |
Token | 프로세스 또는 스레드의 보안 프로파일(보안ID와 사용자 권한 등) |
Event | 동기화나 통지에 사용될 수 있는 지속적인 상태를 갖는 객체 |
Semaphore | 정해진 최대 수만큼의 스레드가 세마포어에 의해 보호되는 자원을 접근하게 허용함으로써 자원 게이트(gate)를 제공하는 카운터 |
Mutex | 자원 접근을 직렬화하는 데 사용되는 동기화 메커니즘 |
Timer | 정해진 기간이 경과했을 때 스레드에 통지하는 메커니즘 |
IOCompletion | 스레드가 I/O 동작 완료에 대한 통지를 대기열에 넣거나 제거하기 위한 방법(윈도우 API에서는 I/O 완료 포트로 불림) |
Key | 레지스트리의 데이터를 참조하는 메커니즘, 키가 객체 관리자의 이름 공간에 보일지라도 파일 객체가 파일 시스템 드라이버에 의해 관리되는 것과 유사한 방식으로 구성(configureation) 관리자에 의해 관리 된다. 0 또는 그이상의 키 값이 하나의 키 객체와 관련되어 있다. 키 값은 키에 관한 데이터를 포함한다. |
Directory | 객체 관리자의 이름 공간에 있는 가상 디렉터리는 또 다른 객체나 객체 디렉터리를 포함하는 책임을 진다. |
TpWorkerFactory | 특정 작업 모임을 수행하기 위해 할당된 스레드의 모임. 커널은 큐에서 수행될 워크 아이템의 수와 작업을 책임지는 스레드의 수, 작업자 스레드의 동적 생성과 종료, 호출자가 설정할 수 있는 한계를 관리할 수 있다. 윈도우 비스비부터 스레드 풀을 통해 작업자 팩토리 객체를 노출 한다. |
Tmrm(자원관리자), TmTx(트랜잭션), TmTm(트랜잭션 관리자), TmEn(등록) | 자원 관리자나 트랜잭션 관리자의 일부 작업인 다양한 트랜잭션과 등록을 위한 용도로 커널 트랜잭션 관리자(KTM)가 사용하는 객체. |
Windowstation | 클립보드와 전역 아톰 집합, 데스크톱 객체 그룹을 포함하는 객체 |
Desktop | 윈도우 스테이션 내에 포함된 객체. 데스크톱은 논리 디스플레이 화면을 가지며 윈도우와 메뉴, 훅을 포함한다. |
[참고자료]
Windows Internals
'Windows , IIS' 카테고리의 다른 글
객체구조 – 형식 객체 (0) | 2015.07.16 |
---|---|
객체구조 – 객체 헤더와 본체 (0) | 2015.07.16 |
커널모드 시스템 디스패칭과 서비스 디스크립터 테이블 (0) | 2015.07.16 |
32비트, 64비트 시스템 서비스 디스패칭 (0) | 2015.07.16 |
윈도우 오류 보고 (0) | 2015.07.16 |