🎈Context Switch란?
컨텍스트 스위치는 CPU가 한 작업에서 다른 작업으로 전환하는 프로세스를 의미한다.
다중 작업 환경에서 여러 프로세스 또는 스레드를 교차로 실행하여 시스템의 활용도를 높이기 위해 사용된다.
✨작동 원리
- 현재 상태 저장: 현재 실행 중인 프로세스의 상태(레지스터, 프로그램 카운터 등)를 저장한다.
- 다음 상태 복원: 다음에 실행할 프로세스의 상태를 불러와 복원한다.
- 제어권 전환: CPU의 제어권을 새로운 프로세스로 전환하여 실행을 시작한다
✨성능 영향
- 오버헤드: 컨텍스트 스위치는 추가적인 오버헤드를 발생시킨다. 빈번한 스위치는 성능에 부정적인 영향을 미칠 수 있다.
- 시스템 부하: 다수의 프로세스나 스레드가 경쟁적으로 CPU를 요청할 경우, 컨텍스트 스위치가 빈번하게 발생하여 시스템 부하를 초래할 수 있다.
✨Context Switch 최적화
- 스레드 풀 활용: 스레드 풀을 통해 스레드의 재사용을 통해 컨텍스트 스위치를 최적화할 수 있다.
- 커널 모드 감소: 사용하지 않는 시간에는 커널 모드를 최소화하여 오버헤드를 줄일 수 있다.
🎆컨텍스트 스위치와 프로그래밍
- 비동기 프로그래밍: 비동기적인 작업을 활용하여 블로킹을 최소화하고, 컨텍스트 스위치를 효율적으로 관리할 수 있다.
- 스레드 관리: 스레드의 수와 관리를 효율적으로 조절하여 오버헤드를 최소화한다.