운영체제 · 스케줄링 · 퀴즈
퀴즈: 스케줄링
문항 7개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
CPU 버스트가 각각 24, 3, 3 인 세 프로세스가 동시에 도착했다. FCFS 로 P1, P2, P3 순서로 실행할 때 평균 대기 시간은?
- 3 — P2, P3, P1 순서로 실행했을 때의 평균 대기 시간
- 10 — 세 프로세스의 버스트 시간을 평균한 값
- 27 — 마지막 프로세스 P3 의 대기 시간
- 17 — 대기 시간 0, 24, 27 의 평균
SJF 가 평균 대기 시간 면에서 최적인데도 범용 스케줄러로 쓰이지 못하는 결정적 이유는?
- 구현이 너무 복잡해서
- 다음 CPU 버스트 길이를 미리 알 수 없어서
- 선점이 불가능해서
- 짧은 작업이 항상 손해를 보기 때문에
라운드 로빈의 시간 할당량을 지나치게 작게 잡으면 생기는 문제는?
- FCFS 와 동일하게 동작한다
- 기아가 발생한다
- 컨텍스트 스위치 오버헤드가 실제 작업 시간을 잠식한다
- 응답 시간이 길어진다
리눅스 CFS 에서 nice 값을 낮춰(우선순위를 높여) 실행하면 내부적으로 무엇이 달라지는가?
- 타임 슬라이스가 고정 길이로 두 배가 된다
- 가중치가 커져 vruntime 이 천천히 증가하므로 더 자주 선택된다
- 실시간 스케줄링 클래스로 승격된다
- 다른 태스크의 vruntime 이 강제로 증가한다
우선순위 스케줄링에서 기아(starvation)를 완화하는 표준적인 기법은?
- 에이징 — 대기 시간이 길어질수록 우선순위를 점진적으로 올린다
- 선점을 끈다
- 우선순위가 낮은 프로세스를 주기적으로 종료한다
- 시간 할당량을 늘린다
컨테이너의 CPU 몫(shares/weight)과 CPU 쿼터(quota)의 차이를 옳게 설명한 것은?
- 몫은 경합이 있을 때의 배분 비율이고, 쿼터는 주기마다 쓸 수 있는 시간의 절대 상한이다
- 둘은 같은 값을 다른 단위로 표현한 것이다
- 몫은 메모리에, 쿼터는 CPU 에 적용된다
- 쿼터는 경합이 있을 때만 적용된다
CPU 평균 사용률은 낮은데 응답 지연의 꼬리만 주기적으로 튄다. CPU 쿼터가 걸린 컨테이너에서 가장 먼저 확인할 것은?
- 메모리 스왑 발생량
- 디스크 IOPS
- 스로틀링 횟수와 스로틀된 총 시간
- 네트워크 재전송률