3월 15일 -컨텍스트 스위칭 상세 설명

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

컨텍스트 스위칭 상세 설명

컨텍스트 스위칭은 운영 체제가 한 프로세스 또는 스레드에서 다른 프로세스 또는 스레드로 CPU 제어권을 전환하는 과정이다. 이 과정은 시스템의 멀티태스킹을 가능하게 하며, 프로세스와 스레드 간에 일어나는 컨텍스트 스위칭에는 몇 가지 차이점이 있다.

프로세스와 스레드의 컨텍스트 스위칭 차이

프로세스 컨텍스트 스위칭

  • 프로세스 간 컨텍스트 스위칭은 보다 많은 정보를 저장하고 복원해야 한다. 프로세스마다 독립된 메모리 공간을 가지기 때문이다.
  • 저장해야 할 정보에는 CPU 레지스터 상태, 프로그램 카운터, 사용자 및 커널 모드 스택 포인터, 메모리 관리 정보 등이 포함된다.
  • 프로세스 간 전환은 시스템 자원을 많이 소모하며 상대적으로 느리다.

스레드 컨텍스트 스위칭

  • 스레드 간 컨텍스트 스위칭은 동일한 프로세스 내에서 이루어지기 때문에 더 가볍다. 스레드는 메모리 공간을 공유한다.
  • 스레드별로 저장 및 복원해야 할 정보에는 CPU 레지스터 상태, 프로그램 카운터, 스택 포인터 등이 있다.
  • 메모리 주소 공간의 변경이 없으므로, 프로세스 간 전환보다 빠르다.

컨텍스트 스위칭 시 정보 저장 형식

  • 컨텍스트 스위칭 시 기존 프로세스 또는 스레드의 정보는 PCB(Process Control Block)에 저장된다.
  • PCB는 프로세스 식별자(PID), 프로세스 상태, 프로그램 카운터, CPU 레지스터 값, CPU 스케줄링 정보, 메모리 관리 정보, I/O 상태 정보 등을 포함한다.

컨텍스트 스위칭 발생 시기

컨텍스트 스위칭은 다음과 같은 상황에서 발생할 수 있다:

  1. 멀티태스킹: 운영 체제의 스케줄러가 공정한 CPU 시간 분배를 위해 프로세스 또는 스레드 간 전환을 수행한다.
  2. I/O 요청 처리: 프로세스가 I/O 작업을 요청하고 그 작업이 완료될 때까지 기다리는 동안, 다른 프로세스로 전환한다.
  3. 인터럽트 처리: 하드웨어 인터럽트 또는 소프트웨어 인터럽트가 발생했을 때, 해당 인터럽트를 처리하기 위해 현재 실행 중인 프로세스에서 다른 프로세스로 전환한다.
  4. 멀티프로세싱: 멀티코어 프로세서 환경에서 각 코어가 동시에 다른 프로세스를 실행하기 위해 컨텍스트 스위칭을 수행한다.

컨텍스트 스위칭은 시스템의 멀티태스킹과 공정한 자원 분배를 가능하게 하는 핵심 메커니즘이지만, 오버헤드가 발생하기 때문에 효율적인 스케줄링이 필요하다.

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

0개의 댓글