[운영체제] 스케줄링

찬들이·2022년 8월 13일
0

컴퓨터공학

목록 보기
12/34

🎯 스케줄링

  • 스케줄링은 다중 프로그래밍을 가능하게 하는 운영체제의 동작 기법이다.

  • 운영체제는 프로세스들에게 CPU등의 자원 배정을 적절히 함으로써 시스템의 성능을 개선할 수 있다.

    스케줄링의 목적

  • 공정성 : 모든 프로세스에 공정하게 할당합니다.

  • 처리율(량)증가 : 단위 시간당 프로세스를 처리하는 비율(양)을 증가시킵니다.

  • CPU 이용률 증가 : 프로세스 실행 과정에서 주 기억장치를 액세스한다든지, 입출력 명령실행 등의 원인에 의해 발생할 수 있는 CPU의 낭비 시간을 줄이고, CPU가 순수하게 프로세스를 실행하는데 사용되는 시간 비율을 증가시킵니다.

  • 우선순위 제도 : 우선순위가 높은 프로세스를 먼저 실행합니다.

  • 오버헤드 최소화 : 오버헤드를 최소화합니다.

  • 응답시간 최소화 : 작업을 지시하고 반응하기 시작하는 시간을 최소화합니다.

  • 반환시간 : 프로세스를 제출한 시간부터 실행이 완료되는 시간을 최소화합니다.

  • 반환시간 최소화 : 프로세스를 제출한 시간부터 실행이 완료될떄까지 걸리는 시간을 최소화합니다.

  • 대기시간 최소화 : 프로세스가 준비상태 큐에서 대기하는 시간을 최소화합니다.

  • 균형있는 자원의 사용 : 메모리, 입출력장치 등의 자원을 균형있게 사용합니다.

  • 무한 연기 회피 : 자원을 사용하기 위해 무한정 연기되는 상태를 회피합니다.

    선점형 스케줄링

  1. 하나의 프로세스가 CPU를 할당받아 실행하고 있을 때 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법입니다.
  2. 우선순위가 높은 프로세스를 빠르게 처리할 수 있습니다.
  3. 주로 빠른 응답시간을 요구하는 대화식 시분할 시스템에 사용됩니다.
  4. 많은 오버헤드를 초래합니다.
  5. 선점이 가능하도록 일정 시간 배당에 대한 인터럽트용 타이머 클록이 필요합니다.
  6. 선점 스케줄링의 종류에는 라운드로빈, SRT, 선점 우선순위, 다단계 큐, 다단계 피드백 큐 등의 알고리즘이 있습니다.
  • RR (Round Robin Scheduling RR)
    • 시분할 시스템을 위해 설계된 선점형 스케줄링
    • 프로세스들 사이에 우선순위를 두지 않고, 순서대로 시간단위로 CPU를 할당하는 방식의 알고리즘
  • SRT (Shortest Remaining Time Scheduling)
    • 최단 잔여시간을 우선으로 하는 스케줄링
    • 진행 중인 프로세스가 있어도 최단 잔여시간인 프로세스를 위해 sleep시키고 짧은 프로세스를 먼저 할당.
    • 선점형 SJF스케줄링이라 불린다.
  • MLQ (MultiLevel Queue Scheduling)
    • 우선순위마다 준비 큐 형성
    • 가장 높은 우선순위 큐의 프로세스에 CPU를 할당
    • 각 큐는 라운드로빈이나 FCFS등 독자적 스케줄링 사용 가능
    • 대화형, 배치 등의 프로세스 성격에 따라 우선순위 부여
    • 큐들 간의 프로세스 이동이 불가하기 때문에 스케줄링 부담이 적지만 유연성이 떨어짐
    • 우선순위가 낮은 프로세스는 오랬동안 CPU할당을 기다리는 기아 현상이 발생할 수도 있다.
  • MLFQ (MultiLevel Feedback Queue)
    • 우선순위마다 준비 큐 형성
    • MLQ와 비슷하게 높은 우선순위 큐의 프로세스에 CPU를 할당한다.
    • MLQ와의 차이점은 각 작업의 특성에 따라 동적으로 우선순위를 부여한다.
    • 기본적으로 우선순위가 높은게 먼저 실행 되지만, 같은 경우에는 RR방식으로 같이 실행 된다.

    비선점형 스케줄링

  1. 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법이다.
  2. 프로세스가 CPU를 할당받으면 해당 프로세스가 완료될 때까지 CPU를 사용한다.
  3. 프로세스 응답 시간의 예측이 용이하며, 일괄 처리 방식에 적합합니다.
  4. 중요한 작업이 중요하지 않은 작업을 기다리는 경우가 발생할 수 있습니다.
  5. 비선점 스케줄링의 종류에는 FCFS, SJF, 우선순위, HRN, 기한부 등의 알고리즘이 있습니다.
  • FCFS(First Come First Served)
    • 먼저 도착한 순서에 따라 작업을 수행하는 배치형 시스템
    • 오버헤드가 낮다는 장점을 가지고 있지만, 수행시간이 긴 프로세스가 자원을 점유하고 있을 경우 다른프로세스들이 그만큼 대기시간을 갖게 된다.
  • SJF(Shorteset Job First)
    • FCFS의 문제점을 해결하기 위해 나온 알고리즘
    • 시간이 짧은 프로세스 부터 먼저 수행한다.
    • 프로세스가 다음 CPU 요청에서 얼마만큼의 CPU burst를 가지는지 알 수 없기 때문에 한계가 있다.
  • HRN(Highest Response ratio Next)
    • 짧은 작업에 유리한 SJF의 단점을 개선 한 기법으로 각 작업의 우선순위로 서비스 해주는 스케줄링.
    • 오랫동안 대기하는 프로세스에 우선순위를 증가시켜 기아상태를 해결할 수 있다.
profile
Junior-Backend-Developer

0개의 댓글