• 카테고리

    질문 & 답변
  • 세부 분야

    취업 · 이직

  • 해결 여부

    미해결

Context Switching은 언제 발생하나요?

22.05.09 16:23 작성 조회수 230

1

강의 잘 듣고 있습니다!! 궁금한 점이 하나 생겨 여쭤봅니다!

프로세스 간 context switching과 스레드 간 context switching이 비용도 다르고 조금 다르게 동작하는 것 같은데요.

각각 어느 경우에 발생하는 건지가 궁금합니다! 프로세스 스레드 구분없이 CPU 배분 시간?이 끝나면 발생하게 되는건가요?  

답변 1

답변을 작성해보세요.

1

안녕하세요 JS님

 

아래와 같이 3개의 쓰레드가 실행되고 있다고 가정을 해볼게요.

A 프로세스의 1, 2 쓰레드

B프로세스의 3 쓰레드

 

CPU가 하나뿐이라 하나의 쓰레드밖에 실행을 할 수 없는 상황입니다.

1 -> 3 -> 2 -> 1 -> 2 -> 3 -> 2 -> 1 

 

이런순서로 context switching이 발생한다고 해보면 분홍색 부분이 프로세스간 context switching,  초록색부분이 쓰레드간 context switcing이겠죠! 

1 -> 3 -> 2 -> 1 -> 2 -> 3 -> 2 ->

 

 

즉, 프로세스 스레드 구분없이 cpu scheduling에 의해 (예를들어 CPU 배분시간이 끝난경우) context switch가 발생하고, 어느 쓰레드에서 어느 쓰레드로 변경되냐에 따라서 프로세스 context switching이냐 쓰레드 context switcing이냐가 결정되는 것 뿐입니다.

 

 

질문에 대한 답이 됐을까요!?

 

 

 

luca님의 프로필

luca

질문자

2022.05.10

넵 감사합니다!