콘텐츠로 이동

시스템 콜 인터페이스 (System-call Interface)

Jan 25, 2026

운영체제가 제공하는 시스템 콜에 대한 연결 역할을 하는 인터페이스로, API의 함수 호출을 가로채서 운영체제 내의 필요한 시스템 콜을 호출한다.

런타임 환경(Runtime Environment)은 특정 프로그래밍 언어로 작성된 응용 프로그램을 실행하는 데 필요한 전체 소프트웨어 모음이다.

  • 구성 요소: 컴파일러나 인터프리터, 라이브러리, 로더 등
  • 역할: 시스템 콜 인터페이스를 제공
1 API 호출
사용자 응용 프로그램이 API 함수 호출 (예: open())
2 인터페이스
시스템 콜 인터페이스가 호출을 가로챔
3 테이블 조회
해당 시스템 콜 번호를 찾아 커널의 구현을 호출
4 반환
시스템 콜 실행 후 상태를 반환

일반적으로 각 시스템 콜에는 번호가 연관되며, 시스템 콜 인터페이스는 이 번호에 따라 인덱싱된 테이블을 유지한다.

방법설명
레지스터가장 간단한 접근법. 매개변수를 레지스터에 전달
블록/테이블매개변수가 레지스터보다 많을 때, 메모리의 블록에 저장하고 블록 주소를 레지스터에 전달
스택프로그램이 매개변수를 스택에 push하고 운영체제가 pop

Linux 접근법: 5개 이하의 매개변수는 레지스터 사용, 5개 초과 시 블록 방법 사용

  • 호출자는 시스템 콜이 어떻게 구현되었는지 알 필요 없음
  • API를 따르고 시스템 콜 실행 결과로 운영체제가 무엇을 할지만 이해하면 됨
  • 운영체제 인터페이스의 대부분의 세부사항은 API에 의해 프로그래머로부터 숨겨지고 RTE에 의해 관리됨
  • 장점:
    • 구현 세부사항이 프로그래머로부터 숨겨짐
    • API만 따르면 시스템 콜을 사용할 수 있음
  • 단점: 추상화 계층으로 인한 약간의 오버헤드 존재 가능
  • Operating System Concepts, 10th Edition, Chapter 2, p.64-66