[Operating System] Context Switching

Kim Hyen Su·2024년 5월 29일

👾 CS

목록 보기
5/5
post-thumbnail

Context Switching에 대해 알아보자

Context Switching

CPU(프로세서)에서 실행 중이던 스레드가 다른 스레드로 교체되는 것을 말합니다. 이 때, 스레드는 하나의 프로세스 안 또는 다른 프로세스 간의 스레드일 수 있습니다.

여기서 Context란, 프로세스와 스레드의 상태를 의미하며, CPU, 메모리의 상태 등을 의미합니다.

발생

  • CPU 스케줄러에 의해 정해진 작업 시간이 다됐을 때 발생합니다.
  • 인터럽트 발생으로 인해 CPU가 작업을 멈출 때 발생합니다.
  • 우선순위로 인한 선점이 있는 경우 발생합니다.

Context Switching 과정

컨텍스트 스위칭은 OS의 커널에 의해서 실행됩니다.

  • 커널 모드로 전환됩니다.
  • CPU의 register 상태교체 됩니다.
    • 스위칭 전 기존 스레드의 레지스터 상태를 저장해야 다음 작업 시에 어디까지 실행되었는지 등의 상태 정보를 기억하여 해당 부분부터 작업 진행이 가능합니다.

Process Context Switching vs. Thread Context Switching

위에서 언급한대로 스레드가 어떤 프로세스에 속하는지에 따라서 스위칭 과정이 달라집니다.

  • Process Context Switching : 기존의 프로세스가 아닌 다른 프로세스 내 스레드로 스위칭하는 과정을 말합니다.

  • Thread Context Switching : 동일한 프로세스 내에서 다른 스레드 간의 스위칭하는 과정을 말합니다.

profile
백엔드 서버 엔지니어

0개의 댓글