동기적
• 어떤 작업을 요청했을 때, 그 작업이 종료될 때 까지 기다리고 그 후에 작업을 진행한다.
• 작업순서를 보장해야 할 때 쓰인다.
비동기적
• 어떤 작업을 요청했을 때, 그 작업이 종료될 때 까지 기다리지 않고, 다음 작업을 수행한다.
• 작업순서를 보장하지 않아도 된다.
장기스케줄러
'Job 스케줄러'라고도 불린다. 메모리에 어떤 작업을 올릴지 결정하는 스케줄러 이다.
단기스케줄러
'CPU 스케줄러' 라고도 불린다. 메모리에 올라간 작업들중 어떤 작업에 CPU를 할당할지 결정하는 스케줄러이다.
중기스케줄러
이미 올라간 작업들 중, CPU가 감당하기에 어려울 것 같으면, 몇개의 작업을 다시 메모리에서 내리는데 어떤걸 내릴지 결정하는 스케줄러가 중기스케줄러이다.
• FCFS(First Come First Served)
먼저 온 작업들부터 처리하는 방식, 즉 먼저 온 순서대로 처리하는 방식이다.
비선점형 스케줄링 방식이므로, 할당되었던 CPU가 반납될때만 스케줄링이 일어난다.
• SJF(Shortest Job First)
메모리에 올라온 작업들중, 작업시간이 짧은 작업들을 우선적으로 스케줄링 해주는 방식이다. 비선점형 스케줄링 방식이므로, CPU가 반납되었을때만 다음 작업에 CPU를 할당한다.
• SRTF(Shortest Remaining Time First)
현재 수행중인 작업의 burst time보다, 새로 들어온 작업의 burst time이 짧으면 CPU를 새로 들어온 작업에 할당한다. CPU가 할당되어있더라도, 더 짧은 작업이 오면 다시 할당해주므로 선점형 스케줄링 방식이다.
• Priority Scheduling
프로세스에게 우선순위를 정적, 혹은 동적으로 부여하여 우선순위가 높은 순서대로 처리한다. 동적으로 부여할 경우, 구현이 복잡하고 오버헤드가 많다는 단점이 있으나, 시스템의 응답속도를 증가시킨다.
• RR (Round-Robin)
각 프로세스는 같은 크기의 CPU 시간을 할당 받고 선입선출에 의해 행된다. 할당시간이 너무 크면 선입선출과 다를 바가 없어지고, 너무 작으면 오버헤드가 너무 커진다.
선점형 줄링 : SRTF, SRT, RR, MQ
비선점형 스케줄링 : FIFO, SJF, HRN