컨텍스트 스위칭(Context Switching)이란 운영체제(중에 커널)가 CPU를 한 프로세스(또는 스레드)에서 다른 프로세스로 전환할 때 수행하는 일련의 작업을 지칭합니다.
1. 현재 실행중인 컨텍스트 저장
: 프로세스의 레지스터 상태(프로그램 카운터, 스택 포인터, 일반 레지스터 등)를 PCB(Process Control Block)에 저장하고, 메모리 맵, 우선순위 정보 등 스케줄러가 필요로 하는 기타 상태 정보를 보존합니다.
2. 새로 실행할 컨텍스트 로드
: 스케쥴러가 선택한 대상 프로세스의 PCB에서 저장된 레지스터 상태를 복원합니다. 이후 해당 프로세스의 메모리 맵을 활성화(페이지 테이플 전환 등)한 뒤 권한 모드(user/Kernel), 스택 포인터 등 실행 환경을 재구성합니다.
3. CPU 제어권 이전
: 복원된 상태에서 바로 다음 명령어를 실행하여 프로세스가 수행되도록 합니다.
컨텍스트 스위칭이 존재해야 멀티 테스킹이 가능하며, 프로세스 간 공정한 자원 분배(우선순위를 통해)를 실시할 수 있고 실시간으로 프로세스의 요구에 응답할 수 있습니다.
-> OS 스케쥴러가 CPU를 점유할 스레드를 결정할 때 발생하며 레지스터, 스택, 프로그램 카운트 등 저장/복원하는 과정이 필요하다.
'컴퓨터과학 > 시스템' 카테고리의 다른 글
| [CS] 메모리(Memory) (0) | 2025.03.21 |
|---|---|
| [CS] 시스템 콜(System Call) (0) | 2025.03.21 |
| [CS] 프로세스와 스레드(멀티 프로세스, 멀티 스레드까지) (0) | 2025.03.21 |
| [CS] 메모리 단편화 (0) | 2025.03.21 |
| [CS] 캐시 적중률 (0) | 2025.03.17 |