본문 바로가기
CS/운영체제

[운영체제 OS] System Call

by 루시킴 2021. 8. 18.

System Call이란?

운영체제에서 실행될 동작을 사용자 프로세스가 요청할 수 있게 해주는 것으로, 사용자 모드에서 커널 모드로 진입하게 해주는 함수같은 개념이다. 그렇다면, 사용자 모드와 커널 모드는 무엇인가?

 

운영체제는 자원 보호(Protection) 목적으로 Dual-Mode Operation을 한다. 즉, 사용자 모드(User mode)커널 모드(Kernel mode) 2가지로 나누어 관리한다.

 

사용자 모드

말 그대로 우리가 사용하는 것으로, 프로세스 실행 등 간단한 명령은 할 수 있다. 하지만, I/O나 Memory와 같은 프로그램의 자원 접근이나 어떠한 특권을 가지는 명령어 사용에는 제한이 있다.

 

커널 모드

사용자 모드와 달리 모든 자원에 접근 및 명령어 사용이 가능하다. 컴퓨터 내부의 모든 행동이 가능하기 때문에 "Protection" 차원에서 사용자 모드와 분리된 것이다. 

 


System Call 과정

1. 프로세스가 System Call 호출

2. Trap() 발생하여 하던 일 멈추고 상태 저장 후 커널 모드 진입

3. 요청받은 작업 수행

4. 작업 끝나면 User mode로 돌아와 하던 작업 이어서 진행

 

 

댓글