💻 [운영체제] 멀티태스킹 & 컨텍스트 스위칭 정리
2025. 4. 24. 15:54

📌 개념 요약

🔹 멀티태스킹 (Multitasking)

  • 하나의 CPU가 여러 작업을 동시에 처리하는 것처럼 보이게 만드는 방식
  • 실제로는 CPU가 여러 작업을 매우 빠르게 번갈아가며 처리
  • 사용자 눈엔 동시에 실행되는 것처럼 보이지만, 순차적으로 조금씩 처리 중

🔹 컨텍스트 스위칭 (Context Switching)

  • CPU가 작업을 전환할 때 현재 작업 상태를 저장하고, 새로운 작업 상태를 불러오는 과정
  • 상태 저장에는 레지스터, 프로그램 카운터(PC) 등이 포함됨
  • 저장 공간: PCB (Process Control Block)

💡 예시 & 비유

🔸 현실 비유

“책 A를 읽다가 책갈피 꽂고 → 책 B 펴서 읽는 것”
프로세스 간 전환 = 책 변경
스레드 간 전환 = 같은 책 안에서 페이지 전환

🔸 실무 예시

  • 웹 서버(Tomcat)는 수많은 요청을 처리할 때 스레드 단위로 처리
  • CPU는 여러 요청을 빠르게 번갈아가며 실행 (멀티태스킹 + 컨텍스트 스위칭)

⚙️ 컨텍스트 스위칭의 비용

  • 상태 저장/복원 자체가 CPU 입장에서 추가 작업
  • 너무 자주 바뀌면 오히려 비효율 발생 (스레싱)
  • 스케줄러가 이를 최적화함

✍️ 회고

  • CPU는 사실 동시에 하나의 작업만 처리
  • 멀티태스킹은 빠른 전환을 통해 “동시에 실행되는 것처럼 보이게” 하는 기법
  • 컨텍스트 스위칭은 멀티태스킹의 핵심이지만, 비용이 있다는 것도 기억해야 함