커널 오브젝트 2

#017_WIndow_System_리소스

안녕하세요 삽잡이입니다.이번 시간에는 리소스에 관해서 생각해보는 시간을 가져보도록 하겠습니다. 프로세스는 우리가 더블클릭해서 실행될 수 있지만, 다른 프로세스에 의해 실행될 수 있습니다.이와 같은 경우는 커널 오브젝트에서는 쓰레드와 프로세스가 있습니다.create 함수에 의해 생성될 수 있지만, 프로세스와 쓰레드는 다른 프로세스에 의해 실행 될 수도 있다는 것입니다. 프로세스는 쓰레드와 함께 리소스가 사라져도 해당 프로세스나 쓰레드의 정보를 받아가기 위한 정보가 존재하는 특징을 가지고 있습니다.다른 놈들은 이벤트가 제거되면 더 이상 이벤트를 사용할 놈이 없기 때문에 필요 없습니다.즉, 리소스가 없어지는 순간 커널 오브젝트의 의미가 없어진다는 것입니다. 하지만, 프로세스나 쓰레드는 리소스가 없어도 정보를 ..

#016_WIndow_System_커널 오브젝트 & 핸들 테이블

안녕하세요 삽잡이 입니다. 이번 시간에는 핸들 테이블에 관해서 정리해보려고 합니다. 프로세스는 내부적으로 커널 오브젝트 핸들 테이블을 가지고 있습니다. 여기서 커널 오브젝트란, 커널에서 관리하는 중요한 정보들을 담아둔 데이터 블록을 말합니다. 즉, 프로세스들은 OS가 관리합니다. 그리고 관리를 위해 구조체 하나를 만들게 된 것입니다. 프로세스가 생성될 때마다 이 구조체가 하나씩 생성되고 프로세스의 정보들이 초기화 되는데, 이를 우리는 '커널 오브젝트'라고 부르는 것입니다. 아무튼... 프로세스는 내부적으로 이 커널 오브젝트 핸들 테이블을 가지고 있는 것입니다. 이 핸들 테이블이 필요한 이유는, 모든 프로세스가 커널 오브젝트를 받을 때 커널 오브젝트를 관리하기 위해서 입니다. 또한, 이 커널 오브젝트 핸들..