본문 바로가기
Server

Context Switching이란?

by Taron 2022. 8. 7.

Context Switching 이란?

멀티프로세스 환경에서 CPU가 하나의 프로세스를 작업중인 상황에서 인터럽트의 요청에 의한 CPU에서 작업중인 프로세스의 상태 값을 PCB 에 저장해 새로운 프로세스의 상태를 적재 하는 것을 의미합니다.

이해를 돕기위해 만든 사진입니다

 

PCB

Context Switching은 PCB라는 메모리 공간에 프로세스 상태값은 저장하고, 해당값들을 찾는 방법으로 구현됩니다.

 

PCB에 저장되는 내용

  • Process ID(PID)
  • 레지스터 값(PC,SP등)
  • Scheduling info(프로세스 상태)
  • Memory info(메모리 사이즈),전체 프로세스 사이즈 등

 

Context Switching 은 언제 일어날까?

  1. I/O request (입출력 요청할 때)
  2.  
    time slice expired (CPU 사용시간이 만료 되었을 때)
  3.  
    fork a child (자식 프로세스를 만들 때)

 

Context Switching 은 왜 필요할까

  •  멀티 프로세싱,멀티 쓰레딩을 통해 빠른 속도로 응답할 수 있기 때문입니다.
  • 우선순위가 높은 프로세스가 현재 프로세스를 중지시키고 CPU를 차지하는 선점형 프로세스 방식이기 때문에 높은 우선순위를 가진 프로세스들이 빠른 처리가 요구되는 시스템에서 유용하기 때문입니다.

댓글