Thread Context Switching vs Process Context Switching

2020. 5. 5. 01:20OS

이전 글에서 thread와 Process의 차이에 대해 공부했습니다. 이전 글에서 Thread Context Switching과 Process Context Switching는 속도에서 차이가 난다고 말씀 드렸습니다. 근데 왜 속도에서 차이가 날까 궁금해서 찾아본 결과를 정리하려고 합니다.

[OS] - Thread, process

 

Thread, process

https://www.geeksforgeeks.org/difference-between-process-and-thread/ Difference between Process and Thread - GeeksforGeeks A Computer Science portal for geeks. It contains well written, well thought..

hoony-gunputer.tistory.com

 

https://stackoverflow.com/questions/5440128/thread-context-switch-vs-process-context-switch

 

Thread context switch Vs. process context switch

Could any one tell me what is exactly done in both situations? What is the main cost each of them?

stackoverflow.com

https://agh2o.tistory.com/12

 

[Context Switching] 프로세스와 쓰레드에서의 컨텍스트 스위칭

* 프로세스란? 실행파일을 클릭했을 때, 메모리(RAM)할당이 이루어지고, 이 메모리공간으로 코드가 올라간다. 이 순간부터 이 프로그램은 '프로세스'라 불리게 된다. * 프로세스의 스케줄링? CPU는 하나인데, 동시..

agh2o.tistory.com

thread switch와 process switch의 주된 차이점은 thread switching 중에는 가상 메모리 공간이 동일하게 남고 반면 process switch의 경우에는 그러지 못합니다. 두 타입 모두 컨텍스트 스위칭 수행을 운영체제 커널에게 제어권을 넘겨줍니다. 컨텍스트 스위칭을 하는 과정에서 os kernel을 들어갔다 나오는 것과 레지스터를 전환하는 비용은 가장 큰 고정 값입니다. 

 

그리고 process context switch의 경우 프로세서의 캐싱 메카니즘 때문에 복잡해진다. 기본적으로 context switch를 할 때 프로세서 캐쉬에 기억되는 모든 메모리 주소는 사실상 쓸모 없어집니다. 여기서 가장 큰 차별점은 가상 메모리 공간, 프로세서의 TLB, 이와 동등한 기능이 초기화되어 메모리 접근이 더 오래 걸리게 됩니다. 하지만 thread ContextSwitching의 경우 이러한 일이 발생하지 않습니다. 



요약

한마디로 쓰레드는 프로세스의 자원을 공유하여 사용하고 프로세스가 바뀌지 않는 이상 데이터가 그대로 남아있기 때문에 그대로 가져다가 쓰면되지만 

 

프로세스가 변경되게 되면 cache의 정보, 가상 메모리, TLB등의 정보가 모두 지워지기 때문에 데이터 접근하는데 오래걸린다.

'OS' 카테고리의 다른 글

프로세스 동기화  (0) 2020.09.11
CPU 스케줄링  (0) 2020.09.09
스레드  (0) 2020.09.07
컴퓨터 OS 프로세스  (0) 2020.09.05
Thread, process  (0) 2020.05.04