본문 바로가기

개발이야기

system call이란?

OS는 크게 커널모드와 사용자모드로 나뉘어 집니다.

 

- 커널모드 : 모든 시스템 메모리 접근 가능. 모든 CPU명령 실행 가능

- 사용자모드 : 사용자 애플리케이션 실행. 하드웨어 직접 접근 불가. System call 호출시 일시적으로 커널모드로 전환.

 

커널영역의 기능을 사용자모드가 접근하게 도와주는 기능을 System call이라고 부릅니다..

 

System call을 사용하는 이유?

가장 큰 이유는 유저 애플리케이션(ex. 우리가 흔히 개발하여 실행하는 자바 애플리케이션)이 운영체제의 치명적인 데이터를 수정/삭제하는 권한을 막기 위해서 입니다. 직접적인 하드웨어 요청이나 기타 시스템요청은 OS가 제공하는 System call을 통해 호출하도록 제공해줍니다.

 

만약 유저 애플리케이션이 System call을 호출하여 사용하면, 해당 애플리케이션은 커널모드로 잠시 전환되는 작업을 거치게 됩니다.

 

System call 유형

프로그래밍 언어에서 지원하지 않고 운영체제를 통해 사용해야하는 기능의 종류는 아래와 같습니다.

- 프로세스 제어

- 파일 조작

- 장치 관리

- 정보 유지

- 통신