
CPU/코어에서 실행 중이던 프로세스/스레드가 다른 프로세스/스레드로 교체되는 것
프로세스나 스레드의 현재 상태를 의미
운영체제나 여러 프로세스나 스레드를 효율적으로 관리하기 위한 정보들이며, 다음과 같은 요소들이 포함
1. CPU 레지스터 상태: 현재 실행중인 프로세스의 레지스터에 저장된 값
2. 프로세스 상태: 프로세스가 실행중인지, 대기중인지, 중단되었는지
3. 프로그램 카운터: 다음에 실행할 명령어의 주소를 저장
4. 메모리 관리 정보: 페이지 테이블이나 세그먼트 테이블과 같은, 프로세스의 메모리 사용 정보 포함
5. 입출력 상태 정보: 파일 디스크립터 등 프로세스와 관련된 입출력 자원에 대한 정보

프로세스 1,2가 번갈아가면서 실행되고 있는데, 매우 짧은 시간동안 번갈아 실행되면서 동시에 실행되는 것 처럼 보이게 된다.
이러한 컨텍스트 스위칭은 OS의 커널(Kernel)에 의해서 수행되며, 다른 프로세스끼리의 스위칭인지 같은 프로세스의 스레드들끼리의 스위칭인지로 구분된다.
커널 모드에서 실행
커널모드?: 어느 프로세스가 실행되다가 하드웨어와 밀접한 일들 혹은 컴퓨터의 여러 리소스들을 다뤄야하는 상황이 발생하면 프로세스가 직접 컴퓨터 리소스에 접근하는 것이 아니라 운영체제(커널)을 통해서 접근하게 된다. 이때, 프로세스에서 커널로 통제권이 넘어가서 커널에 의해서 실행되는 상태
CPU의 레지스터 상태를 교체
다른 프로세스(B)가 실행되면 실행되고 있던 프로세스(A)의 레지스터 상태들을 어딘가에 저장하고 다른 프로세스가 실행된다.
다시 A프로세스 실행시, 그때 상태 정보들을 가져와서 실행