설명은 하단에...


 

 

 

 

 

 

 

커널 : 운영체제의 핵심적인 부분

 

커널 오브젝트 : "커널 리소스의 정보를 담고 있는 데이터 블록"

                      -1. 해당 리소스(ex 프로세스) 의 상태 정보를 알려주기 위한 오브젝트

                      - 2. 프로세스  or 파일 등을 생성하면 생성과 동시에 이것들을 구분 짖는 어떤 정보들이 생성되는데 이러한 정보들을 말한다

 


 

핸들은 단지 핸들 테이블에 등록되어 있는 번호일뿐 실질적으로 프로세스의 커널 오브젝트에 직접 접근 할 수 없고 핸들 테이블 에서

 

해당 프로세스에 등록되어 있는 핸들과 매치가 되는 대상과 연결되게 되도록 되어 있다


 

 

각 프로세스는 각 프로세스 내에서의 고유 핸들이 있다 ( A ,B 프로세스에서는 A 에도 같은 번호의 프로세스 값은 있을 수 있지만 서로 같은

커널 오브젝트를 가르키고 있진 않을 수 있다 )

 

 

또한 각 프로세스는 자식 프로세스를 생성할때마다 자신의 핸들테이블에 생성된 자식 프로세스로 접근 할 수 있는 핸들 값을 리턴 받아

 

자신의 핸들 테이블에 저장해 놓고 자식 프로세스의 커널오브젝트 정보에 접근 할 수 있는 연결자를 가지고 있는데

 

연결된 개수만큼 해당 커널 오브젝트에는 usage count 가 올라가 있음으로 부모에서 자식 프로세스를 생성한다면 UC 는 2 가 되며

 

부모에서 자식을 닫으면 UC 는 1 이 되어 아직 살아 있게 된다, 즉 이것은 자식과 부모 관계를 끊는 결과를 가져오며 프로세스 종료는

 

UC=0 이 되야 종료 됨으로 자식 프로세스에서 UC 를 0 으로 낮춰야 (죽어야 최종적으로 죽어야 ) 자식 프로세스가 종료 된다

 

 

반응형

+ Recent posts