CS

4. 운영체제 - 커널과 시스템 콜

ljheayeee 2024. 3. 4. 23:08

커널(kernel): OS의 핵심 요소, 중요한 역할 수행

  • 컴퓨터 하드웨어와 프로세스의 보안
  • 자원 관리
    • CPU 스케줄링
    • 메모리 관리
    • 입출력 관리
    • 파일 시스템 관리
  • 하드웨어 추상화

 

커널의 위치

 


운영체제는 커널에서 관리하는 중요 자원에 사용자가 쉽게 접근하지 못하도록 커널 모드사용자 모드로 나눈다.

커널모드

  • 하드웨어에 직접 접근
  • 메모리, CPU 같은 자원 사용

사용자모드

  • 커널 모드의 자원에 접근할 수 없게 제한을 둠
  • 사용자 모드에서 실행된 프로세스가 자원에 접근하려면 시스템 콜을 호출해 커널에 요청해야 함

 

시스템 콜: 사용자 모드에서 커널 모드에 접근해 필요한 기능을 수행할 수 있게 하는 시스템 함수

  • 커널은 시스템 콜로 받은 요청을 처리한 후 다시 시스템 콜로 결과 값을 반환
  • 시스템콜을 사용하여 가능한 것들
    • 프로세스 제어
    • 파일 조작
    • 장치 관리
    • 데이터의 유지 보수
    • 통신
    • 보호
  • 대표적인 예
    • fork() : 프로세스 생성
    • wait() : 부모 프로세스가 자식 프로세스의 수행을 기다리는 것

 

시스템 콜의 호출 구조


시스템 콜에서 커널에 매개변수를 전달하는 방법

  • 매개변수를 CPU의 레지스터에 직접 전달하는 방식
    • 이 방식은 매개 변수의 개수가 레지스터의 개수보다 많은 경우에 문제가 될 수 있어 권장하지 않음
  • 매개변수를 메모리에 저장한 후 메모리의 주소 값을 레지스터에 저장하는 방식
  • 매개변수를 프로그램의 스택에 push하고 OS에서 pop해 매개변수를 전달하는 방식