Context Swtching을 통해 이해하는 프로세스와 스레드, 코루틴의 차이
·
CS
동시성 프로그래밍을 다루다 보면 Context Switching(문맥 교환)이라는 용어를 자주 접하게 된다. OS는 하나의 CPU 코어에서 여러 작업을 동시에 처리하는 것처럼 보이기 위해 실행 중인 작업의 상태를 저장하고 다른 작업으로 전환하는 과정을 반복하는데, 이를 Context Switching이라 한다. 특히 현대 안드로이드 개발 환경에서는 빼놓을 수 없는 코루틴이 “경량 스레드”로 불릴 수 있는 이유 또한 전통적인 스레드의 Context Switching 비용을 어떻게 다루는지와 깊은 관련이 있다. 이 글에서는 Context Switching이 무엇인지, 프로세스와 스레드, 코루틴의 문맥 교환 방식의 차이점을 중심으로 차이점을 살펴보려 한다. 프로세스프로그램을 실행하면 OS는 해당 실행 파일을 ..