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로 돌아와 하던 작업 이어서 진행
'CS > 운영체제' 카테고리의 다른 글
[운영체제 OS] Process vs Thread (2) | 2021.08.21 |
---|---|
[운영체제 OS] CPU Scheduling (0) | 2021.08.21 |
[운영체제 OS] Process Scheduler (0) | 2021.08.18 |
[운영체제 OS] Process / PCB / Context Switch (0) | 2021.08.18 |
[운영체제 OS] Introduction (0) | 2021.08.18 |
댓글