본문 바로가기

TEAM STUDY/한 권으로 읽는 컴퓨터 구조와 프로그래밍

context switch (문맥교환) 이란 ?

728x90
반응형

context switch ( 문맥교환 ) 이란 ?

 

멀티프로세스 환경에서 CPU가 어떤 하나의 프로세스를 실행하고 있는 상태에서 

인터럽트 요청에 의해 다음 우선 순위의 프로세스가 실행되어야 할 때 

 

기존의 프로세스의 상태 또는 레지스터 값(Context)을 저장하고 CPU가 다음 프로세스를 수행하도록 

새로운 프로세스의 상태 또는 레지스터 값(Context)를 교체하는 작업을 Context Switch(Context Switching)라고 한다.

 


 

 Context Switching - 인터럽트(Interrupt)

 

인터럽트는 CPU가 프로그램을 실행하고 있을 때 

실행중인 프로그램 밖에서 예외 상황이 발생하여 처리가 필요한 경우 

CPU에게 알려 예외 상황을 처리할 수 있도록 하는 것을 말한다.

 

아래와 같은 인터럽트 요청시 Context Swiching 발생.

  •  I/O request (입출력 요청할 때)
  • time slice expired (CPU 사용시간이 만료 되었을 때)
  • fork a child (자식 프로세스를 만들 때)
  • wait for an interrupt (인터럽트 처리를 기다릴 때)

 


 

 Context Switching - 멀티 태스킹( Multitasking )

 

실행 가능한 프로세스들이 운영체제의 스케줄러에 의해 조금씩 번갈아가며 수행되는 것을 말한다.

번갈아 가며 프로세스가 CPU를 할당 받는데 이때 Context Switching 한다.

사용자가 체감하기 힘든 속도로 Context Switching되며 프로세스가 처리되기 때문에 동시에 처리되는 것처럼 느껴진다.

 


 

⚫ Context Switching - 사용자와 커널 모드 전환 ( User and kernel mode switching )

 

사용자와 커널 모드 전환은 Context Switch가 필수는 아니지만 운영체제에 따라 발생할수 있다.

 


 

728x90
반응형