운영체제(OS)/keyword

(Project1-Threads) 컨텍스트 스위칭(Context Switching)

스탠딩 2023. 12. 15. 14:34

Context Switching(컨텍스트 스위칭)은 컴퓨터 시스템에서 실행 중인 프로세스나 스레드를 변경하는 프로세스이다. 이는 다양한 상황에서 발생하며, 프로세스 또는 스레드 간에 현재 상태 및 실행 정보를 저장하고 복원하는 과정을 포함한다. 컨텍스트 스위칭은 주로 다음과 같은 상황에서 발생한다.

 

출처 : https://www.javatpoint.com/what-is-the-context-switching-in-the-operating-system

  1. 프로세스 스케줄링: 여러 프로세스가 CPU를 사용하려고 경쟁할 때, 스케줄러에 의해 현재 실행 중인 프로세스를 중지하고 다른 프로세스를 실행하는 과정이 컨텍스트 스위칭이다.
  2. 인터럽트 처리: 하드웨어나 소프트웨어에서 발생하는 인터럽트에 응답하기 위해 현재 실행 중인 작업을 중단하고 인터럽트 서비스 루틴을 실행하는 것이 컨텍스트 스위칭이다.
  3. 시스템 호출 및 예외 처리: 프로세스가 시스템 호출이나 예외 상황에 직면하면, 해당 처리를 위해 현재 상태를 저장하고 관련된 코드를 실행하는데, 이러한 과정이 컨텍스트 스위칭이다.

컨텍스트 스위칭은 운영체제의 핵심 기능 중 하나로, 시스템이 효율적으로 여러 작업을 처리하고 프로세스 간에 공정하게 CPU를 나누어 사용할 수 있도록 한다. 컨텍스트 스위칭은 시스템 성능에 영향을 미칠 수 있으므로 효율적으로 수행되어야 한다. 각 프로세스나 스레드의 상태 정보를 저장하고 복원하는 데는 시간이 소요되므로, 이를 최소화하고 빠르게 수행하는 것이 중요하다.