CPU 스케줄링

SIHA·5일 전

CS복습_OS

목록 보기
4/7

CPU 스케줄링

: 여러 프로세스가 CPU를 기다리는 상황에서 CPU를 어떤 프로세스에 할당할지 결정하는 과정
스케줄링 알고리즘을 통해 프로세스 실행 순서를 결정한다.

CPU 스케줄링 성능 척도

; 성능 평가 지표

CPU 이용률 (CPU Utilization)

전체 시간 중 CPU가 놀지 않고 일한 시간 비율.
높을수록 CPU를 가용할 수 있는 시간 대비 CPU가 일한 시간이 높은 것이므로, 높을수록 좋음

처리량 (Throughput)

주어진 시간 동안 처리되는 프로세스 수.
클수록 좋음

대기 시간 (Waiting Time)

Ready 상태에서 CPU를 기다린 총 시간
Ready Queue에 머문 시간
짧을수록 좋음

응답 시간 (Response Time)

Ready 상태의 프로세스에게 최초로 CPU가 할당되기까지 걸린 시간.
즉, 얼마나 빨리 시작할 수 있는지

소요 시간 (Turnaround time)

프로세스가 CPU를 요청한 시점으로부터 원하는 만큼의 CPU를 모두 사용하는 데 걸린 시간
짧을 수록 좋음

시스템 입장에서의 성능 척도

  • CPU 하나 가지고 최대한 많은 일을 시킬 수 있으면 성능이 좋음
  • 주요 지표: CPU 이용률, 처리량

프로그램 입장에서의 성능 척도

  • 프로그램이 최대한 빨리 끝날 수 있으면 성능이 좋음
  • 주요 지표: 대기 시간, 응답 시간, 소요 시간

CPU 스케줄링 알고리즘

선점형 스케줄링과 비선점형 스케줄링

선점형 스케줄링은 CPU를 강제로 빼앗기지만,
비선점형 스케줄링은 CPU를 강제로 빼앗기지 않음.
즉, 비선점형은 모든 실행을 끝내야지만 다음 프로세스를 실행할 수 있다.

FCFS (First-Come First-Serve)

  • 먼저 온 프로세스부터 CPU를 할당, 비선점형 스케줄링
  • 단점: 소요 시간이 긴 프로세스가 먼저 도착할 경우, 전체적으로 프로세스들의 효율성을 낮춤

SJF (Shortest-Job-First)

CPU Burst: 프로세스가 CPU를 사용해 계산이나 데이터 처리 작업을 수행하는 시간
Starvation: 우선순위가 낮은 프로세스가 장시간 동안 자원을 할당받지 못하는 상태

  • CPU Burst가 짧은 프로세스에게 먼저 CPU를 할당, 비선점형 스케줄링
    CPU를 적게 사용하는 프로세스 먼저 실행
  • 단점: CPU Burst가 긴 프로세스는 오랜 시간 CPU를 할당받지 못하는 starvation 문제가 발생할 수 있음

SRTF (Shortest-Remaining-Time-First)

  • SJF와 유사하나 중간에 새로운 프로세스가 도착하면 새로 스케줄링, 선점형 스케줄링
  • 현재 실행 중인 프로세스의 남은 CPU Burst 시간보다 더 짧은 CPU Burst 시간을 가지는 프로세스가 도착하면 CPU를 빼앗김

Priority Scheduling

  • 우선순위대로 CPU 할당
  • 선점형 스케줄링 방식에서는 더 높은 우선 순위의 프로세스가 도착하면 그 프로세스에게 CPU를 빼앗김
  • 비선점형 스케줄링 방식에서는 더 높은 우선 순위의 프로세스가 도착하더라도 그 프로세스는 우선 ready queue에 위치됨
  • 이 방식에서도 starvation 문제가 발생하여 aging 기법을 사용
  • aging은 오래 기다린 프로세스에게 우선순위를 높여주는 것

Round Robin

  • 가장 현대적인 방식, 각 프로세스에게 동일한 크기의 CPU 할당 시간을 줌
  • 할당 시간이 지난 프로세스는 ready queue의 제일 뒤에 가서 다시 CPU를 기다림
  • 장점: 가장 빠른 응답 시간을 기대할 수 있음
  • 주의: 할당 시간이 너무 큰 경우, FCFS처럼 동작해버리고,
    너무 짧은 경우, 문맥 교환 오버헤드(Context switching overhead)가 커지기 때문에 적절한 할당시간을 설정해야 함
profile
뭐라도 해보자

0개의 댓글