schedulerpreemptionfairness
CPU 스케줄링과 time slice를 설명해 주세요
- 예상 시간
- 7분
30초 답변
꼬리질문
조금 더 깊게 물어본다면
답변 뒤에 이어질 수 있는 질문들을 하나씩 열어볼 수 있어요.
선점형과 비선점형 스케줄링의 차이는 무엇인가요?
스케줄러가 고려하는 지표는 무엇인가요?
우선순위가 높으면 항상 먼저 실행되나요?
I/O-bound 작업과 CPU-bound 작업은 스케줄링에서 어떻게 다르게 보이나요?
time slice가 너무 짧으면 왜 문제가 되나요?
부가 설명
단일 CPU에서 여러 작업이 동시에 돌아가는 것처럼 보이는 이유는 스케줄러가 실행 대상을 계속 바꾸기 때문입니다. 짧은 작업이 뒤에 밀리면 사용자는 시스템이 멈춘 것처럼 느끼고, 긴 작업 하나가 CPU를 계속 잡으면 다른 작업의 응답성이 무너집니다.
time slice를 너무 짧게 잡으면 반응은 빨라 보일 수 있지만 컨텍스트 스위칭 비용이 늘어납니다. 너무 길면 전환 비용은 줄지만 대화형 작업의 응답성이 떨어질 수 있습니다. 그래서 스케줄링은 단순히 빠른 순서가 아니라 워크로드의 성격을 반영하는 정책 문제입니다.
한 줄 정리
스케줄링은 CPU를 누구에게 줄지 정하는 정책이고, time slice는 독점을 막기 위한 실행 시간 단위입니다.