CPU 스케줄링(CPU-Scheduling)

YeYe·2020년 4월 28일
1
post-thumbnail

스케줄링

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

다중 프로그래밍을 지원하는 OS에서 프로세서(CPU)를 효율적으로 관리하기 위해 필요하다.

💡 다중 프로그래밍이란?  - CPU가 쉬지 않고 항상 실행되게 함으로써 CPU 이용률을 높이는 것. 

보통 OS는 하나의 프로세스를 선택해서 실행한다.
프로세스를 실행 중에 입출력 동작을 만나게 되면 입출력 장치를 수행하고, CPU가 쉬게 된다.
입출력 동작을 수행하는 동안 다른 프로세스를 수행하여 CPU를 낭비하지 않는 것이 다중 프로그래밍이다.

대표적인 시스템 성능 지표

성능지표내용
응답 시간(response time)시스템이 사용자의 요구에 응답하는 시간
작업 처리량(throughtput)단위 시간 내의 프로세스 처리량
자원 활용도(response time)주어진 기간 동안의 자원의 활용 정도

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 정책으로 할당

  • 낮은 수일수록 우선순위가 높음

  • 단점
    : 우선순위가 낮은 프로세스의 경우 영구 대기 또는 굶주림 현상 발생


++ 계속 해서 업데이트 될 예정입니다. (다중레벨 큐 스케줄링, 다중레벨 피드백 큐 스케줄링)

0개의 댓글