더북(TheBook)

▲ 그림 1-4 시스템 콜의 호출 구조

시스템 콜을 사용해 프로세스 제어, 파일 조작, 장치 관리, 데이터의 유지 보수, 통신, 보호를 할 수 있다. 시스템 콜의 대표적인 예로는 프로세스를 생성하는 fork(), 부모 프로세스가 자식 프로세스의 수행을 기다리는 wait() 등이 있다.

하나 더 알기 icon_onemore

시스템 콜에서 커널에 매개변수를 전달하는 방법은 3가지다.

1. 매개변수를 CPU의 레지스터에 직접 전달하는 방식이다. 단, 이 방식은 매개변수의 개수가 레지스터의 개수보다 많은 경우에 문제가 될 수 있어서 권장하지 않는다.

2. 매개변수를 메모리에 저장한 후 메모리의 주소 값을 레지스터에 저장하는 방식이다.

3. 매개변수를 프로그램의 스택(stack)에 push하고 OS에서 pop해 매개변수를 전달하는 방식이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.