[Chapter 0] 운영체제 OT (4)

yoon052·2023년 4월 27일
0

운영체제

목록 보기
4/7
post-thumbnail

CPU스케줄링

어떤 program에게 먼저 CPU 사용권을 줄 것인가? → OS가 결정하는 중요한 역할

프로세스 3개가 CPU를 쓰겠다고 CPU 큐에서 대기중이다.

누가 먼저 큐에 도착했는지 큐에 도착한 순서가 있다. 프로세스의 도착 순서는 P1, P2, P3 순이다.

1) FCFS(First-Come First-Served)

먼저 온 process 순으로 CPU 큐에 있는 일을 처리 해준다. 효율성은 떨어진다.

2) SJF(Shortest-Job-First)

CPU 사용시간이 가장 짧은 process부터 스케줄링 한다. 평균대기시간이 가장 짧아 효율성은 좋다. 하지만 짧은 CPU 실행기간을 가진 process가 계속 도착할 경우 먼저 왔던 긴 CPU 실행기간을 가진 process가 무한정 대기해야 한다. SJF는 효율성은 좋지만, 형평성에 문제가 있다.

3) RR(Round Robin)

CPU 실행기간에 상관없이 process 하나 당 한번에 실행할 수 있는 CPU 실행시간이 정해져있다. 긴 CPU 실행시간을 가지고 있더라도 정해진 시간을 다 쓰고나면, CPU 점유권을 뺏겨서, 다시 CPU 큐의 맨 뒤로 돌아가 대기해야한다. 이 때, CPU 점유권을 뺏는 것이 핵심이다. 하지만 OS 혼자 점유권을 뺏지는 못하고 HW장치의 지원을 받아 인터럽트를 발생시켜 CPU 점유권을 빼앗고 CPU 큐의 맨 뒤로 process를 보낸다.

이전의 스케줄링은 대기시간과 형평성에 문제가 있었지만 RR 스케줄링은 CPU를 길게 쓰려는 program은 대기시간이 길어지고, CPU를 짧게 쓰려는 program은 대기시간이 짧아진다는 즉, 다른 방법들에 비해 상대적으로 공정, 형평성이 있다는 장점이 있다.

profile
개발자 지망생

0개의 댓글