# Week 4 Homework

## Q&A

1. 3개의 작업과 난수 시드 1, 2, 3으로 시뮬레이션한 솔루션을 계산하세요.
A: 
시드 1 : 1-0-2
시드 2 : 2-0-1
시드 3 : 0-1-2

2. 이제 두 개의 특정 작업으로 실행해 보세요: 각각 길이는 10이지만 하나(작업 0)는 티켓이 1장이고 다른 하나(작업 1)는 100장입니다(예: `-l 10:1,10:100`). 
티켓의 수가 이렇게 불균형할 때 어떤 일이 일어날까요? 
A: 티켓의 수가 불균형할 때, 티켓이 많은 작업이 더 자주 실행될 가능성이 높다. 복권 스케줄링은 티켓의 수에 따라 작업을 선택하기 때문에, 티켓이 많은 작업이 더 많은 확률로 선택된다. 따라서 작업 1은 작업 0보다 훨씬 더 자주 실행될 것이다. 티켓이 불균형할 때에는 티켓이 많은 작업이 작업을 독점할 수 있는 상황이 발생할 수 있다. 이는 작업 0이 거의 실행되지 않을 수 있음을 의미한다. 만약 작업 1이 매번 티켓을 획득한다면, 작업 0은 실행되지 않을 수 있다. 그러나 작업 1이 실행되는 동안 작업 0도 언제든지 실행될 수 있는 가능성이 있다. 따라서 작업 0이 완전히 실행되지 않는 것은 아니지만, 작업 1이 훨씬 더 자주 실행될 것이라고 예측할 수 있다.
작업 1이 완료되기 전에 작업 0이 실행될 수 있을까요? 
A: 작업 1이 완료되기 전에 작업 0이 실행될 수 있다. 하지만 이는 매우 드물고, 티켓 수가 극도로 불균형할 때에만 발생할 가능성이 있다. 
얼마나 자주 그럴까요? 
A: 작업 1이 완료되기 전에 작업 0이 실행될 확률은 작업 0의 티켓 수와 작업 1의 티켓 수에 따라 달라진다. 작업 0이 작업 1보다 먼저 실행될 확률은 작업 0의 티켓 수를 전체 티켓 수로 나눈 값이다.
일반적으로 이러한 티켓 불균형이 복권 스케줄링의 동작에 어떤 영향을 미칠까요?
A: 일반적으로 티켓이 많은 작업이 티켓이 적은 작업보다 더 자주 실행될 가능성이 높기 때문에 작업 간의 공정성이 감소할 수 있다. 이는 티켓의 수가 작업의 상대적인 우선 순위를 결정하기 때문이다. 또한, 티켓 불균형이 더 큰 작업들이 작은 작업들을 계속해서 제치고 실행되는 현상을 초래할 수 있다. 이로 인해 작은 작업들이 오랜 시간동안 실행되지 않을 수 있다. 따라서 작은 작업들은 대기 시간이 길어지고 전체 시스템의 응답 시간이 느려질 수 있다. 또한, 티켓 불균형은 작업의 실행 빈도에 대한 불균형을 초래하여 시스템의 성능을 예측하기 어렵게 만들 수 있다. 특히 시스템에 대한 부하 분산이 필요한 경우에는 작업 간의 공정한 분배가 중요하다. 따라서 티켓 불균형은 전체 시스템의 성능에 부정적인 영향을 미칠 수 있다.

3. 길이가 100이고 티켓 할당이 100으로 동일한 두 개의 작업(`-l 100:100,100:100`)으로 실행할 때 스케줄러는 얼마나 불공정할까요? 몇 가지 다른 난수 시드로 실행하여 (확률적) 답을 결정하세요; 한 작업이 다른 작업보다 얼마나 일찍 끝나는지에 따라 불공정성이 결정됩니다.
A: 
시드 1
ㅣ 작업 ㅣ 길이 ㅣ 티켓 수
ㅣ 0 ㅣ 100 ㅣ 100
ㅣ 1 ㅣ 100 ㅣ 100
: 작업 0이 먼저 실행되고 작업 1이 이어서 실행된다. 작업 간 실행 시간에 차이가 없으므로 불공정성이 발생하지 않는다.

시드 2
ㅣ 작업 ㅣ 길이 ㅣ 티켓 수
ㅣ 0 ㅣ 100 ㅣ 100
ㅣ 1 ㅣ 100 ㅣ 100
: 작업 1이 먼저 실행되고 작업 0이 이어서 실행된다. 불공정성이 발생하지 않는다.
