시스템콜 (System Call)

lsjoon·2024년 2월 21일
0

CS & PROGRAMMING

목록 보기
13/15

시스템콜, 시스콜 (Syscall)


응용 프로그램이 여러 이유로 커널에 접근하고자 할 때, 운영체제가 제공하는 인터페이스

즉, 프로그래밍 언어에서 지원하지 않는 기능에 대하여 운영 체제의 루틴을 호출하여 이용하는 것

통상 직접 시스템콜을 사용하기 보다는, API(라이브러리 함수)를 통해 사용함

원리

CPU는 응용 프로그램이 시스템을 임의로 조작하여 손상시키는 것을 방지하기 위해 두 가지 모드를 제공함

사용자 모드
- 제한된 메모리 영역에 접근 가능, 하드웨어 접근 불가
커널 모드
- 시스템 메모리, CPU 명령, 하드웨어에 직접 접근 가능

  1. 사용자 모드에서 시스템 콜을 호출 시, 제어권한이 커널 모드로 넘어감
  2. 커널은 요청받은 시스템 콜에 대해 처리 후, 다시 제어권한을 사용자 모드에게 전달
  3. 사용자 모드는 반환받은 결과물과 권한을 가지고 계속 프로세스 실행

유형

  • 프로세스 제어 (Process Control)
    - 끝내기(exit), 중지(abort), 적재(load), 실행(execve), 프로세스 생성(fork) 등
  • 파일 조작 (File Mainpulation)
    - 파일 생성 및 삭제(create, delete), 열기(open), 닫기(close), 읽기(read), 쓰기(write) 등
  • 장치 관리 (Device Management)
    - 하드웨어의 제어와 상태 정보 얻음 (ioctl), 장치 요구(request device), 장치 방출(release device)
  • 정보 유지 (Information Maintenance)
    - getpid(), alarm(), sleep(), time(), date() 등
  • 통신 (Communication)
    - pipe(), shm_open(), mmap(), 상태 정보 전달 등
  • 보호 (Protection)
    - chmod(), umask(), chown()
profile
중요한 것은 꺾여도 그냥 하는 마음

0개의 댓글