컨텍스트 스위칭
컨텍스트 스위칭(context switching)
- 멀티태스킹 환경에서 한 프로세스(또는 스레드)의 실행을 중지하고 다른 프로세스(또는 스레드)를 실행하기 시작할 때 발생하는 과정
- 컨텍스트 스위칭을 통해 시스템은 여러 프로세스나 스레드가 공유 자원, 특히 CPU를 효율적으로 활용
컨텍스트 스위칭의 주요 단계
- 현재 프로세스의 상태 저장: 현재 실행 중인 프로세스의 상태(컨텍스트)를 저장합니다. 이 컨텍스트에는 프로세스의 프로그램 카운터, 레지스터 값, CPU의 상태 정보, 메모리 관리 정보 등이 포함됩니다.
- 다음 프로세스의 상태 복구: 스위칭 대상인 다음 프로세스의 컨텍스트를 메모리로부터 복구하고 CPU에 로드합니다.
- 프로세스 실행: 복구된 프로세스의 실행을 시작합니다.
컨텍스트 스위칭 발생 이유
- 시간 할당 종료: 프로세스에 할당된 시간 할당(타임 슬라이스)이 종료되었을 때
- 자원 대기: 프로세스가 필요한 자원(예: I/O, 메모리 등)을 기다릴 때
- 우선 순위 변경: 더 높은 우선 순위의 프로세스가 실행 준비 상태가 되었을 때
- 인터럽트나 예외 처리: 인터럽트 발생 또는 예외 처리를 위해 특정 서비스 루틴을 실행할 때
참고
- ChatGPT-4.0
보완/복습
- 2023.10.10 복습