[CS기초] Context Switching(문맥 교환) 핵심 정리

2025. 5. 9. 21:38·크래프톤 정글/CS기초(키워드, 개념정리)

Context Switching(문맥 교환) 핵심 정리

이번 글에서는 운영체제에서 여러 작업(프로세스나 스레드)을 동시에 다루기 위해 필수적으로 수행되는 Context Switching의 개념과 흐름을 정리해보려고 하는데요. 이를 통해 멀티태스킹 환경에서 CPU가 어떻게 여러 작업을 번갈아 처리하는지를 이해하는 것이 목표입니다.

 

 

Context Switching이란?

Context Switching(문맥 교환)이란 CPU가 현재 실행 중인 작업(Process 또는 Thread)의 상태(Context)를 저장하고, 다음 실행할 작업의 상태로 전환하는 과정을 말하는데요. 즉 CPU가 A 작업을 잠시 멈추고 B 작업을 실행할 수 있게 하는 과정입니다.

 

 

Context(문맥)의 구성 요소

  • 레지스터 값 (PC, SP 등)
  • Program Counter: 다음에 실행할 명령어 주소
  • Stack Pointer: 함수 호출/리턴용 스택 위치
  • CPU 상태 레지스터
  • 페이지 테이블 등 메모리 관리 정보 (프로세스의 경우)

 

Context Switching의 동작흐름

Context Switching은 다음과 같은 단계로 이루어집니다.

  1. 현재 프로세스의 context 저장
  2. 다음 실행할 프로세스의 context 불러오기
  3. CPU 제어권 전환

이 과정이 운영체제 내부에서는 다음과 같이 수행됩니다.

[현재 스레드 실행 중]
      ↓
[인터럽트 or 스케줄링 발생]
      ↓
[현재 context 저장]
      ↓
[다른 스레드 context 복원]
      ↓
[다른 스레드 실행]

 

 

Context Switching의 필요성

  • 멀티태스킹 구현
    • 하나의 CPU로 여러 작업을 번갈아 실행
  • I/O 블로킹 해결
    • 대기 중인 작업 대신 다른 작업 수행
  • 선점형 스케줄링
    • 우선순위 높은 작업에 CPU를 할당

 

Context Switching의 비용과 주의사항

  • 비용 발생
    • Context 저장/복원은 CPU 시간 소모
  • 캐시 손실
    • CPU 캐시 무효화로 인한 성능 저하
  • 과도한 Switching
    • 오히려 병목 발생 가능

 

마치면서

Context Switching은 OS가 멀티태스킹을 지원하기 위한 핵심 기술인데요. Context Switching은 필연적이지만, 너무 자주 발생하게 되면 캐시 미스와 오버헤드로 인해 전체 시스템 성능을 갉아먹게 됩니다. 따라서 스케줄링, 캐시 관리, CPU 바인딩 등 다양한 측면에서 전환 비용을 줄이는 최적화가 필수적이지요. 빠른 전환은 멀티태스킹을 만들지만, 잦은 전환을 병목을 만든다는 점을 꼭 기억하시길 바랍니다.

저작자표시 비영리 변경금지 (새창열림)

'크래프톤 정글 > CS기초(키워드, 개념정리)' 카테고리의 다른 글

[CS기초] 9주차 개념정리  (0) 2025.05.13
[CS기초] Multi-Level Feedback Queue Scheduler (MLFQS)  (0) 2025.05.09
[CS기초] Deadlock(데드락)  (0) 2025.05.09
[CS기초] Race Condition, 동시성 버그의 핵심 원인  (0) 2025.05.09
[CS기초] Semaphore와 Mutex, 동시성 제어의 핵심 도구  (0) 2025.05.09
'크래프톤 정글/CS기초(키워드, 개념정리)' 카테고리의 다른 글
  • [CS기초] 9주차 개념정리
  • [CS기초] Multi-Level Feedback Queue Scheduler (MLFQS)
  • [CS기초] Deadlock(데드락)
  • [CS기초] Race Condition, 동시성 버그의 핵심 원인
그냥사람_
그냥사람_
IT 관련 포스팅을 합니다. 크래프톤 정글 8기 정경호
  • 그냥사람_
    그냥코딩
    그냥사람_
  • 전체
    오늘
    어제
    • 글 전체보기 N
      • 크래프톤 정글 N
        • 로드 투 정글(입학시험)
        • CS기초(키워드, 개념정리)
        • 컴퓨터구조(CSAPP)
        • Code 정글(C언어)
        • Equipped in 정글(나만무) N
        • 마이 정글(WIL, 에세이) N
      • 자료구조&알고리즘
        • 자료구조
        • 알고리즘
      • 일상
  • 블로그 메뉴

    • 홈
  • 링크

    • Github
  • hELLO· Designed By정상우.v4.10.3
그냥사람_
[CS기초] Context Switching(문맥 교환) 핵심 정리
상단으로

티스토리툴바