[Docker] 2. kernel (커널)

문정준's avatar
Jul 28, 2025
[Docker] 2. kernel (커널)

Process Scheduling

  • 시스템은 HW, OS, App 계층으로 구성
    • App에서 OS로, OS에서 HW로 명령 입력
  • OS 내부에서 일을 처리하는 관리자가 있음
    • 관리자는 창고와 책상을 같이 관리함
  • 관리자에게 사과와 딸기를 창고에 보관하라는 명령이 동시에 들어올 경우, 어떤 것을 먼저 처리해야 하는가?
    • 관리자가 이를 정해야 함 : 우선순위 설정
    • 우선순위를 통해 사과 또는 딸기가 프로세스를 선점
  • OS 외부에서 관리자에게 참외를 줄테니 바나나를 달라는 명령이 들어올 경우, 어떤 것을 먼저 처리해야 하는가?
    • 역시 관리자가 이를 정해야 함 : 우선순위 설정
    • 또한 관리자는 창고에서 바나나를 바로 넘겨줄 수 없고, 책상에 올려둔 후 보낼 수 있음
  • 외부에서 딸기를 달라는 명령이 들어올 경우, 관리자는 우선적으로 책상을 체크
    • 없으면, 창고에서 딸기를 들고 온 후 책상에 올려둠 : 캐싱
  • 이후 딸기를 달라는 명령이 또 들어오면, 관리자는 책상의 딸기를 건네주면 됨
  • 이와 같이 관리자가 외부 명령의 처리에 대한 우선 순위 및 알고리즘을 설정하는 것을 프로세스 스케줄링(Process Scheduling)이라고 하며, 이때 이 관리자를 OS 내에 있는 kernel (커널)이라고 함
notion image

kernel (커널)

  • 커널은 OS 내에 존재하는 핵심 프로그램
    • 시스템 제어, 프로세스 스케줄링 등 수행
    • 커널의 역할 = OS의 역할이기도 하나, OS와 커널은 같지 않음
notion image
 
  • 커널은 외부로부터 명령을 입력받아 HW를 동작시킴
    • 외부에서 오는 명령을 System Call이라고 함
  • System Call을 내릴 수 있는 인터페이스를 Shell이라고 하고, Shell은 종류가 다양함
    • cmd, PowerShell, bash, zsh, sh 등
    • Shell에 작성된 내용을 System Call로 해석해서 커널에게 명령을 내림
  • Docker에서는 Shell로 명령을 내리는 것이 필요
    • Docker는 OS를 전부 들고 오지 않고 커널만 사용함 : 가동되는 OS의 개수를 줄일 수 있음
notion image
Share article

sxias