Operating System

[Operating System] 운영체제의 CPU 스케줄링(Scheduling)

구루싸 2020. 3. 7. 23:30
반응형
SMALL

이번 학습 주제는 운영체제의 CPU 스케줄링(Scheduling)입니다.

 

CPU 스케줄링

  • 특정 자원을 요청하고 있는 프로세스들을 대상으로 CPU 자원을 할당해 주는 순서를 정하는 일
  • CPU의 유휴 시간을 최소화해 CPU 활용을 극대화
  • 프로세스 평균 응답 시간을 단축
  • 공평한 자원 활용
  • Multi-tasking의 효율화

스케줄러의 역할에 따른 구분

  1. 장기 스케줄러
    • 상위 스케줄링(High level scheduling)
    • 작업 스케줄링(Job scheduling)
    • 어떤 작업이 시스템의 자원들을 차지할 것인지 결정
  2. 중기 스케줄러
    • 어떤 프로세스들이 CPU를 할당받을 것인지 결정
    • CPU를 사용하려는 프로세스 간 중재하여 일시 보류 및 재활성화
  3. 단기 스케줄러
    • 하위 스케줄링(Low level scheduling)
    • CPU 스케줄링
    • 프로세스 스케줄링
    • CPU 스케줄러인 Dispatcher에 의해 동작

스케줄러의 점유 방식에 의한 구분

  1. 선점(Preemptive)
    • 프로세스가 CPU 점유 중에도 다른 프로세스가 CPU 점유 가능
    • 빠른 응답, 모바일, RTOS
    • 대화식 시분할 적합
    • 문맥 교환에 따른 Overhead 발생
    • Round-robin, SRT, MLQ, MFQ
  2. 비선점(Non-preemptive)
    • 프로세스가 CPU를 해제할 때가지 다른 프로세스는 대기
    • 응답 시간 예상 용이
    • Batch Process 적합
    • 프로세스에 대한 요구를 공정하게 처리
    • 짧은 작업에도 장기간 대기하는 경우가 발생
    • FCFS, SJF, HRN, 우선순위, 기한부, MFQ

스케줄링 기법

  1. FCFS(First Come First Service)
    • 대기 큐에 먼저 들어온 잡(Job)을 먼저 수행
  2. SJF(Shortest Job First)
    • 수행 시간이 가장 짧다고 판단된 것을 먼저 수행
  3. HRN(Highest Response-ratio Next)
    • 우선 순위를 계산하여 그 숫자가 가장 큰 것부터 작은 순으로 우선 순위가 부여되며, 우선순위가 높은 것을 먼저 수행
  4. Round-robin
    • FCFS에 의해 프로세스들을 수행하고 같은 크기의 CPU 시간(Time Slice)을 할당
    • 할당된 시간 동안 실행이 완료되지 않으면 다음 프로세스에게 CPU를 넘겨주고 대기 큐의 가장 뒤로 배치
  5. SRT(Shortest Remaining Time)
    • SJF에 선점 방식을 도입한 것으로 처리가 완료되는 데까지 가장 짧은 시간이 소요된다고 판단되는 프로세스를 먼저 수행
  6. MLQ(Multi Level Queue)
    • 여러 종류의 그룹으로 나누어 여러 개의 큐를 이용하는 것
    • 각 큐의 독자적인 스케줄링 알고리즘에 따라서 CPU를 할당받는 방법
  7. MFQ(Multi level Feedback Queue)
    • 새로운 프로그램이 들어오면 높은 우선순위를 할당해 주어 단계 1에서 즉시 수행하고 점차 낮은 우선순위를 부여하여 단계가 n쯤 되는 나중에는 그 작업이 완료될 때까지 Round-robin으로 순환하는 방식
    • 비선점 기법인 우선순위 Queue와 선점 기법인 Round-robin을 모두 사용하므로 Hybrid 스케줄링 기법임

이번 학습은 여기서 마무리하겠습니다. 그럼 이만-_-

 

반응형
LIST