기본적으로 SJF 인데 비교 대상이 Burst Time 이 아니가 Priority 를 두어 이것을 기반으로
먼저 처리 할것을 선정하는 방식이다
이때 발생하는 문제가 실행시간이 짧은 프로세스가 있는데 우선순위가 먼저 처리되야 하는게 계속 들어오게 되면 실행되지 못하고 게속 대기해야 하는 기아(starvation) 이 발생하게 되는 문제가 있다
그래서 이 문제를 해결 하기 위해서 하는 방법은 프로세스에 aging 숫자를 도입해 오래 된 프로세스일 수록 우선순위를 높여주는 처리를 하여 이 문제를 막을 수 있다
좀더 나은 대안으로 RR 과 우선순위 기반의 스케줄링 두개를 섞어서 사용하는 방식도 있다
즉 우선순위를 먼저 처리하고 RR 로 돌아가면서 실행되도록
먼저 우선순위 높은걸 처리한다음 동일한 우선순위의 프로세스에 대해선 RR 로 처리한다
처음 P4 우선순위가 높기 때문에 P4 가 7초 동안 실행된 다음 P2, P3 우선순위가 같기 때문에 time quantum 즉 시간을 분할 하여 2초 마다 P2, 와 P3 환원큐 방식으로 돌아가면서 처리 되도록 하는 형태인걸 알수 있다
반응형
'운영체제 & 병렬처리 > 시스템프로그래밍' 카테고리의 다른 글
스케줄링 시간 : MLQ (Multi-Level Queue) (0) | 2023.02.27 |
---|---|
스케줄링 시간 : SRTF (0) | 2023.02.25 |
스케줄링 시간 : RR (Round-Robin) (0) | 2023.02.24 |
스케줄링 시간 : SJF (0) | 2023.02.23 |
스케줄링 시간 : FCFS (0) | 2023.02.22 |