3월 18일-프로세스 스케줄링 알고리즘

Yullgiii·2024년 3월 18일
0
post-thumbnail

프로세스 스케줄링

프로세스 스케줄링 알고리즘은 운영 체제에서 CPU 사용 권한을 프로세스들 사이에서 어떻게 배분할지 결정하는 방법을 정의한다. 여기서는 주요 프로세스 스케줄링 알고리즘과 그 특성을 살펴본다.

1. FCFS (First-Come, First-Served)

  • 설명: 먼저 도착한 프로세스를 먼저 처리한다. 가장 간단하고 공평한 알고리즘으로 간주될 수 있다.
  • 특징: 구현이 쉽지만, 짧은 작업이 긴 작업 뒤에 오면 긴 대기 시간이 발생할 수 있다는 '컨보이 효과'가 단점이다.

2. SJF (Shortest Job First)

  • 설명: 실행 시간이 가장 짧은 프로세스를 먼저 스케줄링한다.
  • 특징: 평균 대기 시간을 최소화하지만, 실행 시간을 미리 알아야 하고, 긴 작업이 계속 대기할 수 있는 '기아 현상'을 초래할 수 있다.

3. SRTF (Shortest Remaining Time First)

  • 설명: SJF의 선점 버전으로, 남은 실행 시간이 가장 짧은 프로세스를 우선적으로 처리한다.
  • 특징: 응답 시간을 개선할 수 있으나, 실행 시간을 알아야 하고 기아 현상이 발생할 수 있다.

4. Round Robin (RR)

  • 설명: 각 프로세스에게 동일한 크기의 시간 할당량(타임 슬라이스)을 부여하고 순서대로 실행한다.
  • 특징: 공평한 CPU 시간 배분이 가능하지만, 타임 슬라이스의 크기에 따라 성능이 달라질 수 있다.

5. Priority Scheduling

  • 설명: 프로세스마다 우선순위를 부여하고, 가장 높은 우선순위를 가진 프로세스부터 스케줄링한다.
  • 특징: 유연한 스케줄링이 가능하지만, 낮은 우선순위 프로세스가 무한정 대기하는 기아 현상이 발생할 수 있다.

6. Multilevel Queue Scheduling

  • 설명: 프로세스를 여러 개의 큐에 분류하고, 각 큐마다 다른 스케줄링 알고리즘을 적용한다.
  • 특징: 프로세스 유형(예: 시스템 프로세스, 대화형 프로세스, 배치 프로세스)에 따라 우선순위와 특성을 고려할 수 있다.

7. Multilevel Feedback Queue Scheduling

  • 설명: Multilevel Queue Scheduling에 피드백을 추가해, 프로세스의 행동에 따라 큐 사이를 이동할 수 있게 한다.
  • 특징: 프로세스의 CPU 사용 패턴에 따라 동적으로 우선순위를 조정할 수 있어 유연성이 높다.

각 스케줄링 알고리즘은 특정 환경과 요구 사항에 따라 장단점을 가진다. 운영 체제는 이러한 알고리즘들을 적절히 선택하고 조합하여 시스템의 성능을 최적화한다.

profile
개발이란 무엇인가..를 공부하는 거북이의 성장일기 🐢

0개의 댓글