1. CPU 스케줄링 (CPU Scheduling)

: 운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원 배분하는 것

  • 컴퓨터 성능과 직결

프로세스 우선순위

  • 우선순위 높은 프로세스 → 빨리 처리해야 하는 프로세스 ex) 입출력 작업 많은 프로세스

  • 입출력 집중 프로세스 (I/O bound process) : 입출력 작업 많은 프로세스 → 대기 상태에 많이 머무름

    • 먼저 CPU 사용해서 대기 상태일 동안 CPU 집중 프로세스 작동
  • CPU 집중 프로세스 (CPU bound process) : CPU 작업 많은 프로세스 → 실행 상태에 많이 머무름

  • 운영체제는 프로세스마다 PCB에 우선순위(priority) 부여

    스케줄링 큐 (Scheduling Queue)

  • CPU, 메모리, 입출력장치 필요 프로세스들 모두 줄세우기
  • 준비 큐 (ready queue) : CPU 이용하고 싶은 프로세스들이 서는 줄
  • 대기 큐 (waiting queue) : 입출력장치를 이용하기 위해 대기 상태인 프로세스들이 서는 줄
  • like 우선순위 큐, 높은 우선순위부터 실행

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

  • 선점형 스케줄링 (preemptive scheduling) : 프로세스가 CPU, 자원 사용 중이어도 운영체제가 강제로 뺏어 다른 프로세서 할당 가능한 방식.
    • 자원 독점 불가능, 골고루 자원 분배 가능
    • 문맥 교환 과정 오버헤드 발생 가능
  • 비선점현 스케줄링 (non-preemptive scheduling) : 한 프로세스가 자원 사용중이면 종료 or 대기 전까지 독점.
    • 문맥 교환 과정 오버헤드 적음
    • 모든 프로세스가 골고루 자원 사용 불가

2. CPU 스케줄링 알고리즘

1) 선입 선처리 스케줄링 (FCFS : First Come First Served Scheduling)

  • 준비 큐에 삽입된 순서대로 프로세스 처리하는 비선점현 스케줄링 방식
  • 프로세스 기다리는 시간 매우 길어질 수 있음
  • 호위 효과 (convey effect) : CPU 연산 시간이 매우 긴 프로세스 하나가 짧은 프로세스들보다 먼저 실행되면서, 여러 프로세스들이 줄지어 대기하게 되어 전체 시스템 성능이 크게 떨어지는 현상.

    2) 최단 작업 우선 스케줄링 (SJF : Shortest Job First Scheduling)

  • 준비 큐 프로세스 중 CPU 이용 시간 가장 짧은 프로세스부터 실행.
  • 비선점형 스케줄링 알고리즘

    3) 라운드 로빈 스케줄링 (Round Robin Scheduling)

  • 선입 선처리 스케줄링 + 타임 슬라이스
  • 타임 슬라이스 : 각 프로세스가 CPU를 사용할 수 있는 정해진 시간. → 크면 호위 효과 발생 가능

→ 작으면 문맥 교환 발생 비용 커짐

  • 선점형 스케줄링 : 정해진 시간만 CPU 이용

    4) 최소 잔여 시간 우선 스케줄링 (SRT : Shortest Remaining Time Scheduling)

  • 최단 작업 우선 스케줄링 + 라운드 로빈
  • 정해진 타임 슬라이스만큰 CPU 사용 + 다음 프로세스는 남은 작업 시간이 가장 적은 프로세스

    5) 우선순위 스케줄링 (Priority Scheduling)

  • 프로세스에 우선순위 부여, 높은 우선순위부터 실행
  • 기아 현상 (Starvation) : 프로세스(또는 스레드)가 자원을 계속 요청하지만, 우선순위나 스케줄링 정책 때문에 오랫동안(또는 무한히) 할당받지 못하는 현상.
  • 에이징 (Aging) : 대기 시간이 길수록 우선순위를 점점 상승

    6) 다단계 큐 스케줄링 (Multilevel Queue Scheduling)

  • 우선순위 별로 준비 큐 여러 개 사용
  • 우선순위 높은 큐 프로세스 먼저 처리, 다 처리하면 그다음 우선순위 큐 프로세스 처리
  • 큐별로 타임 슬라이스, 알고리즘 사용 가능

    7) 다단계 피드백 큐 스케줄링

  • 다단계 큐 스케줄링 → 기아 현상 발생 가능
  • 프로세스들이 큐 사이 이동 가능.
  • CPU 오래 사용해야 하는 프로세스는 점차 우선순위 낮아짐
  • 너무 오래 기다리면 에이징 기법 적용 가능
  • 가장 일반적인 CPU 스케줄링 알고리즘

글 이동

Comments