다양한 기록

Lab #1 : Process Scheduler Simulating 본문

운영체제

Lab #1 : Process Scheduler Simulating

라구넹 2024. 12. 29. 21:39

https://github.com/Lagooneng/Scheduler

 

GitHub - Lagooneng/Scheduler: Process Scheduling Simulating

Process Scheduling Simulating. Contribute to Lagooneng/Scheduler development by creating an account on GitHub.

github.com

 

SPN, RR(q=1), RR(q=4), SRT, HRRN, MLFQ(q=1), MLFQ(q=2^i) 일 때 스케줄링을 구현 및 분석

* Feedback == MLFQ

 

워크로드 A

Process Arrival Time Service Time
1 0 3
2 2 6
3 4 4
4 6 5
5 8 2

Context Switching Time: 0.01 / 0.1

 

워크로드 B

Process Arrival Time Service Time
1 0 10
2 1 3
3 2 2
4 6 5
5 11 12
6 15 2
7 18 4
8 20 3

 

결과 분석

1) Workload A에서 Switch Time 0.01일때 Average Response Time 가장 낮은 정책은 무엇인가? 이유를 스케줄링 규칙과 실험 결과를 바탕으로 설명하시오.

 

Feedback 방식 중 타임 퀀텀이 모든 큐에 1일 때 가장 평균 응답 시간이 짧았다. 아무래도 Feedback 방식은 처음 들어오는 프로세스는 우선 순위가 가장 높아 매우 높은 확률로 빠른 반응이 가능할 것이다. 그리고 타임 슬라이스도 1초로 굉장히 짧기 때문에 이전 프로세스보다 높은 우선권을 가지고 빠르게 응답하는 것이 가능했을 것이다.

 

단 타임 퀀텀이 큐마다 2의 제곱을 할당해주는 경우 우선순위가 낮은 큐에서 나온 프로세스가 실행되고 있을 경우, 해당 프로세스는 타임 슬라이스가 길어서 새로 들어오는 프로세스가 잠깐 기다려야 할 가능성이 있다. 그래도 2위의 평균 응답 시간을 보여준다.

그 다음으로는 타임 슬라이스가 1초인 RR이다. 새로 들어온 프로세스가 더 우선권이 높지는 않지만 그래도 1초마다 다른 프로세스로 바꿔주기에 평균 응답시간이 빠른 것으로 생각할 수 있다.

 

2) Workload A에서 Switch Time0.1일때 Average Turnaround Time이 가장 낮은 정책은 무엇인가? 그 이유를 스케줄링 규칙과 실험 결과를 바탕으로 설명하시오.

가장 평균 반환 시간이 좋았던 것은 SRT였다. 일단 가장 빨리 끝낼 수 있는 프로세스가 발견되면 진행중인 프로세스가 있어도 선점되도록 해서 짧은 것부터 실행시키는 만큼, 반환 시간이 좋을 수 밖에 없을 것이다. 그 다음으로는 SPN이다. 선점은 하지 않더라고 빨리 끝낼 수 있는 프로세스가 다음에 실행될 것이 보장되니까 SRT 급은 아니어도 평균 반환 시간이 좋다.

 

그 다음으로는 HRRNFCFS이다. 둘다 라운드 로빈이나 피드백(MLFQ) 방식과는 다르게 선점을 하지는 않아서 일단 프로세스가 한 번 실행되면 종료될 때까지 실행된다. 그렇기 때문에 계속 프로세스의 종료가 계속해서 밀리는 경우는 발생하지 않을 것이다. 반대로, 라운드 로빈이나 피드백 방식은 프로세스당 반환 시간이 계속 밀려서 평균 반환이 좋지 않다.

 

3) Workload B에서 Switch Time 0.05일때 Worst Turnaround Time 가장 높은 정책은 무엇인가? 이유를 스케줄링 규칙과 실험 결과를 바탕으로 설명하시오.

타임 퀀텀이 모든 큐에서 1초인 피드백 방식에서 37.35초만에 끝난 프로세스가 존재하여 모든 프로세스 중 제일 안좋은 반환 시간을 가지는 프로세스를 가지게 되었다. Priority Boosting을 하지 않을 경우 피드백 방식은 우선 순위가 계속 내려가서 실행이 잘 되지 않는 프로세스가 발생할 수 있다. 이번 과제에서는 Priority Boosting이 존재하지 않아 첫번째 프로세스가 밀려 상당히 늦게 종료되었다.

 

그 다음으로는 타임 퀀텀이 1인 라운드 로빈 방식과 타임 퀀텀이 2의 제곱인 피드백 방식이 반환 시간 워스트 케이스가 안좋은 프로세스 2, 3위였다. 타임 퀀텀이 2의 제곱인 피드백 방식은 우선순위가 낮으면 그만큼 실행 가능한 시간을 더 주기 때문에 타임 퀀텀이 1일 때보다는 반환 시간이 나아져, 타임 퀀텀이 1인 라운드 로빈 방식보다 최악의 경우 시간이 더 빨랐다. 라운드 로빈 방식은 애초에 응답 시간을 빠르게 하는 것을 목적으로 일정 주기마다 프로세스를 선점시키기 때문에 반환 시간이 좋지 못할 수밖에 없는데 그마저도 타임 퀀텀이 1이면 프로세스 반환이 밀리는 경향이 심해질 것이다.

 

4) Workload B에서 Switch Time 0.2일때 Worst Response Time 가장 높은 정책은 무엇인가? 이유를 스케줄링 규칙과 실험 결과를 바탕으로 설명하시오.

비선점형 스케줄링 방식 중 하나가 되지 않을까 하였는데 FCFS, SPN, HRRN 세 방식이 동점으로 최악의 응답 시간 케이스를 보유한다. 일단 선점을 시키는 방식 자체가, 기존에 실행되던 프로세스를 치우고 다른 프로세스를 넣어주는 것이라 어떤 프로세스 하나가 길게 진행되어 다른 프로세스가 밀리는 경우가 덜 발생하기 때문에 응답률이 비교적 좋다. SRT같은 경우는 빨리 끝낼 수 있는(반환) 프로세스부터 진행하기 위해 사용하는 선점형 스케줄링 방식이긴 하지만 그래도 타임 퀀텀이 길어 프로세스를 오래 잡고 있는 타임 퀀텀 4 라운드 로빈 방식보다 더 상황이 좋았다.

 

FCFS는 들어온 대로 처리하기에 1초마다 서비스 타임이 1인 프로세스가 도착하는 최적의 상황이 아닌 이상 선점형보다 워스트 케이스가 좋지 못할 수밖에 없고, 그러한 최적의 상황에도 같은 정도이지 더 좋아지지는 못한다. 장점은 단순하다는 정도이다. SPN이나 HRRN 또한 선점형이기에 반응시간이 좋지 못한 모습을 보여주고, 타임 퀀텀이 1인 피드백 방식은 특징상 1초마다 큐에서 프로세스를 꺼내는데 새 프로세스가 우선순위가 높기까지 하니 반응이 느릴 수가 없는 구조라 워스트케이스 조차 1.4초였다.

'운영체제' 카테고리의 다른 글

Lab #2 : Concurrent Binary Search Tree  (0) 2024.12.29
Swap / Replacement Policies / Thrashing  (0) 2024.06.17
Paging (페이징)과 TLB  (0) 2024.06.16
Segmentation (세그멘테이션)  (0) 2024.06.15
메모리 가상화 - introduction  (0) 2024.06.15