sjf srt

agnusdei·2024년 11월 8일
0

Hardware & Software

목록 보기
107/136

SJF (Shortest Job First)SRT (Shortest Remaining Time)는 CPU 스케줄링 알고리즘입니다. 이 두 알고리즘은 작업을 처리할 때 남은 실행 시간을 기준으로 작업의 우선순위를 결정하지만, 약간의 차이가 있습니다.

이 두 방식의 차이점을 설명하겠습니다.

  1. SJF (Shortest Job First)

    • 정의: SJF는 가장 짧은 작업을 먼저 실행하는 비선점(Non-Preemptive) 방식의 스케줄링입니다. 프로세스가 시작되면 다른 작업이 완료될 때까지 기다립니다.
    • 작동 원리: 모든 프로세스의 실행 시간이 미리 알려져 있다고 가정하고, 가장 짧은 작업이 CPU를 얻을 수 있도록 스케줄링합니다. 한 번 작업이 시작되면 중간에 멈추지 않고 끝까지 실행됩니다.
    • 장점: 대기 시간이 적고, 전체 프로세스의 평균 대기 시간이 최소화됩니다.
    • 단점: 실행 도중 더 짧은 새로운 작업이 도착하더라도 실행 중인 프로세스를 끝까지 실행해야 하므로 즉시 처리하지 못하는 경우가 발생합니다. 이로 인해 긴 작업은 계속 대기 상태에 있을 수 있어 스타베이션(Starvation) 문제가 발생할 수 있습니다.

예시

프로세스 P1, P2, P3가 있고 실행 시간이 각각 5초, 3초, 1초라면, SJF는 가장 짧은 P3부터 실행한 후 P2, P1 순서로 처리합니다.

  1. SRT (Shortest Remaining Time) - 선점형

    • 정의: SRT는 남은 실행 시간이 가장 짧은 작업을 우선 실행하는 선점형(Preemptive) 스케줄링 방식입니다. 실행 중인 프로세스보다 남은 시간이 짧은 새로운 프로세스가 도착하면 실행 중인 작업을 중단하고 새로 도착한 프로세스를 실행합니다.
    • 작동 원리: 현재 실행 중인 프로세스의 남은 시간과 새로 도착한 프로세스의 총 시간을 비교하여 남은 시간이 더 짧은 프로세스를 선택해 CPU를 할당합니다. 이 과정에서 실행 중인 작업을 중간에 멈추고 새로운 작업으로 전환할 수 있습니다.
    • 장점: 더 짧은 작업을 즉시 처리할 수 있어 대기 시간이 줄어듭니다. 특히 평균 대기 시간이 최소화됩니다.
    • 단점: 작업이 계속해서 멈추고 새로운 작업으로 전환될 수 있어, 특정 작업이 너무 오래 대기하거나 자주 중단되는 문맥 전환 오버헤드(Context Switch Overhead)가 발생할 수 있습니다.

예시

P1이 실행 시간 5초로 실행 중인 상태에서, P2(3초)와 P3(1초)가 도착할 경우, SRT는 현재 실행 중인 P1을 멈추고 P3(1초)를 먼저 실행하게 됩니다. 이후 남은 작업 중에서 P2(3초)를 실행하고, 마지막으로 P1을 이어서 실행합니다.

SJF와 SRT의 차이 요약

1.	선점 여부: SJF는 비선점형이어서 한 번 시작된 작업은 끝까지 실행됩니다. 반면 SRT는 선점형으로, 더 짧은 작업이 도착하면 현재 작업을 멈추고 새로운 작업을 시작할 수 있습니다.
2.	처리 방식: SJF는 모든 작업의 실행 시간이 고정되어 있는 경우에만 적합하며, 새로운 짧은 작업이 와도 대기해야 합니다. 반면 SRT는 도중에 들어오는 새로운 작업을 즉시 반영하여 짧은 작업을 우선 처리합니다.
3.	효율성: SJF는 평균 대기 시간이 적은 편이지만, 새로 도착한 짧은 작업을 즉시 반영하지 못해 효율성이 떨어질 수 있습니다. SRT는 더 짧은 작업을 실시간으로 반영해 처리 효율이 높지만, 잦은 문맥 전환으로 인한 오버헤드가 발생할 수 있습니다.

요약

•	SJF (Shortest Job First): 비선점형, 작업이 시작되면 중단하지 않음.
•	SRT (Shortest Remaining Time): 선점형, 더 짧은 작업이 들어오면 즉시 전환하여 실행.

이 두 방식은 평균 대기 시간을 최소화하려는 목적은 같지만, 스케줄링 방식의 차이로 인해 상황에 따라 장단점이 다릅니다. SRT는 실시간 시스템이나 단기적인 작업에, SJF는 예측 가능한 작업 환경에 적합합니다.

0개의 댓글