시스템 콜

System Call : 운영 체제의 커널이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스

시스템 콜

  • 사용자 모드 : 하드웨어에 직접 접근 불가능 (시스템 보호 목적)
  • 커널 모드 : 모든 시스템 메모리와 CPU에 접근 가능, 하드웨어에 직접 접근 가능

→ 사용자 모드에서 커널 모드로 전환하기 위해 필요한 인터페이스 ⇒ 시스템 콜



작동

  1. 사용자 프로세스가 시스템 콜 → 커널 모드 진입
  2. 커널: 내부적으로 시스템 콜 구분하기 위해 기능 별로 고유번호 할당하고 해당 번호의 제어 루틴 정의
  3. 커널: 요청 받은 시스템 콜에 대응하는 번호 확인하고 해당 서비스 루틴 호출
  4. 커널: 서비스 루틴 처리하고 사용자 모드로 전환




유형

프로세스 제어

프로세스 실행, 생성, 대기 등

  • fork() : child 프로세스 생성
  • exec() : 프로그램 실행
  • wait() : 대기
  • exit() : 현재 프로세스 종료



파일 조작

파일 열기, 읽기, 쓰기, 닫기 등

  • open() : 열기
  • create() : 생성
  • delete() : 삭제
  • read() : 읽기
  • write() : 쓰기
  • close() : 닫기



장치 관리

디바이스 부착, 분리, 읽기, 쓰기

  • ioctl() : 장치 제어
  • read() : 읽기
  • write() : 쓰기



정보 유지

시간/날짜 설정

  • getpid() : get 프로세스 ID
  • alarm() : 일정 시간 후 alarm 시그널 전달
  • sleep() : 지정 시간 만큼 대기



통신

통신 연결 생성, 제거, 상태 정보 전달

  • pipe() : 내부 통신을 위한 채널 생성
  • shm_open() : 공유 메모리 객체를 생성 후에 해당 객체에 접근할 수 있는 파일 디스크립터 반환
  • mmap() : 메모리 특정 공간에 파일 매핑



보호

  • chmod() : 파일 권한 변경
  • umask() : 새로 생성되는 파일 권한 제한
  • chown() : 파일 소유자 변경




references
👉 https://c4u-rdav.tistory.com/85