## 질문 1

- SJF와 FIFO 스케줄러로 길이가 200인 세 개의 작업을 실행할 때의 응답 시간과 반환 시간을 계산하세요.

### 답변 1

|              | FIFO 응답 시간| FIFO 반환 시간| SJF 응답 시간 | SJF 반환 시간 |
|--------------|---------------|---------------|---------------|---------------|
| Job 0        | 0.00          | 200.00        | 0.00          | 200.00        |
| Job 1        | 200.00        | 400.00        | 200.00        | 400.00        |
| Job 2        | 400.00        | 600.00        | 400.00        | 600.00        |


## 질문 2

- 이제 작업의 길이를 다르게 하여 동일한 작업을 수행해 보세요: 100, 200, 300.

### 답변 2

|              | FIFO 응답 시간| FIFO 반환 시간| SJF 응답 시간 | SJF 반환 시간 |
|--------------|---------------|---------------|---------------|---------------|
| Job 0        | 0.00          | 100.00        | 0.00          | 100.00        |
| Job 1        | 100.00        | 300.00        | 100.00        | 300.00        |
| Job 2        | 300.00        | 600.00        | 300.00        | 600.00        |


## 질문 3

- 이제 RR 스케줄러와 시간 할당량(time-slice)을 1로 하여 동일한 작업을 수행해 보세요.

### 답변 3

- 작업 길이를 200으로 통일하고, 시간 할당량을 1로 했을 때

|              | 작업 길이 | RR 응답 시간 | RR 반환 시간 |
|--------------|-----------|--------------|--------------|
| Job 0        | 200       | 0.00         | 598.00       |
| Job 1        | 200       | 1.00         | 599.00       |
| Job 2        | 200       | 2.00         | 600.00       |


- 작업 길이를 100, 200, 300으로 하고, 시간 할당량을 1로 했을 때

|              | 작업 길이 | RR 응답 시간 | RR 반환 시간 |
|--------------|-----------|--------------|--------------|
| Job 0        | 100       | 0.00         | 298.00       |
| Job 1        | 200       | 1.00         | 499.00       |
| Job 2        | 300       | 2.00         | 600.00       |


## 질문 4

- 어떤 유형의 워크로드에 대해 SJF가 FIFO와 동일한 반환 시간을 제공하나요?

### 답변 4

- 같은 작업시간을 가지거나 작업의 길이가 오름차순으로 시스템에 도착하는 경우에 동일한 반환 시간을 제공한다.

- 만약 작업의 길이가 내림차순으로 시스템에 도착하는 경우에는 반환시간이 어떻게 될까?

|              | 작업 길이 | SJF 응답 시간  | SJF 반환 시간  |
|--------------|-----------|----------------|----------------|
| Job 0        | 300       | 300.00         | 600.00         |
| Job 1        | 200       | 100.00         | 300.00         |
| Job 2        | 100       | 0.00           | 100.00         |


|              | 작업 길이 | FIFO 응답 시간 | FIFO 반환 시간 |
|--------------|-----------|----------------|----------------|
| Job 0        | 300       | 0.00           | 300.00         |
| Job 1        | 200       | 300.00         | 500.00         |
| Job 2        | 100       | 500.00         | 600.00         |

- 이와 같이 SJF는 실행 시간이 짧은 작업을 우선적으로 처리하여 더 작은 반환 시간을 가지는 반면, FIFO는 작업이 도착한 순서대로 처리하여 더 긴 반환 시간을 가진 것을 볼 수 있다.

## 질문 5

- 어떤 유형의 워크로드와 시간 할당량에 대해 SJF가 RR과 동일한 응답 시간을 제공하나요?

### 답변 5

- 작업길이가 같거나 오름차순으로 시스템에 도착하고 시간 할당량이 충분히 큰 경우 동일한 응답시간을 보이고 있다.

## 질문 6

- 작업 길이가 증가함에 따라 SJF에서 응답 시간은 어떻게 되나요? 시뮬레이터를 사용하여 이 추세를 보여줄 수 있나요?

### 답변 6

- 작업 길이가 증가하면서 응답 시간 또한 증가하는 모습을 보인다.

|   작업 길이   | 평균 응답 시간 | 평균 반환 시간 | 평균 대기 시간 |
|---------------|----------------|----------------|----------------|
| 100, 200, 300 | 133.33         | 333.33         | 133.33         |
| 200, 300, 400 | 233.33         | 533.33         | 233.33         |
| 300, 400, 500 | 333.33         | 733.33         | 333.33         |

## 질문 7

- 시간 할당량이 증가함에 따라 RR에서 응답 시간은 어떻게 되나요? N개의 작업이 주어졌을 때 최악의 응답 시간을 제공하는 수식을 작성할 수 있나요?

### 답변 7

- 보통 시간 할당량이 증가하면서 응답 시간 또한 증가하는데, 작업의 길이보다 시간 할당량의 길이가 커지면 응답시간은 변하지 않는다.

- 최악의 응답 시간을 계산하는 수식은 N개의 작업이 주어졌을 때, 시간 할당량을 q라고 하면 수식은 (N-1)*q이다.

- 아래 표는 작업의 길이는 100, 200, 300으로 동일하고 시간 할당량만 변화한 결과를 보여준다.

| 시간 할당량 | 평균 응답 시간 | 평균 반환 시간 | 평균 대기 시간 |
|-------------|----------------|----------------|----------------|
| 1           | 1.00           | 465.67         | 265.67         |
| 100         | 100.00         | 366.67         | 166.67         |
| 200         | 133.33         | 333.33         | 133.33         |
| 300         | 133.33         | 333.33         | 133.33         |
