멀티태스킹
여러 프로세스가 매우 짧은 시간 단위(Time Quantum)로 번갈아 CPU를 사용해, 사용자에게는 마치 여러 프로그램이 동시에 실행되는 것처럼 느껴지게 하는 방식입니다.
등장 배경
- 단일 프로세스 시스템: 한 번에 하나의 프로세스만 실행하며, 다른 프로그램을 실행하려면 실행 중이던 프로그램을 먼저 종료해야 합니다. 프로세스가 I/O 작업으로 대기하는 동안 CPU도 함께 놀게 되어 CPU 사용률이 낮습니다.
- 멀티프로그래밍: 하나의 프로세스가 I/O 작업으로 대기하게 되면 다른 프로세스를 실행시켜 CPU가 노는 시간을 줄이는 방식입니다. 목적은 CPU 사용률 극대화입니다.
- 멀티태스킹: 멀티프로그래밍은 하나의 프로세스가 CPU 연산 작업을 계속하면 다른 프로세스가 대기해야 하는 한계가 있습니다. 이를 해결하기 위해 여러 프로세스가 아주 짧은 시간(Quantum) 동안만 번갈아 CPU를 사용하도록 합니다.
멀티프로그래밍 vs 멀티태스킹
| 항목 | 멀티프로그래밍 | 멀티태스킹 |
|---|---|---|
| 목적 | CPU 사용률 극대화 | 응답 시간 최소화 |
| 전환 시점 | 프로세스가 I/O 등으로 대기할 때 | 아주 짧은 타임 슬라이스마다 |
| 사용자 체감 | 동시 실행처럼 느껴지지 않음 | 여러 프로그램이 동시에 실행되는 것처럼 느껴짐 |
핵심 원리
멀티태스킹은 타임 슬롯을 짧게 쪼개 여러 프로세스를 번갈아 실행시키는 컨텍스트 스위칭을 기반으로 동작합니다. 이때 다음 타임 슬롯을 어떤 프로세스에게 줄지는 CPU 스케줄링 정책이 결정합니다.
핵심 정리
단일 프로세스 시스템은 CPU 유휴 시간이 많아 비효율적이고, 멀티프로그래밍은 이를 개선하지만 응답성까지 보장하지는 않습니다. 멀티태스킹은 짧은 시간 단위로 프로세스를 번갈아 실행해 응답 시간을 최소화하고, 사용자에게 동시 실행처럼 느껴지게 합니다.