라이프프_LIFE IS A PROJECT

프로세스 스케줄링 기법 [정보처리기사 필기] 본문

정보처리기사

프로세스 스케줄링 기법 [정보처리기사 필기]

라이프프 2024. 5. 4. 17:07

스케줄링이란

프로레스 생성되어 실행될 때 필요한 시스템의 자원들을 해당 프로세스에 할당하는 작업

대기 시간 최소화, 공평성 최대화 목적

스케줄링 이미지
스케줄링 도식(출처: https://gamedevlog.tistory.com/78)

스케줄링 종류

1. 선점(Peemptive) 스케줄링: 하나의 프로세스가 CPU 차지하고 있어도 우선순위 높은 다른 프로세스가 현재 프로세스 중단 후 CPU 점유하는 방식

(1) 라운드 로빈(Round Robin)

프로세스 할당된 시간내 처리 못할 시 준비 큐 리스트 가장 뒤로 이동, CPU는 대기중인 다음 프로세스로 넘어감

 

(2) SRT(Shortest Remaining Time First)

가장 짧은 시간이 소요되는 프로세스를 먼저 수행

남은 시간이 짧다고 판단되는 프로세스가 준비 큐에 생기면 언제라도 프로세스 선점

 

(3) 다단계 큐(Multi Level Queue)

우선 순위에 따라 준비 큐 여러개 사용하는 방식

 

(4) 다단계 피드백 큐(Multi Level Feedback Queue)

우선 순위 변경할 수 없는 Multi Level Queue에서 발전한 알고리즘으로 프로세스와 우선 순위 변경 가능

 

2. 비선점(Non-Preemptive) 스케줄링: 하나의 CPU에 할당된 프로세스는 다른 프로세스가 강제로 빼앗을 수 없도록 만든 기법

(1) FCFS 스케줄링(First Come First Serve Scheduling)

먼저 요청한 프로세스가 먼저 CPU를 배정받는 방식

 

(2) SJF(Shortest Job First)

프로세스 도착 시점 당시 가장 작은 서비스 시간(실행 시간)을 가진 프로세스가 종료시까지 선점

 

(3) HRN(Highest Response Ratio Next)

대기 중인 프로세스 중 현재 Response Ratio 가장 높은 것 선택

Response Ratio = (대기 시간 + 서비스 시간) / 서비스 시간