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