비선점형 방식(non-preemptive)
프로세스가 스스로 CPU 소유권을 포기하는 방식이다. 강제로 프로세스를 중지하지 않는다. 따라서 컨텍스트 스위칭으로 인한 부하가 적다.
FCFS(First Come, First Served)
가장 먼저 온 것을 가장 먼저 처리하는 알고리즘이다. 길게 수행되는 프로세스 때문에 '준비 큐에서 오래 기다리는 현상' 이 발생하는 단점이 있다.
SJF(Shortest Job First)
실행 시간이 짧은 프로세스를 가장 먼저 실행하는 알고리즘이다. 긴 시간을 가진 프로세스가 실행되지 않는 현상이 일어나며 평균 대기 시간이 가장 짧다. 하지만 실제로는 실행 시간을 알 수 없기 때무에 과거의 실행했던 시간을 토대로 추측한다.
우선순위
기존 SJF 스케줄링의 경우 긴 시간을 가진 프로세스가 실행되지 않는 현상이 있었다. 이는 오래된 작업일수록 '우선순위를 높이는 방법'을 통해 단점을 보완한 알고리즘이다.
선점형방식(preemptive)
운영체제가 쓰는 방식으로 지금 사용하고 있는 프로세스를 알고리즘에 의해 중단시켜 버리고 강제로 다른 프로세스의 CPU 소유권을 할당하는 방식을 말한다.
라운드 로빈(RR, Round Robin)
각 프로세스는 동일한 할당 시간을 주고 그 시간안에 끝나지 않으면 다시 준비 큐의 두로 가는 알고리즘이다.
시간이 지나면 자기 차례가 오게 된다. 할당 시간이 너무 크면 FCFS가 되고 짧으면 컨텍스트 스위칭이 잦아져서 오버헤드 , 즉 비용이 커진다. 일반적으로 전체 작업 시간은 길어지지만 평균 응답 시간은 짧아진다는 특징이 있다.
SRF
중간에 실행 시간이 더 짧은 작업이 들어와도 기존 짧은 작업을 모두 수행하고 그 다음 짧은 작업을 이어나간다. 중간에 더 짧은 작업이 들어오면 수행하던 프로세스를 중지하고 해당 프로세스를 수행하는 알고리즘이다.
다단계 큐
각 프로세스안에 여러 알고리즘을 넣은 상태를 말한다.
총 정리
---------------------------------------------------------------------------------------------------
프로세스를 실행 시키고 어떤 알고리즘을 사용하느냐에 따라 작업하는 속도가 달라진다.
만약 그냥 사용한다면 언제 끝날지 모르는 작업 때문에 1초 또는 10초 안에 끝나는 작업들은 대기하는 상태가 된다. 하지만 FSFC 알고리즘을 사용한다면 짧은 시간 걸리는 프로세스를 먼저 끝내는 장점이 있지만 짧은 프로세스가 게속 들어온다면 오래 걸리는 프로세스는 언제 작업할지 모르게 된다.
이러한 문제를 해결 하기 위해서 SJF 알고리즘을 이용하여 각자의 프로세스가 언제 끝나는지 파악을 해야하고 이것을 해결 하기 위해서, 우선순위 알고리즘을 사용하여 오래걸리는 프로세스든 짧은 프로세스든 우선순위를 정해서 급한것 부터 끝낼수가 있다.
선점형방식(preemptive)
운영체제가 쓰는 방식으로 지금 사용하고 있는 프로세스를 알고리즘에 의해 중단시켜 버리고 강제로 다른 프로세스의 CPU 소유권을 할당하는 방식을 말한다.
라운드 로빈(RR, Round Robin)
각 프로세스는 동일한 할당 시간을 주고 그 시간안에 끝나지 않으면 다시 준비 큐의 뒤로 가는 알고리즘이다.
일반적으로 전체 작업 시간은 길어지지만 평균 응답 시간은 짧아진다는 특징이 있다.
SRF
중간에 실행 시간이 더 짧은 작업이 들어와도 기존 짧은 작업을 모두 수행하고 그 다음 짧은 작업을 이어나간다. 중간에 더 짧은 작업이 들어오면 수행하던 프로세스를 중지하고 해당 프로세스를 수행하는 알고리즘이다.
다단계 큐
각 프로세스안에 여러 알고리즘을 넣은 상태를 말한다.