본문 바로가기

[100일의 IT 초보 탈출] #41 Context Switching _ 컴퓨터는 어떻게 여러 작업을 동시에 할까?

@Prof.SSong2025. 5. 24. 20:24
728x90
반응형

오늘은 무엇을 배우게 될까요?

 

여러분이 컴퓨터로 유튜브를 보면서 웹 브라우저에서 검색도 하고, 워드 문서도 작성할 수 있는 이유는 컴퓨터가 여러 작업을 빠르게 번갈아가며 처리하고 있기 때문이에요.

 

그런데 정말로 동시에 작업하는 걸까요?

아니면 “하나씩 빠르게 바꾸며 실행하는 걸 우리가 동시에처럼 느끼는 걸까요?”

 

오늘은 이 질문에 대한 해답인 문맥 교환(Context Switching)의 개념을 알아보고,

CPU가 여러 작업을 효율적으로 처리하는 비밀을 함께 파헤쳐봅시다!

 


 

문맥(Context)이란 무엇일까?

 

문맥(Context)은 프로세스나 스레드가 실행 중인 상태에 대한 모든 정보입니다.

즉, 그 프로세스가 뭘 하고 있었는지 기억하는 정보들이에요.

 

 

문맥의 구성 요소

 

  • CPU 레지스터 정보 (예: 계산 도중의 숫자들)
  • 프로그램 카운터 (어디까지 실행했는지 위치)
  • 스택 포인터, 메모리 상태, 입출력 상태 등

 


 

 

Context Switching(문맥 교환)이란?

 

문맥 교환 CPU가 실행하던 작업을 멈추고, 다른 작업으로 전환하는 과정을 말합니다.

이때 이전 작업의 상태(문맥)를 저장하고, 다음 작업의 상태를 불러옵니다.

 

 

왜 필요할까?

 

  • 컴퓨터는 동시에 여러 작업을 처리하는 것처럼 보이지만, 실제로는
  • 한 순간에 하나의 프로세스/스레드만 실행 가능 (특히 단일 CPU일 경우)
  • 따라서 운영체제가 일정 시간마다 작업을 바꿔주며 공평하게 실행합니다

 


 

 

Context Switching의 순서

 

  1. 현재 실행 중인 프로세스의 상태(문맥)를 PCB(Process Control Block)에 저장
  2. 새로운 프로세스의 문맥을 PCB에서 불러옴
  3. CPU가 그 상태부터 이어서 실행

 


 

 

언제 문맥 교환이 일어날까?

 

  • 멀티태스킹 중: 여러 프로그램이 동시에 실행될 때
  • 우선순위 변경: 더 급한 작업이 있을 경우
  • 입출력 대기: 하나의 작업이 키보드 입력을 기다릴 때 등
  • 타이머 인터럽트: 일정 시간마다 강제로 작업 전환

 


 

 

문맥 교환의 핵심: PCB(Process Control Block)

 

PCB는 각 프로세스의 정보를 담고 있는 자료 구조입니다.

 

 

PCB에 저장되는 정보 예시

 

  • 프로세스 ID
  • 실행 상태 (준비, 대기, 실행 중 등)
  • 레지스터 값
  • 프로그램 카운터
  • 스케줄링 정보

 

운영체제는 문맥 교환 시 이 PCB를 참고하여 이전 상태로 돌아갈 수 있게 만듭니다.

 


 

 

문맥 교환의 장점과 단점

항목장점단점

장점 여러 작업을 공평하게 실행 → 멀티태스킹 가능 사용자는 동시에 실행되는 듯한 효과를 얻음
단점 문맥 저장/복구 시간이 필요 → 오버헤드 발생 캐시 초기화로 성능 손실 가능

 


 

 

실생활 비유로 이해해보자

 

  • 선생님이 수업시간에 여러 학생의 발표를 번갈아 듣는 상황→ 돌아와서도 처음부터가 아니라 “이어서” 발표 가능 → 한 학생의 발표 중간에 잠깐 멈추고, 다른 학생 발표 듣기

 

즉, CPU는 여러 프로세스가 진행 중인 위치를 기억해두었다가, 돌아올 때 이어하기 기능을 써서 진행합니다.

 


 

 

문맥 교환이 많은 프로그램은 어떤 특징이 있을까?

 

  • 실시간성이 떨어질 수 있음 (예: 게임, 영상 처리 앱에서 끊김 발생 가능)
  • 멀티스레드 기반 프로그램은 문맥 교환이 잦기 때문에 효율적 구현이 중요
  • 고성능이 필요한 시스템에서는 문맥 교환 최소화 전략이 필요

 


 

 

문맥 교환을 최적화하는 기술들

 

  • 스레드 대신 코루틴(Coroutine): 문맥 교환 비용 없이 실행 흐름 전환 가능
  • 스레드 풀(Thread Pool): 매번 새 스레드를 만들지 않고 미리 만들어둠
  • RTOS(실시간 운영체제): 문맥 교환 시간을 예측 가능한 수준으로 유지

 


 

 

한 줄 요약

 

👉 Context Switching은 컴퓨터가 여러 작업을 빠르게 전환하며 처리할 수 있게 해주는 핵심 기술입니다.

프로세스 상태를 저장하고 이어서 실행하는 능력이죠.

 

728x90
반응형
목차