티스토리 뷰

운영체제

커널 오브젝트 , 핸들

jazzmaster 2019. 4. 21. 01:08

아래의 내용은 윈도우 종속적

 

1. 커널 오브젝트란 무엇인가? 

IOCP와 같은 것들을 실습해보면서 자주 접한 용어 이다. 

한마디로 정의하면 '커널에서 관리하는 데이터 블록'

 

프로세스가 생성이 되면 -> 프로세스를 관리하는 구조체변수가 생기고 -> 초기화 --> '커널 오브젝트'

 

그 밖에도 스레드를 생성할 때나, 프로세스들간의 통신을 위한 파이프 등을 생성할 때도 커널오브젝트를 생성한다. 

 

이쯤되면 HANDLE 이라는 변수명을 본적이 있지 않나? 그것과 밀접한 연관이 있을 것이다. 

 

 

 

2. 커널 오브젝트로 조작을 할 수 있는가? 

일반적으로 우리가 직접 구조체의 내용을 변경하거나 하지는 못한다.

다만, 시스템 콜(System Call)을 이용해 간접적으로 조작이 가능하다. 

어떻게 조작하나? 

가령 프로세스의 우선순위를 바꾸고 싶을 때 SetPriority() 라는 시스템콜을 이용해서 간접적으로 변경을 해줄 수 있다

 

 

 

3. 커널 오브젝트 핸들

MSDN

커널 오브젝트는 윈도우에 종속적이다. 윈도우가 소멸을 결정한다. 

hProcess은 프로세스의 커널 오브젝트를 구분하기 위한 것,

dwProcessId는 프로세스 자체를 구분하기 위한 것

 

 

'운영체제' 카테고리의 다른 글

window 문자와 문자열  (0) 2019.06.07
메모리에 관한 이야기  (0) 2019.04.28
스레드 동기화 정리  (0) 2019.04.27
thread 정리  (0) 2019.04.22
프로세스 정리  (1) 2019.04.20
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함