[OS] Context Switching(문맥교환)

HenryHong·2022년 7월 29일
0
post-custom-banner

1. 문맥교환

하나의 프로세스가 CPU를 사용 중인 상태에서 다른 프로세스가 CPU를 사용하도록 하기 위해, 이전의 프로세스의 상태(문맥)를 보관하고 새로운 프로세스의 상태를 적재하는 작업

프로세스의 문맥(context)은 PCB에 저장된다. 인터럽트(interrupt)가 발생하면 시스템은 현재 수행 중인 프로세스의 문맥을 저장하고, 이후 해당 프로세스가 재개될 때 복원한다.

즉, 문맥교환이란
1. CPU 코어를 다른 프로세스로 교환
2. 현재 프로세스의 상태를 저장
3. 다른 프로세스의 상태를 복원하는 작업(task)를 말한다.

문맥교환시점 

  • 멀티태스킹
  • 인터럽트 핸들링
  • 사용자 모드와 커널 모드 간의 전환 

2. 오버헤드 (Overhead) 

어떤 처리를 하기 위해 들어가는 간접적인 처리 시간 · 메모리 등을 말한다.
예를 들어 A라는 처리를 단순하게 실행한다면 10초 걸리는데, 안전성을 고려하고 부가적인 B라는 처리를 추가한 결과 처리시간이 15초 걸렸다면, 오버헤드는 5초가 된다. 또한 이 처리 B를 개선해 B'라는 처리를 한 결과, 처리시간이 12초가 되었다면, 이 경우 오버헤드가 3초 단축되었다고 말한다

3. 문맥교환과 오버헤드 

문맥을 교환하는 동안에는 유용한 작업을 수행할 수 없기 때문에, 문맥 교환 시간은 일종의 오버헤드라고 할 수 있다.
복잡 명령어 집합 컴퓨터(Complex Instruction Set Computer, CISC)와 축소 명령어 집합 컴퓨터(Reduced Instruction Set Computer, RISC, 리스크)는 각각 장단점이 있는데, 문맥교환 측면에 보면 RISC의 경우 레지스터의 용량이 CISC보다 상대적으로 크기 때문에 좀 더 큰 오버헤드가 발생한다.

출처

https://oizys.tistory.com/14

profile
주니어 백엔드 개발자
post-custom-banner

0개의 댓글