System call, 시스템 콜

minjun kim·2025년 4월 29일

시스템콜의 종류에 대해 이야기해 주세요.

시스템 콜은 사용자 프로그램이 운영체제의 서비스를 요청할 때 사용하는 인터페이스입니다. 종류는 크게 다섯가지로 나눌 수 있습니다.

  1. 프로세스 관리 시스템콜 fork() , exec(), exit()
    프로세스의 생성 종료

  2. 파일 관리 시스템 콜 open(), read(), write(), close()
    파일 생성하고 조작

  3. 장치 관리 시스템 콜 ioctl()
    하드웨어 장치 제어

  4. 통신 시스템 콜 pipe(), socket()
    프로세스간 통신 지원

  5. 정보 유지 보호 getpid()가 있습니다.

서로 다른 시스템 콜을 어떻게 구분하나요 ?

서로 다른 시스템 콜은 기능과 대상에 따라 구분하는데

예를 들어 fork는 프로세스 생성및 실행 흐름 제어하는 프로세스 관리
read write는 파일이나 장치에서 데이터를 읽고 쓰는 기능
파일 관리 시스템콜입니다.
이렇게 각 시스템 콜은 어떤 자원을 다루는지와 어떤 기능을 수행하는지에 따라 분류됩니다.

함수 호출과 시스템 콜의 차이

함수호출은 내부 사용자 프로그램 내에서 정의된 코드를 실행하는 것이고 시스템콜은 커널에 서비스를 요청하는 매커니즘.

가장 큰 차이점은 실행되는 영역
함수 호출은 사용자 모드에서 실행, 시스템콜은 커널 모드로 전환되어 실행한다.

시스템 콜 없이도 프로그램을 실행할 수 있나요?

실제로는 시스템 콜 없이 프로그램을 완전히 실행하는 것은 불가능하다.
이유는 사용자 프로그램이 메모리 접근, 파일 I/O 등 하드웨어에 접근해서 수행할 수 없기 때문이다.
우리가 사용하는 C라이브러리 print()도 내부적으로 시스템 콜을 감싸고 있어서 보이지 않지만 사용하는 것이므로
시스템 콜 없이 프로그램을 제대로 실행하는 것은 현실적으로 어렵다.

profile
배움의 흔적을 남기고 싶습니다.

0개의 댓글