00_InboxOS - Context Switching복습 문제와 정답

복습 문제와 정답

11. 용어 사전 - 바로 찾아보기 · 학습 지도

사용하는 법

먼저 답을 소리 내어 말한 다음 접힌 정답을 연다. “읽으면 알겠다”와 “내가 설명할 수 있다”는 다르다. 틀린 문제는 관련 문서 링크로 돌아가 사건 전체를 다시 본다.


1단계 - 핵심 단어 확인

문제 1

Program과 Process의 차이를 악보 비유로 설명하라.

정답

Program은 저장된 악보처럼 실행 전의 Code와 Data이고, Process는 그 악보를 실제로 연주하는 것처럼 Program이 실행되며 주소 공간, 자원, 현재 실행 상태를 가진 존재다. 같은 Program도 여러 Process로 실행될 수 있다.

관련 문서: 02. 프로세스와 CPU 상태 - 멈춘 실행을 되살리는 정보


문제 2

PC, Program Counter가 없으면 왜 멈춘 Process를 정확히 재개할 수 없는가?

정답

PC가 다음에 실행할 명령 위치를 가리키기 때문이다. Code 전체가 Memory에 남아 있어도 어느 명령부터 이어야 하는지 모르면 정확한 재개가 불가능하다.


문제 3

Stack Pointer와 General Register는 각각 무엇을 기억하는가?

정답

Stack Pointer는 현재 Call Stack의 꼭대기나 기준 위치를 가리켜 함수 호출, 지역 변수, 복귀 위치를 찾게 한다. General Register는 계산 중간값, 주소, 함수 인자 등을 담는다.


문제 4

Ready와 Waiting의 차이를 “지금 CPU를 주면?”이라는 질문으로 설명하라.

정답

Ready는 지금 CPU를 주면 바로 진행할 수 있지만 차례를 기다리는 상태다. Waiting은 I/O 완료나 Lock 해제 같은 사건이 아직 없어 지금 CPU를 줘도 진행할 수 없다.

관련 문서: 05. 스케줄러와 상태 전이 - 다음 차례를 고르는 법


문제 5

PCB는 Process의 전체 Memory 복사본인가?

정답

아니다. PCB는 Kernel이 Process를 관리하기 위한 기록이다. PID, 상태, CPU Context 관련 정보, Scheduling, Memory 관리, File과 I/O, 권한 등을 담거나 관련 구조를 가리킨다. Process의 Code, Heap, Stack 전체를 매 Switch마다 PCB로 복사하지 않는다.


문제 6

PCB를 일반 Process가 마음대로 수정할 수 없어야 하는 이유를 두 가지 말하라.

정답

Process가 자기 우선순위나 권한을 위조할 수 있고, 다른 Process의 Memory나 자원을 자기 것으로 속일 수 있기 때문이다. PCB에 해당하는 정보는 Kernel이 보호한다.

관련 문서: 03. PCB - 프로세스의 보관함


문제 7

Scheduler와 Dispatcher의 역할을 한 문장씩 말하라.

정답

Scheduler는 Ready 후보 중 다음 실행 대상을 선택한다. Dispatcher는 선택한 대상의 Context와 실행 환경을 복원하여 실제 CPU에서 실행하게 한다.


문제 8

Time Quantum이 너무 짧을 때와 너무 길 때 각각 어떤 문제가 생기는가?

정답

너무 짧으면 Context Switch가 지나치게 잦아져 직접 비용과 Cache·TLB 간접 비용의 비율이 커진다. 너무 길면 다른 실행 대상이 CPU를 오래 기다려 대화형 반응성과 공정성이 나빠질 수 있다.


문제 9

같은 Process의 두 Thread가 공유하는 것 두 개와 따로 가지는 것 세 개를 말하라.

정답

보통 Code, Heap, 주소 공간, 열린 File 등을 공유한다. PC, General Register, Stack과 Stack Pointer, Scheduling 상태는 Thread별로 따로 가진다.

관련 문서: 07. Process 전환과 Thread 전환


문제 10

Concurrency와 Parallelism의 차이는?

정답

Concurrency는 여러 작업이 같은 기간에 번갈아 또는 겹쳐 진행되는 것이고 한 Core에서도 가능하다. Parallelism은 여러 작업이 같은 물리적 순간에 실제로 실행되는 것이며 보통 여러 Core가 필요하다.


2단계 - 사건 판단

문제 11

Process A가 실행 중 간단한 System Call을 요청했다. Kernel이 즉시 결과를 만들고 다시 A로 돌아왔다.

  1. User Mode와 Kernel Mode 사이 Mode Switch가 있었는가?
  2. A에서 B로의 Process Context Switch가 있었는가?
정답

  1. 있었다.
  2. 없었다. Kernel에 들어갔지만 실행 Process는 A로 유지되었다.

관련 문서: 09. 헷갈리는 개념 - Mode Switch부터 Interrupt까지


문제 12

A가 아직 준비되지 않은 Network Data를 읽으려고 한다. A의 상태는 어디로 가야 하며, 왜 그런가?

정답

Running에서 Waiting으로 간다. Data가 오기 전에는 CPU를 줘도 진행할 수 없기 때문이다. 다른 Ready 실행 대상으로 Context Switch가 일어날 수 있다.


문제 13

Waiting이던 B의 Disk I/O가 완료되었다. B는 무조건 즉시 Running이 되는가?

정답

아니다. 보통 Waiting에서 Ready가 되어 Scheduling 후보가 된다. 즉시 현재 실행 대상을 선점할지는 우선순위와 Scheduling 정책에 달려 있다.


문제 14

Timer Interrupt가 발생했지만 Scheduler가 A를 다시 실행하기로 했다. 무엇이 있었고 무엇이 없었는가?

정답

Interrupt 처리와 User Mode ↔ Kernel Mode 전환은 있었다. 그러나 A에서 다른 실행 주체로 바뀌지 않았으므로 A → B Process Context Switch는 없었다.


문제 15

Time Quantum이 끝나 A가 CPU에서 내려왔다. A는 Ready인가, Waiting인가?

정답

보통 Ready다. A는 계속 실행 가능하지만 공정한 CPU 공유를 위해 잠시 선점된 것이기 때문이다.


문제 16

Page Fault가 발생하면 무조건 Context Switch가 일어나는가?

정답

아니다. Kernel이 Page 연결이나 권한을 처리하고 같은 A로 바로 복귀할 수 있다. Disk I/O가 필요해 A가 Waiting이 되거나 A가 종료되고 다른 실행 대상을 고를 때 Context Switch로 이어질 수 있다.


3단계 - 전환 순서 만들기

문제 17

아래 사건을 올바른 순서로 배열하라.

  • B의 Context 복원
  • Timer Interrupt
  • Scheduler가 B 선택
  • A의 필요한 Context 보존
  • B의 다음 명령 실행
  • Kernel 진입
  • A의 상태를 Ready로 변경
정답

Timer Interrupt → Kernel 진입 → A의 필요한 Context 보존 → A의 상태를 Ready로 변경 → Scheduler가 B 선택 → B의 Context 복원 → B의 다음 명령 실행.

관련 문서: 04. Context Switching - 실제 전환 12단계


문제 18

다음 상황의 상태와 Queue를 채워라.

  • CPU Core 하나
  • Quantum 4ms
  • 0ms에 A가 Running, Ready Queue는 B → C
  • 4ms에 A의 Quantum 만료
  • B는 실행 2ms 뒤 6ms에 Disk I/O를 요청

질문:

  1. 4ms 직후 Running과 Ready Queue는?
  2. 6ms 직후 B 상태, Running, Ready Queue는?
정답

  1. A를 Ready Queue 뒤로 보내고 B를 선택한다. Running은 B, Ready Queue는 C → A.
  2. B는 Waiting이 되고 C를 선택한다. Running은 C, Ready Queue는 A. B는 Disk Waiting Queue에 있다.

관련 문서: 06. 실전 추적 - A B C가 번갈아 실행되는 20ms


문제 19

A Process의 Thread 1에서 같은 A Process의 Thread 2로 바뀐다.

  1. PC와 Register를 교체해야 하는가?
  2. 주소 공간을 보통 교체해야 하는가?
  3. Context Switch인가?
정답

  1. 그렇다. 서로 다른 실행 위치와 계산 상태를 가진다.
  2. 보통 아니다. 같은 Process의 주소 공간을 공유한다.
  3. 그렇다. 실행 Thread의 CPU Context가 바뀐다.

문제 20

Context Switch의 직접 비용 두 개와 간접 비용 두 개를 말하라.

정답

직접 비용 예: Kernel 진입·복귀, Register 저장·복원, Scheduling과 Queue 관리, 주소 공간 전환. 간접 비용 예: CPU Cache가 새 작업에 맞게 다시 채워지는 비용, TLB 효율 저하, Branch Predictor와 Pipeline 변화, 다른 Core 이동의 Cache 불이익.

관련 문서: 08. 비용과 성능 - 왜 너무 자주 바꾸면 느릴까


4단계 - 틀린 설명 고치기

문제 21

다음 문장의 잘못을 고쳐라.

Context Switching은 A의 Heap과 Stack 전체를 PCB에 복사한 뒤 B의 Heap과 Stack 전체를 CPU로 복사하는 일이다.

정답

Process 주소 공간 전체를 매번 PCB로 복사하는 것이 아니다. A를 재개하는 데 필요한 PC, SP, Register 등 CPU Context와 관련 실행 상태를 Kernel 관리 구조와 Kernel Stack 등에 보존하고, B의 저장된 Context와 필요하면 주소 공간 설정을 복원하는 과정이다. Heap과 Stack Memory 자체는 보통 주소 공간에 남아 있다.


문제 22

다음 문장의 잘못을 고쳐라.

Interrupt가 발생하면 CPU는 운영체제용 별도 CPU에게 일을 넘긴다.

정답

보통 같은 CPU Core가 A의 User Code 실행을 멈추고 Kernel Mode로 전환하여 운영체제의 Handler를 실행한다. 운영체제가 별도 CPU에서 항상 기다리고 있는 것이 아니다.


문제 23

다음 문장의 잘못을 고쳐라.

Context Switch 수가 많으면 무조건 성능 문제다.

정답

많은 Switch가 I/O 대기를 숨기고 빠른 반응을 만드는 정상적인 결과일 수도 있다. 문제를 판단하려면 Switch 이유, CPU 사용률, Run Queue, I/O 대기, Lock 경합, Cache Miss, 실제 응답 시간을 함께 봐야 한다.


5단계 - 자기 말로 가르치기

30초 과제

아래 다섯 단어를 모두 사용해 중학생 친구에게 설명하라.

CPU · 책갈피 · PCB · Scheduler · Context Switching

예시 답변

CPU Core 하나는 한 순간에 한 가지 실행만 할 수 있어. 여러 앱을 같이 움직이게 하려면 운영체제가 아주 빠르게 차례를 바꿔야 해. 바꾸기 전에 지금 앱이 어디까지 실행됐는지 PC와 Register 같은 책갈피를 PCB와 관련 Kernel 공간에 보관해. Scheduler가 다음 앱을 고르면 그 앱의 책갈피를 복원해서 이어 실행하는데, 이 교체를 Context Switching이라고 해.


2분 과제

다음 순서를 보지 않고 설명하라.

왜 필요?
→ 무엇을 저장?
→ 어디에 관리?
→ 누가 선택?
→ 어떤 순서로 복원?
→ 비용은?
→ Mode Switch와 차이는?

답변 뒤 10. 한 장 요약 - 이야기와 면접 답변의 2분 설명과 비교한다.


6단계 - 3회 복습 일정

오늘

내일

  • 틀린 문제만 다시 풀기
  • “Interrupt는 Context Switch인가?”를 예시 두 개로 설명
  • Process와 Thread Switch 차이를 표 없이 말하기

3일 뒤

  • 전환 7단계를 순서 없이 적은 뒤 올바르게 배열
  • Ready와 Waiting 전이를 직접 그림
  • 2분 설명을 녹음하거나 소리 내어 말하기

7일 뒤

  • 이 문서를 보지 않고 아래 세 질문에 답하기
  1. PCB가 왜 생겼는가?
  2. Timer Interrupt부터 B 실행까지 무슨 일이 생기는가?
  3. Context Switch 비용은 Register 복사 외에 무엇이 있는가?

완료 기준

아래를 모두 할 수 있으면 큰 흐름 학습은 완료다.

  • CPU 하나가 여러 Process를 실행하는 것처럼 보이게 하는 원리를 설명한다.
  • Program, Process, Thread를 구분한다.
  • PC, SP, Register를 저장해야 하는 이유를 설명한다.
  • PCB의 대표 항목을 이유와 함께 말한다.
  • Running, Ready, Waiting 상태 전이를 사건으로 설명한다.
  • Timer Interrupt 이후 A → B 전환 순서를 말한다.
  • Mode Switch와 Context Switch를 반례로 구분한다.
  • Process와 Thread Switch의 차이를 주소 공간으로 설명한다.
  • 직접 비용과 Cache·TLB 간접 비용을 설명한다.

막히는 항목이 있다면 00. 시작하기 - 학습 지도의 해당 문서로 돌아간다.

Built with LogoFlowershow