본문 바로가기

CS/Operating System

[정보처리산업기사] 4. 스케줄링

1) 스케줄링

(1) 스케줄링의 개요
       => 프로세스가 생성되어 실행될 때, 필요한 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업

(2) 스케줄링의 목적
      => 대기 시간은 최소화하고 처리는 공평하게 하는 것

(3) 스케줄링의 종류
      => 프로세스가 실행되어 완료될 때까지 프로세스는 여러 종류의 스케줄링 과정을 거침
            ① 선점 스케줄링
            ② 비선점 스케줄링

2) 선점 스케줄링

=> 하나의 프로세스가 CPU를 차지하고 있을 때, 우선순위가 높은 다른 프로세스가 현재 프로세스를 중단시키고, 강제로 CPU를 점유하는 스케줄링 방식

[장점] : 비교적 응답이 빠름
[단점] : 처리 시간을 예측하기 힘듦, 높은 우선순위 프로세스들이 계속 들어오는 경우 오버헤드 초래

(1) RR (Round Robin)

- 시분할 시스템을 사용함
     : 프로세스들 사이에 우선순위를 두지 않고, 순서대로 시간단위(Time Quantum/Slice)로 CPU를 할당하는 방식

- FCFS(FIFO) 알고리즘을 선점 형태로 변환한 기법
     : 프로세스는 같은 크기의 CPU 시간을 할당, 프로세스가 할당된 시간 내에 처리 완료를 못하면 준비 큐 리스트의 가장 뒤로 보내고, CPU는 대기 중인 다음 프로세스로 넘어감

(2) SRT (Shortest Remaining Time First)

- 가장 짧은 시간이 소요되는 프로세스를 먼저 수행
     : 
현재 실행중인 프로세스의 남은 시간과 준비상태 큐에 새로 도착한 프로세스의 실행 시간을 비교함
       => 그 후, 가장 짧은 실행 시간을 요구하는 프로세스에게 CPU를 할당하는 기법

 


(3) MLQ (다단계 큐)

- 작업들을 여러 종류 그룹으로 분할하여 수행
     : 여러 개의 큐를 이용하여 상위단계 작업에 의한 하위단계 작업이 선점당하는 알고리즘

3) 비선점 스케줄링

=> 프로세스가 CPU를 할당 받으면 해당 프로세스가 완료될 때까지 CPU를 사용하지 않고 기다리는 스케줄링 방식

(1) FCFS

- 먼저 요청한 프로세스가 먼저 CPU를 배정 받는 스케줄링 방법
     : 프로세스가 대기 큐에 도착한 순서에 따라 CPU를 할당하는 방식

(2) SJF(Shortest Job First)

- 프로세스가 가장 짧은 작업부터 수행하는 스케줄링 방법

[ 장점 ] : 준비 큐 작업 중 가장 짧은 작업부터 수행하므로 평균 대기시간 최소
[ 단점 ] : CPU에서 요구 시간이 긴 작업과 요구 시간이 짧은 작업 간의 불평등이 심해짐
                  => CPU 요구시간이 긴 프로세스는 기아 현상 발생

기아 현상 : 시스템 부하가 많아서 준비 큐에 있는 낮은 등급의 프로세스가 무한정 기다리는 현상
에이징 기법 : 기아 현상을 해결하는 방법
                             => 오랫동안 기다린 프로세스에게 우선순위를 높여주는 기법
[ 출처 ]
https://velog.io/@ohsol/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4-%EC%8A%A4%EC%BC%80%EC%A4%84%EB%A7%81-%EC%A2%85%EB%A5%98%EC%99%80-%EA%B8%B0%EB%B2%95