컨텍스트 스위칭이란?
사전적 정의 (Dictionary Definition)
컨텍스트 스위칭(Context Switching)은 운영체제가 현재 CPU를 점유하여 실행 중인 프로세스 또는 스레드의 상태(Context)를 저장하고, 다음 순서로 실행될 프로세스의 상태를 복원하여 교체하는 과정을 의미합니다. 이는 멀티태스킹 운영체제에서 CPU가 여러 개의 작업을 마치 동시에 수행하는 것처럼 보이게 하기 위한 핵심 메커니즘입니다. 구체적으로는 프로세스 제어 블록(PCB)에 레지스터 값, 프로그램 카운터, 스택 포인터 등의 정보를 기록하고 불러오는 작업을 포함합니다.
실무 사용 예시 (Practical Use Case)
전통적인 시스템 모니터링 방식은 사용자 공간(User Space)에서 동작하는 에이전트가 커널 공간(Kernel Space)의 데이터를 복사해 오는 과정에서 빈번한 컨텍스트 스위칭을 유발합니다. 특히 대규모 트래픽을 처리하는 환경에서는 이러한 전환 과정에서 발생하는 오버헤드가 시스템 성능 저하의 원인이 됩니다. 이를 해결하기 위해 eBPF와 같은 기술은 커널 내부에서 직접 데이터를 처리함으로써 사용자 공간과 커널 공간 사이의 전환 횟수를 줄여 컨텍스트 스위칭 비용을 최소화하고 성능을 최적화합니다.
관련 단어 (Related Words)
- PCB (Process Control Block): 프로세스의 상태 및 실행 정보를 저장하기 위해 운영체제가 관리하는 자료 구조입니다.
- 오버헤드 (Overhead): 컨텍스트 스위칭 시 CPU가 실제 작업을 수행하지 않고 상태 저장 및 복원을 위해 소모하는 시간과 자원을 의미합니다.
- 멀티태스킹 (Multitasking): 하나의 CPU가 여러 작업을 번갈아 가며 수행하여 동시에 실행되는 것과 같은 효과를 내는 방식입니다.