CS

[CS] 운영체제의 핵심인 커널과 시스템 콜

chandlerxx 2024. 4. 20. 16:21

운영체제의 핵심, 커널

  • Application과 컴퓨터 부품간 연결
  • Apllication 실행에 필요한 여러가지 핵심 서비스 제공 (리소스 접근, 관리, 보안 등)

출처 : 위키백과 커널

 

 

커널 서비스

  • `프로세스 관리`
    - 실행중인 프로그램 = 프로세스 라 하는데요. 작업 관리자를 통해 실행중인 프로그램을 확인할 수 있습니다.
    - 다양한 프로세스를 관리합니다.
    (IO 주로 사용하는 프로세스, CPU만 사용하는 프로세스, 당장 실행가능한 프로세스, 당장 실행 불가능 프로세스 등) 

프로세스

 

  • `리소스 접근 및 할당`
    - 프로세스에 필요한 리소스 할당
    • CPU : CPU 스케쥴링에 따라 관리
    • 메모리 : 동적 메모리할당, 가상메모리 할당 등 (자세한 내용은 향후 정리 예정)
    • 입출력장치 : 인터럽트 서비스 루틴 제공 (하드웨어 인터럽트 요청시)
  • `파일시스템 관리`
    - 폴더 관리

 

 

이중모드

CPU가 명령어를 실행하는 모드를 크게 두가지로 구분합니다.

  • `커널 모드` : 운영체제 서비스를 제공받는 모드
    - CPU는 하드웨어 리소스에 접근가능 → 모든 명령어 실행가능

  • `사용자 모드` : 운영체제 서비스를 제공받지 못하는 모드
    - CPU는 하드웨어 리소스에 접근불가→ 모든 명령어 실행불가
    - 만약, 리소스에 접근하고 싶은 경우 사용자모드에서 커널모드로 전환 필요함 → `시스템콜`

 

 

시스템 콜

아래 사이클이 반복되면서 응용 프로그램이 실행됩니다.

  • 사용자 모드에서 시스템 콜 호출시, 커널모드로 전환 → 커널이 제공하는 서비스 사용가능
  • 커널 모드에서 리소스 관련 명령어를 실행함으로써 리소스에 접근
  • 리소스 접근 종료 후, 다시 사용자 모드로 돌아옴

 

출처

교보문고 혼공컴운