인프런 커뮤니티 질문&답변

luca님의 프로필 이미지
luca

작성한 질문수

기출로 대비하는 개발자 전공면접 [CS 완전정복]

Q. multi process와 multi thread를 비교설명해 주세요. (외 2문제)

Context Switching은 언제 발생하나요?

작성

·

453

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
질문자

넵 감사합니다!

luca님의 프로필 이미지
luca

작성한 질문수

질문하기