1. FCFS (First Come First Served) : 들어온 순서 대로
- 작동 원리: 프로세스는 도착한 순서대로 큐에 들어가고, CPU는 큐의 맨 앞에 있는 프로세스부터 처리합니다.
- 시나리오: 만약 A, B, C 세 프로세스가 순서대로 도착하고, A가 가장 많은 시간을 필요로 한다면, B와 C는 A가 끝날 때까지 기다려야 합니다.
- 적합한 상황: 작업들이 대략적으로 비슷한 시간을 요구하고, 시스템이 간단한 배치 처리에 사용될 때 적합합니다.
- 비유: 은행의 창구에서 대기하는 고객들을 생각해볼 수 있습니다. 먼저 온 고객이 먼저 서비스를 받습니다. 만약 많은 시간이 필요한 고객이 먼저 와 있다면, 다른 고객들은 긴 대기 시간을 갖게 됩니다.
2. SJF (Shortest Job First) : 시간이 짧은 순서대로
- 작동 원리: CPU는 가장 짧은 실행 시간을 가진 프로세스에게 우선적으로 할당됩니다.
- 시나리오: 프로세스 A, B, C가 있고, 각각 2분, 4분, 1분의 실행 시간이 필요하다면, C(1분) → A(2분) → B(4분) 순으로 처리됩니다.
- 적합한 상황: 프로세스의 실행 시간을 예측할 수 있고, 짧은 작업을 빠르게 처리해야 할 때 유용합니다.
- 비유: 식당에서 주문하는 상황을 예로 들 수 있습니다. 요리 시간이 가장 짧은 음식을 먼저 조리하여 서빙합니다. 이렇게 하면 평균 대기 시간이 줄어듭니다. 하지만, 매우 복잡한 요리를 주문한 손님은 오래 기다려야 할 수 있습니다.
3. SRTF (Shortest Remaining Time First) : 응답시간이 중요하고 남은 시간이 짧은 순서대로
- 작동 원리: SJF와 유사하지만, 새로 도착하는 프로세스의 남은 시간이 현재 진행 중인 프로세스보다 적으면 CPU를 빼앗습니다.
- 시나리오: A가 8분 남았을 때 4분짜리 B가 도착하면, 시스템은 B를 먼저 처리합니다.
- 적합한 상황: 응답 시간이 중요하고, 프로세스의 실행 시간이 동적으로 변할 수 있는 환경에 적합합니다.
- 비유: 응급실에서 환자를 치료하는 상황을 생각해볼 수 있습니다. 더 심각한 상태의 환자가 도착하면 의사는 현재 치료 중인 환자를 잠시 미루고 더 긴급한 환자를 먼저 치료합니다.
4. Round Robin : 시간이 공평하게 주어짐
- 작동 원리: 모든 프로세스는 동일한 크기의 타임 퀀텀 동안 CPU를 할당받습니다. 타임 퀀텀이 지나면, CPU는 다음 프로세스로 넘어갑니다.
- 시나리오: 타임 퀀텀이 4분이고 A, B, C가 각각 10분, 20분, 15분이 필요하다면, 이 프로세스들은 순환하며 각각 4분씩 CPU를 사용합니다.
- 적합한 상황: 타임 쉐어링 시스템 또는 실시간 시스템에서 적합하며, 모든 프로세스에게 공정한 CPU 접근을 제공하고자 할 때 유용합니다.
- 비유: 어린이들이 놀이터에서 놀이기구를 사용하는 것을 생각해볼 수 있습니다. 각 어린이는 동일한 시간 동안 놀이기구를 사용하고, 시간이 끝나면 다음 어린이가 사용합니다. 이렇게 모두에게 공평한 시간이 주어집니다.
5. Multilevel Queue Scheduling : 우선순위 별로 각각 처리.
- 작동 원리: 프로세스는 여러 큐 중 하나에 배치되며, 각 큐는 다른 우선순위와 자체 스케줄링 알고리즘을 가집니다.
- 시나리오: 시스템 프로세스, 사용자 대화형 프로세스, 배치 프로세스 등으로 분류할 수 있으며, 각각 다른 큐와 스케줄링 정책을 적용합니다.
- 적합한 상황: 다양한 프로세스 유형을 효과적으로 관리해야 하는 복잡한 시스템에 적합합니다.
- 비유: 공항의 보안 검색대를 예로 들 수 있습니다. 승객들은 일반, 우선, 승무원 등 다양한 큐로 분류됩니다. 각 큐는 다른 우선순위와 처리 규칙을 갖고 있어, 예를 들어 우선 큐의 승객들은 더 빠르게 검색대를 통과할 수 있습니다.
![[572182c9-d9c2-414a-adce-5c858fa4cb69.webp]]
- First Come First Served (FCFS): 작업들이 도착한 순서대로 처리되는 모습을 보여줍니다.
- Shortest Job First (SJF): 실행 시간이 가장 짧은 작업이 선택되어 처리되는 것을 나타냅니다.
- Shortest Remaining Time First (SRTF): 실행 중인 작업이 더 짧은 작업이 도착하면 중단되고 새로운 작업이 처리되는 모습을 보여줍니다.
- Round Robin: 각 작업이 고정된 시간(타임 퀀텀) 동안 순서대로 처리되는 것을 나타냅니다.
- Multilevel Queue Scheduling: 다양한 우선순위를 가진 여러 큐에 작업이 분류되고, 각 큐가 자체 스케줄링 규칙을 갖는 모습을 보여줍니다.