CPU가 현재 작업중인 프로세스에서 다른 프로세스로 넘어갈 때, 이전의 프로세스 정보를 PCB에 저장하고 새롭게 실행할 프로세스의 정보를 PCB에서 읽어와 레지스터에 적재하는 과정을 말한다.
CPU 가 프로세스를 실행시키기 위해 필요한 정보들을 Context 라 한다.
프로세스가 메모리에 올라가 실행 될 때 CPU 내에 존재하는 레지스터들이 현재 실행중인 프로세스 관련 데이터로 채워지게 되고 실행중인 프로세스가 변경되면 CPU 내의 레지스터 값들이 변경된다.
P0
와 관련된 정보들을 PCB 에 저장함P1
에 대한 정보를 해당 PCB 에서 가져와 CPU 레스터에 적재함실행 가능한 여러개의 프로세스들이 운영체제의 스케쥴러에 의해, 우선순위에 따라 조금씩 번갈아가면서 수행된다. CPU를 할당 받는 프로세스가 변경될 때 마다 컨텍스트 스위칭이 일어난다.
컴퓨터 시스템에서 예외 상황이 발생했을 때 이를 CPU 에게 알려 실행중이던 프로세스 정보를 저장하고 발생한 예외 상황을 처리하기 위한 컨텍스트 스위칭이 일어난다.
운영체제가 프로세스를 제어하기 위해 정보(CPU 레지스터 값들)를 저장해 놓는 곳으로 프로세스의 상태 정보를 저장하는 구조체이다. 프로세스 생성시 PCB 가 만들어지며 주기억장치에 저장되다가 프로세스가 완료되면 PCB도 함께 제거된다.
운영체제에 따라 PCB 에 담기는 정보는 조금씩 다르지만 일반적으로는 다음과 같은 정보들이 담겨있다.
페이징, 세그멘테이션 활용 시
CPU는 논리 주소로 프로그램이 설정한대로 연속적인 주소값으로 명령 -> 이는 각 프로세스의 PCB 에 저장되어 있는 페이지 테이블/ 세그먼트 테이블 -> 페이지/세그먼트의 실제 메모리 주소(물리 주소)로 변경됨!
운영체제는 빠르게 PCB 에 접근하기 위해서 프로세스 테이블을 사용해 각 프로세스의 PCB 를 관리하고 PCB 는 연결 리스트 방식으로 관리된다. 프로세스가 생성, 삭제될 때 PCB 의 삽입 삭제가 용이하다.
[운영체제] Context Switch(문맥 교환)이란?
프로세스 제어 블록 (PCB: Process Control Block) 알아보기
[운영체제] PCB와 Context Switching