스물두줄

정보관리기술사 · 개념서 · 클라우드 및 인프라

UNIX 시스템 호출

설명 영상 UNIX 시스템 호출 · 2:44

왜 배우는가: 시스템 호출은 프로그램이 파일, 프로세스, 장치 같은 자원을 다루는 모든 경로의 출발점이라 정보관리기술사 시험에서 프로그램 해석 문제와 구조 설명 문제로 반복해서 나온다. 실무에서는 서버 성능 분석, 권한 문제, 장애 원인 추적을 할 때 시스템 호출 단위로 동작을 봐야 하므로 이 구조를 정확히 알아야 한다.

출제 이력: 제102회 2교시 6번, 제102회 3교시 6번, 제96회 3교시 2번, 제89회 3교시 4번

1. 한 줄 정의와 핵심 키워드

답안 첫 줄 정의: 시스템 호출은 응용 프로그램이 커널의 서비스를 요청할 때 사용자 모드에서 커널 모드로 전환해 수행하는 커널 진입 인터페이스이다.

이 정의에는 세 가지가 들어 있다. 요청하는 주체가 응용 프로그램이라는 점, 수행 주체가 커널이라는 점, 그리고 권한 수준이 바뀌는 점이다. 답안에서 이 세 가지를 빠뜨리면 감점된다.

핵심 키워드

  • 시스템 호출(System Call)
  • 사용자 모드(User Mode)
  • 커널 모드(Kernel Mode)
  • 트랩(Trap)
  • 라이브러리 함수(Library Function)
  • fork 시스템 호출
  • exec 시스템 호출
  • 링크 카운트(Link Count)

2. 개념 풀이

쉬운 말로 하면 시스템 호출은 프로그램이 운영체제에게 대신 처리해 달라고 부탁하는 창구다. 파일을 만들거나 새 프로세스를 띄우는 일은 하드웨어와 자료구조를 직접 건드려야 하므로 응용 프로그램이 혼자서는 할 수 없다.

정식 정의는 다음과 같다. 시스템 호출은 운영체제 커널이 제공하는 서비스에 응용 프로그램의 요청에 따라 접근하기 위한 인터페이스이다. 고급 언어로 작성된 프로그램은 보통 C 라이브러리 함수를 통해 시스템 호출을 쓰며, 라이브러리 함수가 내부에서 시스템 호출을 실행한다.

핵심 용어를 풀면 다음과 같다.

  • 사용자 모드(User Mode): 응용 프로그램이 실행되는 낮은 권한 영역이다. 하드웨어를 직접 제어하거나 다른 프로세스의 메모리에 접근할 수 없다.
  • 커널 모드(Kernel Mode): 운영체제 커널이 실행되는 최고 권한 영역이다. 하드웨어 제어, 프로세스 스케줄링, 장치 접근을 모두 수행한다.
  • 트랩(Trap): 프로그램이 시스템 호출을 위해 의도적으로 일으키는 소프트웨어 인터럽트다. 트랩을 받은 CPU는 커널 모드로 바뀌고 커널의 해당 서비스 루틴으로 분기한다.

시스템 호출은 사용자 모드에서 트랩을 거쳐 커널 모드로 전환해 커널 서비스를 수행한다.

호출 과정은 다음 순서로 진행된다.

  • 응용 프로그램이 라이브러리 함수(예: link, fork)를 호출한다.
  • 라이브러리는 호출 번호와 인수를 정해진 레지스터나 스택에 넣고 트랩을 일으킨다.
  • CPU가 커널 모드로 전환되고 커널은 호출 번호로 서비스 루틴을 찾는다.
  • 커널이 파일 시스템이나 프로세스 관리 루틴을 수행하고 결과를 반환한다.
  • 실패하면 -1을 반환하고 오류 번호를 errno에 기록한다. 호출 프로세스는 사용자 모드로 복귀한다.

UNIX의 시스템 호출은 기능별로 나눠 설명하는 것이 답안 작성에 편하다. 프로세스 제어에는 fork, exec, wait, exit가 있고, 파일 관리에는 open, read, write, close, link, unlink가 있다. 장치 관리, 정보 유지, 통신 호출도 같은 구조로 동작한다.

3. 등장 배경과 필요성

응용 프로그램이 하드웨어를 직접 제어할 수 있다고 가정하면 문제가 생긴다. 여러 프로그램이 같은 디스크 블록이나 메모리 영역을 동시에 고치면 데이터가 깨진다. 한 프로그램의 잘못된 포인터 하나가 시스템 전체를 멈추게 할 수도 있다.

이 문제를 막기 위해 운영체제는 권한을 나눴다. 커널은 하드웨어 전체 권한을 가지고, 응용 프로그램은 사용자 모드에서만 실행된다. 응용 프로그램이 자원을 쓰려면 검증된 시스템 호출 함수를 거쳐야 하므로 자원 보호가 가능해진다. 다른 응용 프로그램의 영역을 침범하는 일을 커널이 중간에서 막을 수 있다.

이어지는 내용

로그인하면 하루 5페이지까지 무료로 전체를 읽을 수 있습니다.

앱에서 이 단원 읽기