system call이란?

김영석·2023년 3월 22일
0

system call이란?

시스템 콜(System Call)은 운영체제 커널이 제공하는 서비스를 사용하기 위해 애플리케이션이 커널에게 요청하는 인터페이스이다. 즉, 시스템 콜을 통해 애플리케이션은 운영체제의 기능을 호출할 수 있다.

시스템 콜은 애플리케이션이 하드웨어와 직접적으로 상호작용하는 것을 막아 시스템의 안정성과 보안을 보장한다. 시스템 콜은 다양한 운영체제 기능에 접근할 수 있는 인터페이스를 제공하며, 이를 이용하여 파일 입출력, 메모리 관리, 프로세스 관리 등 다양한 작업을 수행할 수 있다.

시스템 콜을 사용하는 예시로는 C언어의 "printf()" 함수가 있는데, "printf()" 함수는 문자열을 출력하는 함수이지만, 실제로는 시스템 콜을 통해 운영체제가 제공하는 파일 입출력 기능을 사용한다.

시스템 콜은 커널 모드에서 실행되며, 애플리케이션은 유저 모드에서 실행된다. 시스템 콜을 호출하면 커널 모드로 전환되어 커널에서 요청된 작업을 처리하고, 처리 결과를 애플리케이션에게 반환한다.

시스템 콜은 운영체제의 핵심 기능 중 하나이며, 운영체제를 이해하는 데 있어서 중요한 개념이다.

커널이란?

운영체제 중 항상 필요한 부분만을 전원이 켜짐과 동시에 메모리에 올려놓고, 그렇지 않은 부분은 필요할 때 메모리에 올려서 사용하게 된다. 이때 메모리에 상주하는 운영체제의 부분을 Kernel(커널)이라고 한다.

즉 커널은 메모리에 상주하는 부분으로써 운영체제의 핵심적인 부분을 뜻한다( 보통은 ‘운영체제’라고 하면 Kernel을 뜻하기도 한다)

CPU모드

CPU는 사용자 애플리케이션이 시스템을 손상시키는 것을 방지하기 위해 2가지 모드를 제공한다.

CPU에 있는 Mode bit로 모드를 구분하여 0은 ‘커널모드’ 1은 ‘사용자모드’로 나눠어서 구동된다. 운영체제에서 프로그램이 구동되는데 있어서 파일을 읽어오거나, 파일을 쓰거나, 화면에 메세지를 출력하는 등 많은 부분이 커널 모드를 사용한다.

  • 사용자 모드(User Mode)
    • 사용자 모드에서 사용자 애플리케이션 코드가 실행된다. 사용자가 접근할 수 있는 영역에 제한이 있기 때문에 해당 모드에서는 하드웨어(디스크, I/O등)에 접근할 수 없다. 접근을 위해서는 시스템 콜(System Call)을 사용해야한다.
  • 커널 모드(Kernel Mode)
    - 운영체제(OS)가 CPU를 사용하는 모드이다. 시스템 콜을 통해 커널모드로 전환이 되면 운영체제는 하드웨어를 제어하는 명령어를 실행한다.
profile
백엔드 개발자

0개의 댓글