쓰레드가 context-switching 시 덜 부담되는 이유를 모르겠습니다.
빠른 이유로 생각하기 쉬운 것들을 나열해보자면
1. 쓰레드는 프로세스와 다르게 스택 외 메모리 영역을 공유한다.
-> 그러나 context switching 발생 시 커널 스택에 저장하는 것은 레지스터 값들이라고 생각하기 때문에, 즉 쓰레드도 독립된 실행흐름을 갖기 때문에 프로세스와 달리 생략되는 부분이 없다고 느껴집니다.
2. 캐시 메모리를 효과적으로 사용할 수 있기에
-> cache affinity를 최적화하기 위한 것은 쓰레드/프로세스가 아닌 서비스를 받았던 프로세서에게 다시 서비스를 받느냐가 중요하다고 생각해서 이또한 이유가 될 수 없다고 생각합니다.
좀 더 극명하게 빠르기의 차를 보여주는 이유를 알고 싶습니다.
틀린 부분은 지적해주시고 답변 부탁드립니다!