Context Switching(컨텍스트 스위칭)은 컴퓨터 시스템에서 실행 중인 프로세스나 스레드를 변경하는 프로세스이다. 이는 다양한 상황에서 발생하며, 프로세스 또는 스레드 간에 현재 상태 및 실행 정보를 저장하고 복원하는 과정을 포함한다. 컨텍스트 스위칭은 주로 다음과 같은 상황에서 발생한다.
- 프로세스 스케줄링: 여러 프로세스가 CPU를 사용하려고 경쟁할 때, 스케줄러에 의해 현재 실행 중인 프로세스를 중지하고 다른 프로세스를 실행하는 과정이 컨텍스트 스위칭이다.
- 인터럽트 처리: 하드웨어나 소프트웨어에서 발생하는 인터럽트에 응답하기 위해 현재 실행 중인 작업을 중단하고 인터럽트 서비스 루틴을 실행하는 것이 컨텍스트 스위칭이다.
- 시스템 호출 및 예외 처리: 프로세스가 시스템 호출이나 예외 상황에 직면하면, 해당 처리를 위해 현재 상태를 저장하고 관련된 코드를 실행하는데, 이러한 과정이 컨텍스트 스위칭이다.
컨텍스트 스위칭은 운영체제의 핵심 기능 중 하나로, 시스템이 효율적으로 여러 작업을 처리하고 프로세스 간에 공정하게 CPU를 나누어 사용할 수 있도록 한다. 컨텍스트 스위칭은 시스템 성능에 영향을 미칠 수 있으므로 효율적으로 수행되어야 한다. 각 프로세스나 스레드의 상태 정보를 저장하고 복원하는 데는 시간이 소요되므로, 이를 최소화하고 빠르게 수행하는 것이 중요하다.
'운영체제(OS) > keyword' 카테고리의 다른 글
(Project2-User Programs) 유저 모드와 커널 모드(User mode vs Kernel mode) (0) | 2023.12.15 |
---|---|
(Project1-Threads) 멀티 레벨 피드백 큐(MLFQS) (0) | 2023.12.15 |
(Project1-Threads) 데드락(Deadlock) (0) | 2023.12.15 |
(Project1-Threads) 경쟁 상태(Race Condition) (0) | 2023.12.15 |
(Project1-Threads) 세마포어와 뮤텍스(Semaphore, Mutex) (0) | 2023.12.15 |