사용자 프로세스가 소프트웨어 인터럽트를 통해 커널의 기능을 이용하기 위한 서비스를 요청하는 하나의 방법
- 커널 : 운영체제 중 항상 필요한 부분만을 전원이 켜짐과 동시에 메모리에 올려놓는다. 이때 메모리에 상주하는 운영체제의 부분
- 사용자 프로세스가 시스템 콜 호출(커널 모드 진입)
- 커널이 내부적으로 시스템 콜을 구분하기 위해 기능별로 고유번호를 할당하고 제어 루틴 정의
- 요청받은 시스템 콜에 대응하는 고유번호 확인, 서비스 루틴 호출
- 서비스 루틴을 처리하고 사용자 모드로 전환
-
커널 모드 : 운영체제가 CPU를 사용하는 모드. 시스템 콜을 통해 커널모드로 전환이 되면 운영체제는 하드웨어를 제어하는 명령어를 실행, 이는 사용자 모드에서 실행되면 exception이 발생
-
사용자 모드 : 사용자 애플리케이션 코드가 실행됨, 하드웨어(디스크, I/O등)에 접근할 수 없다.
- 우리가 일반적으로 사용하는 유저레벨의 프로그램은 유저레벨의 함수들만으로 많은 기능을 구현하기 힘듦
- 커널의 도움이 필요
- 커널에 관련된 작업은 반드시 커널모드로 전환하여 수행되어야 함
- 커널 모드를 통한 작업은 반드시 시스템 콜을 통해 수행하도록 설계되어 있음
크게 5가지로 분류된다
종류 | 유형 |
---|---|
프로세스 제어(Process Control) | 끝내기, 중지 적재, 실행 프로세스 생성/제거 프로세스 속성 획득/설정 시간 대기 사건 대기 메모리 할당/해제 |
파일 조작(File Manipulation) | 파일 생성/삭제 열기/닫기 읽기/쓰기/위치변경 파일속성 획득/설정 |
디바이스 조작(Deivce Manipulation) | 장치 요청/해제 장치 읽기/쓰기/위치 변경 속성 설정 |
정보 유지(Information Maintenance) | 시간, 날짜 설정/요청 |
보호(Protection) | 권한 관리 |