📌 개념 요약
🔹 멀티태스킹 (Multitasking)
- 하나의 CPU가 여러 작업을 동시에 처리하는 것처럼 보이게 만드는 방식
- 실제로는 CPU가 여러 작업을 매우 빠르게 번갈아가며 처리함
- 사용자 눈엔 동시에 실행되는 것처럼 보이지만, 순차적으로 조금씩 처리 중
🔹 컨텍스트 스위칭 (Context Switching)
- CPU가 작업을 전환할 때 현재 작업 상태를 저장하고, 새로운 작업 상태를 불러오는 과정
- 상태 저장에는 레지스터, 프로그램 카운터(PC) 등이 포함됨
- 저장 공간: PCB (Process Control Block)
💡 예시 & 비유
🔸 현실 비유
“책 A를 읽다가 책갈피 꽂고 → 책 B 펴서 읽는 것”
프로세스 간 전환 = 책 변경
스레드 간 전환 = 같은 책 안에서 페이지 전환
🔸 실무 예시
- 웹 서버(Tomcat)는 수많은 요청을 처리할 때 스레드 단위로 처리
- CPU는 여러 요청을 빠르게 번갈아가며 실행 (멀티태스킹 + 컨텍스트 스위칭)
⚙️ 컨텍스트 스위칭의 비용
- 상태 저장/복원 자체가 CPU 입장에서 추가 작업
- 너무 자주 바뀌면 오히려 비효율 발생 (스레싱)
- 스케줄러가 이를 최적화함
✍️ 회고
- CPU는 사실 동시에 하나의 작업만 처리
- 멀티태스킹은 빠른 전환을 통해 “동시에 실행되는 것처럼 보이게” 하는 기법
- 컨텍스트 스위칭은 멀티태스킹의 핵심이지만, 비용이 있다는 것도 기억해야 함
'컴퓨터 과학 > 운영체제' 카테고리의 다른 글
💻 [운영체제] 스레드 동기화 - 세마포어와 뮤텍스 완벽 이해 (0) | 2025.04.26 |
---|---|
💻 [운영체제] 가상 메모리와 스와핑 - RAM이 부족하면 왜 느려질까? (0) | 2025.04.25 |
💻 [운영체제] 메모리 관리 (페이징 vs 세그멘테이션) (0) | 2025.04.25 |
💻 [운영체제] CPU 스케줄링 알고리즘 정리 (FCFS, SJF, Priority, RR) (0) | 2025.04.24 |
💻 [운영체제] 프로세스 vs 스레드 차이 정리 (1) | 2025.04.23 |