CPU 스케줄링

이상우·2022년 2월 8일
0

CPU 스케줄링이란?

컴퓨터 시스템의 모든 자원을 효율적으로 사용하기 위한 프로세스 관리 정책이다. 컴퓨터 시스템의 성능향상이라는 목적을 가진다.

CPU 스케줄링 알고리즘

  • 선점
    한 프로세스가 CPU를 할당받아 실행중이라도 다른 프로세스가 현재 프로세스를 중지 시키고 CPU를 강제적으로 뺏을 수 있는 스케줄링 방식
  • 비선점
    한 프로세스가 CPU를 할당받아 실행중이라면 다른 프로세스들이 CPU를 강제적으로 뺏을 수 없는 스케줄링 방식

1. FCFS(First-Come First-Served)

  • 먼저 요청한 프로세스 순으로 스케줄링
  • 비선점 방식
  • 자원의 효율성이 높다.
  • 일괄 처리 시스템 등에 적합하다.
  • 프로세서를 장시간 독점하는 경우 오랜 시간 기다려야 한다.
  • 대화형 시스템에 부적합하다.

2. SJF (Shortest-Job-First)

  • CPU 작업 시간이 가장 짧은 프로세스 순으로 스케줄링
  • 비선점 방식
  • 작업 시간이 동일할 경우 FCFS 정책을 따름
  • 평균 대기 시간 최소화
  • 시스템 내의 프로세스 수 최소화
  • 많은 프로세스들에게 빠른 응답 시간 제공
  • 무기한 연기 현상 발생 가능
  • 프로세스 생성 시 총 실행 시간에 대한 정확한 계산 불가능

3. SRTF (Shortest-Remaining-Time-First)

  • 선점 SJF 알고리즘 방식
  • 단점
    프로세스 생성시 총 실행시간 추정 작업 필요, 잦은 선점으로 문맥 교환 오버헤드 증대, 실행 시간이 긴 프로세스들의 평균 응답 시간 길어짐 => 구현 및 사용이 비현실적

4. RR (Round-Robin)

  • 시분할 시스템에서 사용
  • 선점 방식
  • 시간 조각(time slice)이라는 작은 시간을 정의하여 이 시간이 경과할 때마다 현재 프로세스를 중단하고 다음 프로세스를 실행
  • 장점: 응답시간이 짧아 대화형 시스템에 적합
  • 단점 : 알고리즘의 성능은 시간 조각에 의존함. 이 크기가 매우 크면 FCFS 알고리즘과 큰 차이가 없음. 반대로 매우 작으면 문맥 전환이 많이 발생.

5. 우선순위 스케줄링

  • 우선순위가 높은 프로세스 순으로 CPU 할당
  • 선점 또는 비선점
  • 우선순위가 같으면 FCFS 정책으로 할당
  • 낮은 수일수록 우선순위가 높음
  • 단점 : 우선순위가 낮은 프로세스의 경우 영구 대기 또는 굶주림 현상 발생

참고 사이트

profile
구상한것을 구현할 수 있는 개발자가 되고 싶습니다.

0개의 댓글