일반적인 프로그램들은 사용자 모드에서 실행되므로 커널 모드에 대한 직접적인 접근이 불가능하다. 하지만 커널에 접근할 수 없으면 사용자 모드의 프로세스들이 파일을 쓰거나 불러올 수 없고 그래픽 처리와 같은 거의 모든 작업을 할 수 없다. 따라서 커널에 요청하여 커널 모드에서 처리하고 그 결과를 사용자 모드의 응용 프로그램에게 전달하는 것이 바로 시스템 콜이다. 시스템 콜은 프로그램의 거의 모든 코드의 실행에서 발생하며 파일 생성이나 쓰기 또는 읽기, 키보드 입력, 그래픽 출력, 스레드 생성 및 제어 같은 것도 시스템 콜을 통해 커널에 요청하여 커널 모드에서 처리한다. 

 

- 시스템 호출 또는 간단히 시스콜(syscall) 이라도 불린다.

- 운영 체제의 커널이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스이다.

- 응용 프로그램에서 커널의 서비스를 사용하는 방법

- 프로그래밍 언어에서 지원하지 않는 기능에 대하여 운영 체제의 루틴을 호출하여 이용하는 것

 

시스템 호출의 세 가지 기능

1. 사용자 모드에 있는 응용 프로그램이 커널의 기능을 사용할 수 있도록 한다.

2. 시스템 호출을 하면 사용자 모드에서 커널 모드로 바뀐다.

3. 커널에서 시스템 호출을 처리하면 커널 모드에서 사용자 모드로 돌아가 작업을 계속한다.

 

예를 들어

실행 중인 프로그램(응용프로그램)에 있는 함수가 아닌 커널에 있는 함수(파일 생성이나 쓰기 또는 읽기)를 호출할 때 사용되는 방법

 

시스템콜은 운영 체제의 커널이 제공하는 서비스에 프로그램이 접근할 수 있게 해주는 인터페이스

 

참고 자료

'컴퓨터 공학 > 운영체제' 카테고리의 다른 글

[ OS ] 세마포어 와 뮤텍스  (0) 2024.06.19
[OS] 경쟁상태 (Race Condition)  (1) 2024.06.19
[ OS ] 문맥교환 (context switch)  (0) 2024.06.18

+ Recent posts