"프로세스가 시스템 개체에 대한 열린 핸들을 소유하고 있습니다"는 무엇을 의미합니까? [폐쇄]

"프로세스가 시스템 개체에 대한 열린 핸들을 소유하고 있습니다"는 무엇을 의미합니까? [폐쇄]

프로세스의 특성은 다음과 같습니다.

virtual address space
executable code
open handles to system objects
a security context
a unique process identifier
environment variables
a priority class
minimum and maximum working set sizes
at least one thread of execution

"프로세스에 시스템 개체에 대한 열린 핸들이 있습니다"는 무엇을 의미합니까?

답변1

이 목록을 여기서 얻었나요?http://msdn.microsoft.com/en-us/library/windows/desktop/ms681917(v=vs.85).aspx.

각 프로세스는 프로그램을 실행하는 데 필요한 리소스를 제공합니다. 프로세스에는 가상 주소 공간, 실행 가능 코드, 시스템 개체에 대한 열린 핸들, 보안 컨텍스트, 고유 프로세스 식별자, 환경 변수, 우선 순위 범주, 최소 및 최대 작업 집합 크기, 하나 이상의 실행 스레드가 있습니다. 각 프로세스는 일반적으로 메인 스레드라고 하는 단일 스레드로 시작되지만 해당 스레드 중 하나에서 추가 스레드가 생성될 수 있습니다.

여기서 "핸들"이라는 단어는 포인터를 의미합니다. 프로세스는 "시스템 개체"에 액세스할 수 있으며, 핸들은 프로세스가 메모리를 통해 커널을 가리키는 개체에 직접 액세스하는 대신 공식적으로 "추적된" 포인터를 요청할 수 있도록 하는 프로그래밍 구성입니다.

이것의 장점은 커널이 해당 개체를 공유하거나 잠그는 등 개체에 핸들을 할당하여 어떤 프로세스가 어떤 리소스를 사용하고 있는지 추적할 수 있다는 것입니다.

관련 정보