커널(kernel)이란
컴퓨터를 운영하는 데 있어서 중심이 되는 운영체제의 핵심 부분을 뜻한다.
일반적으로 '커널'이라는 용어와 '운영체제'라는 용어는 같은 의미로 사용되기 때문에 굳이 운영체제에서 커널이 차지하는 영역을 명확하게 구분할 필요는 없다.
커널 오브젝트 : 커널에서 관리하는 중요한 정보를 담아둔 데이터 블록
파일을 실제 생성하고 관리하는 주체는 운영체제이다.
운영체제는 관리를 위해 '접근 정보, 어디까지 읽었는지에 대한 정보'등을 필요로 하는데, 이러한 정보들을 담아둔 블록이 바로 커널 오브젝트다.
- 리소스를 생성하게 되면 그에 해당하는 커널 오브젝트가 생성된다.
- 각 커널 오브젝트는 리소스의 특성에 따라 가지는 정보가 다름
커널 오브젝트(Kernel Object)의 이해
프로세스를 생성하고(프로세스 생성과 소멸, 그리고 그 사이에 일어나는 모든 일)하는 실질적인 주체는 운영체제이다.
프로세스 상태 정보와 우선순위 정보는 운영체제 내부에 저장되고 관리되며 갱신되어야 한다.
그래야 프로세스 스케줄러가 해당 정보를 바탕으로 프로세스 관리가 가능해진다.
프로세스 관리 구조체(Process Control Block) : 프로세스 상태 정보를 저장하기 위해 정의된 구조체
프로세스가 생성될 때마다 "프로세스 관리 구조체" 변수가 생성되고, 새롭게 생성된 프로세스 정보들로 초기화되는데 이것이 바로 커널 오브젝트의 정체이다.
프로세스가 생성될 때에만 커널 오브젝트가 생성되는 것은 아니다. 프로세스 내에서 프로그램 흐름을 구성하는 스레드를 생성할 때에도, IPC를 위해 사용되는 파이프나 메일 슬롯을 생성할 때에도 커널 오브젝트를 생성해서 필요한 정보들을 저장한다. 그래야 운영체제가 이들을 관리할 수 있기 때문이다. 뿐만 아니라 파일을 생성할 때에도 커널 오브젝트가 생성된다. 파일조차도 Windows 커널에 의해 관리되는 대상이기 때문이다.
커널 오브젝트는 종류에 따라서 서로 다른 구조체를 기반으로 생성된다.
"Windows 운영체제는 프로세스, 스레드, 혹은 파일과 같은 리소소들을 원활히 관리하기 위해 필요한 정보를 저장해야 한다. 이때 데이터를 저장하는 메모리 블록을 가리켜 커널 오브젝트라고 한다."
Windows 커널에 의해서 관리되는 리소스 수만큼 커널 오브젝트도 생성된다.
함께 읽으면 좋은 글
참고 사이트
'프로그래밍 > 운영체제' 카테고리의 다른 글
서비스(Service) vs 데몬(Daemon) (0) | 2024.03.25 |
---|---|
시스템 콜, 시스템 호출(System Call)이란? (1) | 2024.02.05 |
스레드(Thread)란 (6) | 2023.07.31 |
프로세스 제어 블록 (PCB, Process Control Block)란? (8) | 2023.07.20 |
프로그램의 실행 (6) | 2023.07.20 |
댓글