3월 14일-컨텍스트 스위칭

Yullgiii·2024년 3월 14일
0
post-thumbnail

컨텍스트 스위칭 상세 과정

컨텍스트 스위칭(Context Switching)은 운영 체제가 한 프로세스(또는 스레드)에서 다른 프로세스로 CPU의 제어를 전환하는 과정을 말합니다. 이 과정에서 시스템은 현재 실행 중인 프로세스의 상태를 저장하고, 다음에 실행될 프로세스의 상태를 복원합니다. 컨텍스트 스위칭은 멀티태스킹 환경에서 필수적인 메커니즘으로, 시스템의 공정성과 효율성을 유지하는 데 중요한 역할을 합니다.

컨텍스트 스위칭의 주요 단계:

1. 상태 저장 (Save State)

  • 현재 실행 중인 프로세스의 컨텍스트를 PCB(Process Control Block)에 저장한다.
  • 이 컨텍스트에는 CPU 레지스터 상태, 프로그램 카운터, 스택 포인터, 프로세스 상태 정보 등이 포함된다.

2. 상태 복원 (Restore State)

  • 다음에 실행할 프로세스의 PCB에서 필요한 컨텍스트 정보를 읽어온다.
  • CPU 레지스터, 프로그램 카운터, 스택 포인터 등을 새 프로세스의 정보로 업데이트한다.

3. 실행 전환 (Switch Execution)

  • 업데이트된 컨텍스트로 CPU를 설정한 후, 새 프로세스의 실행을 시작한다.
  • 스케줄러가 다음에 실행할 프로세스를 결정하며, 이는 스케줄링 알고리즘에 따라 달라진다.

4. 오버헤드

  • 컨텍스트 스위칭은 실행 준비 과정에서 오버헤드를 발생시킨다.
  • 빈번한 컨텍스트 스위칭은 시스템의 성능 저하를 일으킬 수 있다.

5. 시스템 효율성 증가

  • 컨텍스트 스위칭을 통해 다수의 프로세스가 CPU 시간을 공유하며, 시스템의 자원 사용 효율성과 반응성을 높일 수 있다.

컨텍스트 스위칭의 중요성:

컨텍스트 스위칭은 운영 체제의 핵심 기능 중 하나로, 프로세스들이 CPU를 공유하며 실행될 수 있게 한다. 이 과정을 통해 사용자는 여러 프로그램이 동시에 실행되는 것처럼 경험할 수 있다. 하지만 컨텍스트 스위칭에는 오버헤드가 발생하기 때문에, 효율적인 스케줄링 알고리즘을 사용하여 최적의 성능을 달성해야 한다.

profile
개발이란 무엇인가..를 공부하는 거북이의 성장일기 🐢

0개의 댓글