프로세스 스케줄링(Process Scheduling)

할당 대상에 따른 스케줄링 분류

프로세스 스케줄링은 자원의 할당 대상에 따라 크게 세 가지로 분류할 수 있습니다.

장기 스케줄링(Long-Term Scheduling)

  • 시스템에 새로운 프로세스를 생성할 때 결정되는 스케줄링 방식입니다.

  • 작업(Job) 스케줄링이라고도 불리며, 어떤 프로세스를 실행할 것인지 결정합니다.

  • 주요 목표는 다중 프로그래밍의 정도를 제어하는 것입니다.

  • 빈도가 낮고, 주로 배치 처리 시스템에서 사용됩니다.

중기 스케줄링(Mid-Term Scheduling)

  • 실행 중이지만 대기 중인 프로세스를 일시적으로 메모리에서 제거하거나 다시 불러오는 스케줄링 방식입니다.

  • 스왑(Swapping) 기법을 활용하여 메모리 활용도를 높입니다.

  • 운영체제가 메모리 자원의 최적화를 위해 특정 프로세스를 디스크로 내보냈다가 다시 불러오는 역할을 합니다.

단기 스케줄링(Short-Term Scheduling)

  • CPU 스케줄링이라고도 하며, 실행 가능한 프로세스 중에서 어떤 프로세스를 CPU에서 실행할 것인지 결정합니다.

  • 매우 빈번하게 실행되며, 운영체제의 성능에 직접적인 영향을 미칩니다.

  • 프로세스의 상태가 준비(Ready) 상태에서 실행(Running) 상태로 전환될 때 적용됩니다.

프로세스 인터럽트(Interrupt) 👆

강제 중단 여부에 따른 스케줄링 분류

CPU 스케줄링 기법은 프로세스가 강제로 중단될 수 있는지 여부에 따라 두 가지로 나뉩니다.

비선점(Non-Preemptive) 스케줄링

  • 한 프로세스가 CPU를 점유하면, 해당 프로세스가 종료될 때까지 CPU를 다른 프로세스에 양보하지 않습니다.

  • 문맥 전환(Context Switching)이 적어 오버헤드가 낮습니다.

종류

  • FIFO(First In First Out)
  • SJF(Shortest Job First)
  • HRN(Highest Response Ratio Next)

선점(Preemptive) 스케줄링

  • 실행 중인 프로세스가 CPU를 점유하고 있더라도, 더 높은 우선순위를 가진 프로세스가 등장하면 실행 중인 프로세스가 강제로 중단될 수 있습니다.

  • 빠른 응답성과 공정한 자원 분배가 가능하지만, 문맥 전환 비용이 발생합니다.

종류

  • Round Robin(RR)

  • SRT(Shortest Remaining Time)

  • MFQ(Multilevel Feedback Queue)

프로세스의 상태(Process States) 👆

프로세스 스케줄링 원칙

운영체제는 여러 스케줄링 정책을 조합하여 시스템의 성능을 최적화합니다. 일반적인 스케줄링 원칙은 다음과 같습니다.

  1. 공정성(Fairness)

    • 모든 프로세스가 CPU를 사용할 기회를 공정하게 부여받아야 합니다.

  2. 응답 시간 최소화(Response Time Minimization)

    • 대화형(interactive) 시스템에서 사용자 요청에 대한 응답 시간을 최소화해야 합니다.

  3. 처리량 최대화(Throughput Maximization)

    • 단위 시간당 실행되는 프로세스 수를 최대화하여 시스템의 생산성을 높입니다.

  4. CPU 이용률 극대화(CPU Utilization Maximization)

    • CPU가 유휴 상태(idle)로 남아 있는 시간을 최소화하여 성능을 극대화합니다.

  5. 대기 시간 최소화(Waiting Time Minimization)

    • 프로세스가 실행을 기다리는 시간을 최소화해야 합니다.

  6. 우선순위 기반 스케줄링(Priority Scheduling)

    • 중요한 프로세스는 더 빠르게 실행될 수 있도록 우선순위를 고려하여 스케줄링합니다.

  7. 기아(Starvation) 방지

    • 우선순위가 낮은 프로세스가 무한정 대기하지 않도록 보장하는 정책(예: 에이징(Aging) 기법) 적용이 필요합니다.

운영체제 UNIX 👆

결론

프로세스 스케줄링은 시스템의 성능을 최적화하고 공정성을 유지하기 위해 매우 중요한 역할을 합니다. 장기, 중기, 단기 스케줄링을 적절히 활용하고, 선점형과 비선점형 스케줄링 기법을 상황에 맞게 조합하여 적용하면, 운영체제의 효율성을 극대화할 수 있습니다. 또한, 스케줄링 원칙을 준수하여 응답 시간과 대기 시간을 최소화하고, 시스템의 처리량을 극대화하는 것이 중요합니다.

프로세스 인터럽트(Interrupt)

운영체제 Windows 👆






0 0 votes
Article Rating
Subscribe
Notify of
guest
1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
trackback

[…] 프로세스 스케줄링(Process Scheduling) […]

Popup Image
바로가기