윈도우 프로세스 핸들(Handle)이란?
- 운영체제(OS)
- 2023. 5. 11.
프로세스 핸들이란?
프로세스 핸들(process handle)은 운영 체제에서 프로세스에 대한 참조 또는 식별자입니다. 핸들은 프로세스를 제어하고 정보를 쿼리하고 다른 프로세스의 메모리를 읽거나 쓰려고 할 때 사용됩니다. 특정 프로세스에 대한 일종의 토큰이라고 볼 수 있습니다. 핸들이 있기에 프로세스 간 상호 작용이 가능합니다. 주로 윈도우 운영체제에서 사용됩니다.
PID / 프로세스 핸들 차이
프로세스 핸들은 프로세스를 식별하고 참조한다는 점에서 PID와 비슷하게 느껴질 수 있지만 둘은 조금 다릅니다. PID는 프로세스에 할당된 고유한 숫자로 식별에 주 목적이 있습니다. 반면 프로세스 핸들은 특정 프로세스에 대한 참조이자 해당 프로세스를 제어하는데 필요한 권한을 포함하는 객체입니다.
유닉스 계열 운영 체제에서는 파일 디스크립터(file descriptor)라는 개념이 프로세스 핸들과 비슷한 역할을 합니다. 파일 디스크립터를 통해 프로세스가 시스템의 다른 리소스와 상호작용 합니다.
프로세스 핸들 사용 예시
일반적으로 프로세스 핸들은 아래와 같은 목적으로 사용됩니다.
1. 프로세스의 실행을 제어합니다. 예를 들어, 프로세스를 중지하거나 재개하거나 종료합니다.
2. 프로세스의 상태 정보를 쿼리하거나 검색합니다. 예를 들어, 프로세스의 현재 메모리 사용량, 실행 중인 스레드의 수, CPU 사용률 등을 조회하는 데 사용할 수 있습니다.
3. 프로세스 간 메모리나 파일 등의 자원을 공유할 수 있습니다. 예를 들어, 한 프로세스가 다른 프로세스의 메모리 공간에 액세스 하려면 해당 프로세스의 핸들이 필요합니다.
PC에서 실제 핸들 값을 확인해보겠습니다. Process Explorer를 사용하면 프로세스에 대한 핸들 값들을 볼 수 있습니다. 핸들은 일반적으로 16진수 형태로 표시됩니다. 0x760, 0x11B8, 0xA8 … 같은 값입니다.
프로세스가 특정 리소스를 사용하려고 할 때 해당 리소스에 대한 핸들이 생성됩니다. 때문에 하나의 프로세스에는 여러 개의 핸들이 존재합니다. 예를 들어, 프로세스가 파일을 열려고 하면 운영 체제는 해당 파일에 대한 핸들을 생성하고 프로세스에 반환합니다. 이 핸들을 통해 프로세스는 파일을 읽거나 쓸 수 있습니다.
'운영체제(OS)' 카테고리의 다른 글
Mac Homebrew 설치 / 사용 방법 (패키지 관리 도구) (0) | 2023.05.15 |
---|---|
리눅스 SSH 포트 변경 방법 (22번 → ) (0) | 2023.05.13 |
리눅스 rsync 사용 방법 (cp 진행률 확인) (0) | 2023.05.09 |
리눅스 SELinux란? 커널 보안 모듈 개념 (1) | 2023.05.08 |
윈도우 PC 최적화 하기 (MS PC Manager) (0) | 2023.04.29 |