시스템 콜
System Call : 운영 체제의 커널이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스
- 사용자 모드 : 하드웨어에 직접 접근 불가능 (시스템 보호 목적)
- 커널 모드 : 모든 시스템 메모리와 CPU에 접근 가능, 하드웨어에 직접 접근 가능
→ 사용자 모드에서 커널 모드로 전환하기 위해 필요한 인터페이스 ⇒ 시스템 콜
작동
- 사용자 프로세스가 시스템 콜 → 커널 모드 진입
- 커널: 내부적으로 시스템 콜 구분하기 위해 기능 별로 고유번호 할당하고 해당 번호의 제어 루틴 정의
- 커널: 요청 받은 시스템 콜에 대응하는 번호 확인하고 해당 서비스 루틴 호출
- 커널: 서비스 루틴 처리하고 사용자 모드로 전환
유형
프로세스 제어
프로세스 실행, 생성, 대기 등
- 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