한 장 요약 - 이야기와 면접 답변
한 장 요약 - 이야기와 면접 답변
← 09. 헷갈리는 개념 - Mode Switch부터 Interrupt까지 · 학습 지도 · 다음 → 11. 용어 사전 - 바로 찾아보기
운영체제는 제한된 CPU를 여러 실행 주체가 나눠 쓰도록, 현재 실행의 책갈피를 보존하고 Scheduler가 고른 다음 실행의 책갈피를 복원한다.
1. 왜 나왔나
CPU는 빠른데 I/O는 느림
↓
한 Process가 I/O를 기다릴 때 CPU가 놀게 됨
↓
기다리는 동안 다른 Process를 실행
↓
원래 Process를 정확히 이어 갈 정보가 필요
↓
PCB와 Context 저장·복원 필요
↓
Timer와 Scheduler로 공정성과 반응성까지 확보
이 결과 한 CPU Core도 여러 Process가 동시에 진행되는 것처럼 보이게 할 수 있다.
2. PCB란
Process Control Block은 운영체제가 Process를 관리하는 Kernel 기록이다.
대표 정보:
- PID와 관계 정보
- New, Ready, Running, Waiting, Terminated 상태
- PC, SP, Register 등 실행 재개와 관련된 정보
- 우선순위와 CPU 사용 시간
- 주소 공간과 Page Table 관련 정보
- 열린 File과 I/O 상태
- 사용자, 권한, Accounting
실제 구현에서는 정보가 핵심 구조체, Kernel Stack, 연결된 Memory·File 구조 등에 나뉠 수 있다.
3. Context란
Process 또는 Thread가 중단된 뒤 정확히 이어 실행되는 데 필요한 상태다.
핵심 CPU Context:
- PC: 다음 명령 위치
- SP: 현재 Stack 꼭대기
- General Registers: 계산 중간값
- Flags: 조건과 CPU 상태
관련 실행 환경:
- Kernel Stack과 Kernel 실행 상태
- 주소 공간과 Page Table 관련 Memory Context
4. Context Switching 대표 순서
① A 실행
② Timer Interrupt 또는 Blocking System Call
③ CPU가 Kernel로 진입
④ A의 필요한 Context 보존
⑤ A를 Ready 또는 Waiting으로 변경
⑥ Scheduler가 B 선택
⑦ B의 Kernel 및 Memory 실행 환경 활성화
⑧ B의 Register, SP, PC 복원
⑨ B의 다음 명령부터 실행
압축 암기:
사건 → Kernel 진입 → 현재 저장 → 상태 변경 → 다음 선택 → 다음 복원 → 실행 복귀
5. Process 상태
stateDiagram-v2
Ready --> Running: Dispatch
Running --> Ready: Time Quantum 또는 Preemption
Running --> Waiting: Blocking
Waiting --> Ready: Wake-up
Running --> Terminated: 종료
- Ready: CPU만 받으면 실행 가능.
- Waiting: 사건이 끝나지 않아 CPU를 줘도 진행 불가.
6. 발생 계기
- Time Quantum 만료
- Blocking I/O
- 더 높은 우선순위 실행 대상의 등장
- Process 또는 Thread가 스스로 양보
- 실행 종료
- Page Fault가 I/O 대기로 이어지는 경우
Interrupt나 System Call이 있어도 같은 A로 복귀하면 A → B Context Switch는 없을 수 있다.
7. Scheduler와 Dispatcher
Scheduler = 다음에 누구를 실행할지 선택
Dispatcher = 선택된 대상의 Context를 복원해 실제 실행
Scheduling은 공정성, 반응 시간, 처리량, CPU 이용률 사이에서 균형을 잡는다.
8. Process Switch와 Thread Switch
| 항목 | 같은 Process의 Thread Switch | Process 간 Switch |
|---|---|---|
| PC, SP, Registers | 교체 | 교체 |
| Stack | Thread별로 교체 | 교체 |
| 주소 공간 | 보통 공유 | 보통 전환 |
| Page Table 관련 Context | 보통 유지 | 보통 전환 |
| 일반 경향 | 상대적으로 가벼울 수 있음 | 상대적으로 무거울 수 있음 |
9. 비용
직접 비용
- Kernel 진입·복귀
- Register 저장·복원
- Queue와 Scheduling
- Kernel Stack·주소 공간 전환
간접 비용
- CPU Cache가 새 작업에 맞게 다시 채워짐
- TLB 효율 저하 가능
- Branch Predictor와 Pipeline 흐름 변화
- 다른 Core로 이동할 때 Cache 친화성 저하
Switch는 공짜가 아니지만, 기다리는 시간을 활용하고 빠른 반응을 만드는 데 필요하다.
10. 절대 섞지 말 것
| 문장 | 맞는가? | 이유 |
|---|---|---|
| Kernel Mode 진입은 항상 Process Switch다 | X | 같은 A의 요청 처리 후 A로 복귀 가능 |
| Interrupt는 Context Switch의 계기가 될 수 있다 | O | Scheduler가 다른 대상을 선택할 수 있음 |
| I/O 완료된 Process는 Waiting → Ready다 | O | 먼저 실행 후보가 됨 |
| PCB는 Process Memory 전체 복사본이다 | X | Kernel 관리 정보이며 주소 공간 전체 복사가 아님 |
| 같은 Process Thread도 PC와 SP가 따로다 | O | 각자 다른 실행 흐름과 Call Stack을 가짐 |
| Context Switch마다 TLB 전체를 무조건 비운다 | X | CPU 기능과 OS 구현에 따라 다름 |
30초 설명
CPU Core 하나는 한 순간에 하나의 실행 흐름만 처리합니다. 운영체제는 여러 Process와 Thread를 동시에 진행시키기 위해 실행 대상을 번갈아 Scheduling합니다. 이때 현재 대상의 PC, SP, Register 등 재개에 필요한 Context를 PCB에 해당하는 Kernel 구조나 Kernel Stack에 보존하고, 다음 대상의 Context와 필요하면 주소 공간을 복원합니다. 이 과정이 Context Switching입니다. 반응성과 CPU 이용률을 높이지만 저장·복원 및 Cache와 TLB 영향 때문에 비용이 있습니다.
2분 설명
처음에는 한 Program이 끝날 때까지 CPU를 사용했지만, Program이 느린 I/O를 기다리면 빠른 CPU가 놀았습니다. 그래서 여러 Program을 Memory에 두고, 하나가 기다릴 때 다른 실행으로 넘어가는 Multiprogramming과 사용 시간을 짧게 나누는 Time Sharing이 발전했습니다.
실행을 바꾸려면 A가 어디까지 실행했는지 보존해야 합니다. 다음 명령 위치인 PC, Stack을 가리키는 SP, 계산 중간값인 Registers와 Flags가 대표적인 CPU Context입니다. 운영체제는 Process별로 PID, 상태, Scheduling, Memory, File, 권한 등을 관리하는 PCB에 해당하는 Kernel 구조를 유지합니다.
Timer Interrupt나 Blocking System Call로 Kernel이 제어권을 얻으면 A의 필요한 Context를 보존하고 A를 Ready 또는 Waiting으로 바꿉니다. Scheduler가 Ready 후보 중 B를 선택하면 Dispatcher가 B의 Kernel Stack, 필요하면 주소 공간, CPU Context를 복원해 B의 다음 명령부터 실행합니다.
Process 간 Switch는 주소 공간 전환이 포함될 수 있어 같은 Process의 Thread Switch보다 보통 무겁습니다. 비용에는 Register 저장·복원뿐 아니라 Cache와 TLB가 새 작업에 적응하는 간접 비용도 있습니다. 다만 Interrupt나 System Call 뒤 같은 A로 돌아오면 Mode Switch만 있고 Process Context Switch는 없을 수 있습니다.
마지막 자가 점검
아무것도 보지 않고 다음 화살표를 설명할 수 있는가?
A Running
↓ Timer
Kernel
↓ Save A
A Ready
↓ Schedule
B Running
↓ Restore B
B의 다음 명령
설명할 수 있다면 이 단원의 큰 흐름은 잡혔다. 세부 용어가 막히면 11. 용어 사전 - 바로 찾아보기를 보고, 실제 이해를 확인하려면 12. 복습 문제와 정답으로 간다.
다음 문서: 11. 용어 사전 - 바로 찾아보기