OS 커널

주영·2023년 9월 5일
0

IT Infra

목록 보기
8/16
post-thumbnail

커널

  • OS의 심장 · 뇌 · 척수
  • OS의 본질
  • 커널 자체 = OS의 '인프라'
  • 역할 : 뒤에서 무슨 일이 벌어지는지 은폐하면서도 편리한 인터페이스를 제공하는 것
  • 커널 때문에 개발자는 하드웨어나 다른 애플리케이션에 끼치는 영향을 의식하지 않고 개발할 수 있음
  • 커널을 통해 OS 처리가 이루어짐

커널의 6가지 역할

1) 시스템 콜 인터페이스 - 프로세스나 스레드로부터 명령을 받는 인터페이스
2) 프로세스 관리 - 가동되고 있는 프로세스 관리, CPU 이용 우선순위 등을 '스케줄'함
3) 메모리 관리 - 서버상의 메모리를 단위 크기의 블록으로 분할해서 프로세스에 분할
4) 네트워크 스택 - (나중)
5) 파일시스템 관리
6) 장치 드라이버 - NIC, HBA, 디스크 등의 물리 장치와 작업

1) 시스템 콜 인터페이스

  • 프로세스/스레드에서 커널로 연결되는 인터페이스
  • 애플리케이션이 OS를 통해 어떤 처리를 하고싶으면 '시스템 콜'이라는 명령을 이용해서 커널에 명령을 내림. 이때, 명령이 인터페이스를 통해 전달됨
    ≒ 은행의 접수 창구
  • ex) 디스크상의 데이터를 읽고 싶을 때, 네트워크 통신을 하고 싶을 때, 새로운 프로세스를 생성하고 싶을 때
    → 해당 시스템 콜 호출 ⇒ 기능 이용
  • 데이터 I/O와 네트워크 I/O 모두 프로세스 관점에서는 동일한 '시스템 콜'

2) 프로세스 관리

  • OS의 가장 중요한 기능
  • OS상에서는 수십 ~ 수천 개의 프로세스 가동 가능
  • 물리서버 CPU 코어 제한적
    ⇒ 언제, 어떤 프로세스가 어느 정도의 CPU 코어를 이용할지, 처리 우선순위를 어떻게 결정할 것인지 등 관리
  • 스케줄 관리

3) 메모리 관리

  • 메모리 영역 관리
  • 프로세스 관리는 CPU 코어 고려, 메모리 관리는 물리 메모리 공간의 최대치 고려
  • 프로세스가 이용하는 독립 메모리 공간 확보
  • 상호 간의 참조 영역을 지키기 위해 독립성 관리
  • 이 기능이 없으면 각 프로세스는 다른 프로세스가 사용하고 있는 메모리 영역 범위를 파악해야함

4) 네트워크 스택 ··· (나중)

5) 파일시스템 관리

  • 파일시스템용 인터페이스 제공
  • 파일시스템 : OS 기능의 하나. 물리 디스크에 제공된 데이터를 관리
    • 물리 디스크에 기록된 데이터 = 숫자의 집합 (ex. 01011110...)
      → 파일시스템을 통해 애플리케이션은 '파일' 단위로 데이터 작성/삭제
      ⇒ 프로세스/스레드는 모든 것을 '파일' 단위로 생각 (편리성)
      = 프로세스는 물리 디스크 구조나 데이터 배치 상태를 의식할 필요 X
  • 주요 관리 기능 : 디렉토리(폴더) 구조 제공, 액세스 관리, 고속화, 안정성 향상 등

6) 장치 드라이버

  • 디스크나 NIC 등의 물리 장치용 인터페이스 제공
  • ex) NIC · 디스크 ~ 다수의 제조사가 독자 제품 제공 → 각각에 대응하는 애플리케이션 개발 = 비현실적
    커널은 장치 드라이버를 이용해서 그 아래의 물리 장치를 은폐
    ⇒ 각 장치 제조사가 OS에 대응하는 장치 드라이버를 제공 → 해당 OS의 표준 장치로서 커널을 경유해 이용

커널 설계 및 구현 방식

  • 모놀리식(Monolithic) 커널 vs 마이크로(Micro) 커널
  • 현재 대부분의 아키텍처는 양쪽의 '장점'을 취하고 있음
    ex) 리눅스에서는 '커널 모듈'을 이용해서 기능 추가 가능 ⇒ 마이크로 커널의 특징도 포함 가능

출처 : 야마자키 야스시 외 3, 「그림으로 공부하는 IT 인프라 구조」, 제이펍

0개의 댓글