ABOUT

성능과 운영 안정성을 함께 끌어올리는 개발자입니다.

92% Positional Error Reduction
79% p95 Latency Improvement
90%+ Long Tasks Reduction

2022.02 · 한국장학재단

우수 멘티

한국장학재단 사회 리더 대학생 멘토링 IT

2022.10 · 동작구청

우수 인재상

동작구청 우수 SW 인재

2025.05 · (주) 그랩

프로그래밍 우수상

(주) 그랩 우수 프로그램 개발

2025.05 · AWSKRUG

AWS한국사용자모임 발표

AI agent 스크립트 튜닝 관련 발표

ComputerScience

Development

Engineering

Trouble Shooting

GUESTBOOK

첫 마음부터
함께 나누는 온기

방명록 작성하러 가기

SUBSCRIBE

최신소식을
편하게 만나보세요.

커널 (Kernel)

 

정의

운영체제의 핵심으로, CPU, 메모리, 디스크, 네트워크 같은 자원을 중재하고 관리하는 프로그램입니다.

애플리케이션은 “원하는 기능”을 수행하려면 파일을 열고, 네트워크로 보내고, 메모리를 쓰고, 스레드를 실행해야 합니다. 하지만 이런 자원은 시스템 전체가 공유하므로, 무분별한 접근을 허용하면 보안/안정성이 무너집니다. 커널은 이 자원을 권한 기반으로 통제하고, 프로세스 간 충돌을 막으며, 시스템을 지속적으로 동작하게 만듭니다.

핵심 메시지

“커널은 ‘기능’이 아니라 질서다.
여러 프로그램이 동시에 실행되는 환경에서 자원을 안전하게 나눠 쓰게 만든다.”

- 운영체제의 중재자 -

커널이 하는 일

커널은 “실행 환경”을 제공하는 핵심 기능들을 담당합니다.
  • ✔️ 프로세스/스레드 관리: 생성/종료, 스케줄링, 컨텍스트 스위칭
  • ✔️ 메모리 관리: 가상 메모리, 페이지, 보호(권한), 페이지 폴트 처리
  • ✔️ 파일 시스템: 파일/디렉터리, 버퍼링, 캐시, 권한
  • ✔️ 네트워크/I-O: 소켓, TCP/IP 스택, 장치 드라이버, 인터럽트
  • ✔️ 보안/격리: 권한 검사, 프로세스 격리, 커널 보호(유저 영역 차단)

유저 영역과의 관계

앱은 커널 기능을 직접 호출할 수 없고, 시스템 콜로 요청합니다.

파일 읽기/쓰기, 네트워크 송수신, 프로세스 생성 같은 작업은 권한이 필요한 행위입니다. 유저 영역은 커널 영역에 직접 접근할 수 없기 때문에, 시스템 콜을 통해 커널에 요청하고, 커널은 권한/유효성 검사 후 실제 작업을 수행합니다.

1
유저 코드가 API 호출
2
시스템 콜로 커널 진입(권한 모드 전환)
3
커널이 검증 후 처리 → 결과 반환

커널 구조

커널은 구현 방식에 따라 모놀리식, 마이크로커널 등으로 나뉩니다.
유형 특징 트레이드오프
모놀리식 대부분 기능이 커널 내부에서 동작 성능 유리 / 결함이 커널 전체에 영향 가능
마이크로커널 핵심만 커널, 나머지는 유저 영역 서비스로 분리 격리/안정성 유리 / 통신 비용으로 성능 손해

커널이 느려지는 대표 원인

대부분은 커널이 “느려서”가 아니라 커널이 할 일이 많아서 발생합니다.
  • ✔️ I/O 폭증: 디스크/네트워크 작업이 많아 시스템 콜과 대기가 증가
  • ✔️ 컨텍스트 스위칭 증가: 스레드 과다/락 경합 → 스케줄링 오버헤드
  • ✔️ 페이지 폴트/스와핑: 메모리 부족 → 지연 급증(p95 튐)
  • ✔️ 자원 고갈: FD 고갈, 포트 고갈, backlog/큐 포화 → 타임아웃/실패

💡 TIP / 실무 감각

“CPU 사용률은 낮은데 요청이 느리다”면 커널의 I/O 대기 또는 페이지 폴트 같은 신호를 의심할 만합니다. 커널은 일을 “대신” 해주지만, 그만큼 병목 지점도 될 수 있습니다.

실무 체크

“커널 이슈”인지 빠르게 가늠하는 관찰 포인트
  • ✔️ 응답 지연(p95/p99)이 튀는데 CPU는 여유롭다 → I/O 대기/페이지 폴트 가능성
  • ✔️ “Too many open files”, “Connection reset/timeout” 같은 에러가 늘었다
  • ✔️ 스레드 수 급증/락 경합 증가 → 컨텍스트 스위칭/스케줄링 비용 증가

핵심 요약

한 번에 정리

✅ 핵심 요약

  • ✔️ 커널은 OS의 핵심으로 자원(CPU/메모리/I-O)을 중재하고 시스템을 안정적으로 유지한다.
  • ✔️ 유저 코드는 직접 커널 기능을 실행할 수 없고, 시스템 콜로 요청해 커널이 처리한다.
  • ✔️ 커널 이슈는 대개 커널 자체보다 I/O 폭증/페이지 폴트/스레드 과다 같은 시스템 상태에서 발생한다.
  • ✔️ 실무에서는 지연(p95), FD/네트워크 에러, 스레드/락 경합을 함께 보고 “어느 계층이 병목인지”를 판단한다.
728x90