!["프로세스가 시스템 개체에 대한 열린 핸들을 소유하고 있습니다"는 무엇을 의미합니까? [폐쇄]](https://linux55.com/image/45399/%22%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EA%B0%80%20%EC%8B%9C%EC%8A%A4%ED%85%9C%20%EA%B0%9C%EC%B2%B4%EC%97%90%20%EB%8C%80%ED%95%9C%20%EC%97%B4%EB%A6%B0%20%ED%95%B8%EB%93%A4%EC%9D%84%20%EC%86%8C%EC%9C%A0%ED%95%98%EA%B3%A0%20%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4%22%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9D%84%20%EC%9D%98%EB%AF%B8%ED%95%A9%EB%8B%88%EA%B9%8C%3F%20%5B%ED%8F%90%EC%87%84%5D.png)
프로세스의 특성은 다음과 같습니다.
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.
각 프로세스는 프로그램을 실행하는 데 필요한 리소스를 제공합니다. 프로세스에는 가상 주소 공간, 실행 가능 코드, 시스템 개체에 대한 열린 핸들, 보안 컨텍스트, 고유 프로세스 식별자, 환경 변수, 우선 순위 범주, 최소 및 최대 작업 집합 크기, 하나 이상의 실행 스레드가 있습니다. 각 프로세스는 일반적으로 메인 스레드라고 하는 단일 스레드로 시작되지만 해당 스레드 중 하나에서 추가 스레드가 생성될 수 있습니다.
여기서 "핸들"이라는 단어는 포인터를 의미합니다. 프로세스는 "시스템 개체"에 액세스할 수 있으며, 핸들은 프로세스가 메모리를 통해 커널을 가리키는 개체에 직접 액세스하는 대신 공식적으로 "추적된" 포인터를 요청할 수 있도록 하는 프로그래밍 구성입니다.
이것의 장점은 커널이 해당 개체를 공유하거나 잠그는 등 개체에 핸들을 할당하여 어떤 프로세스가 어떤 리소스를 사용하고 있는지 추적할 수 있다는 것입니다.