티스토리 뷰
아래의 내용은 윈도우 종속적
1. 커널 오브젝트란 무엇인가?
IOCP와 같은 것들을 실습해보면서 자주 접한 용어 이다.
한마디로 정의하면 '커널에서 관리하는 데이터 블록'
프로세스가 생성이 되면 -> 프로세스를 관리하는 구조체변수가 생기고 -> 초기화 --> '커널 오브젝트'
그 밖에도 스레드를 생성할 때나, 프로세스들간의 통신을 위한 파이프 등을 생성할 때도 커널오브젝트를 생성한다.
이쯤되면 HANDLE 이라는 변수명을 본적이 있지 않나? 그것과 밀접한 연관이 있을 것이다.
2. 커널 오브젝트로 조작을 할 수 있는가?
일반적으로 우리가 직접 구조체의 내용을 변경하거나 하지는 못한다.
다만, 시스템 콜(System Call)을 이용해 간접적으로 조작이 가능하다.
어떻게 조작하나?
가령 프로세스의 우선순위를 바꾸고 싶을 때 SetPriority() 라는 시스템콜을 이용해서 간접적으로 변경을 해줄 수 있다
3. 커널 오브젝트 핸들
커널 오브젝트는 윈도우에 종속적이다. 윈도우가 소멸을 결정한다.
hProcess은 프로세스의 커널 오브젝트를 구분하기 위한 것,
dwProcessId는 프로세스 자체를 구분하기 위한 것
'운영체제' 카테고리의 다른 글
window 문자와 문자열 (0) | 2019.06.07 |
---|---|
메모리에 관한 이야기 (0) | 2019.04.28 |
스레드 동기화 정리 (0) | 2019.04.27 |
thread 정리 (0) | 2019.04.22 |
프로세스 정리 (1) | 2019.04.20 |