▲ 그림 1-4 시스템 콜의 호출 구조
시스템 콜을 사용해 프로세스 제어, 파일 조작, 장치 관리, 데이터의 유지 보수, 통신, 보호를 할 수 있다. 시스템 콜의 대표적인 예로는 프로세스를 생성하는 fork(), 부모 프로세스가 자식 프로세스의 수행을 기다리는 wait() 등이 있다.
하나 더 알기
시스템 콜에서 커널에 매개변수를 전달하는 방법은 3가지다.
1. 매개변수를 CPU의 레지스터에 직접 전달하는 방식이다. 단, 이 방식은 매개변수의 개수가 레지스터의 개수보다 많은 경우에 문제가 될 수 있어서 권장하지 않는다.
2. 매개변수를 메모리에 저장한 후 메모리의 주소 값을 레지스터에 저장하는 방식이다.
3. 매개변수를 프로그램의 스택(stack)에 push하고 OS에서 pop해 매개변수를 전달하는 방식이다.