Post

CPU Schedule

쉽게배우는 운영체제

스케줄링 단계

고수준 스케줄링

  • 고수준 스케줄링은 시스템 내의 전체 작업 수를 조절하는 것을 뜻하고, 여기서 작업은 운영체제에서 다루는 일의 가장 큰 단위로 1개 또는 여러개의 프로세스로 이루어 진다.
  • 고수준 스케줄링에서는 어떤 작업을 시스템이 받아들일지 거부할지를 판단하기 때문에 승인 스케줄링 이라고도 하고, 이에 따라 시스템 내에서 동시에 실행 가능한 프로세스의 총 개수가 정해진다

저수준 스케줄링

  • 저수준 스케줄링은 어떤 프로세스에 CPU를 할당할지 어떤 프로세스를 대기 상태로 보낼지 등을 결정하는 역활을 한다.
  • 준비 상태 → 실행상태, 실행상태 → 대기상태 등 과 같이 실제 작업이 이루어지고 단기 스케줄링 이라고도 불린다.
  • 준비 상태의 프로세스 중 어떤 것을 선택할지, 어떤 기준에 따라 타임 슬라이스를 정할지 등등 성능에 많은 영향을 끼친다

중간수준 스케줄링

  • 중간 수준 스케줄링은 중지,활성화 로 전체 시스템의 활성화된 프로세스 수를 조절하여 시스템의 과부하를 막는 역할을 한다

스케줄링의 목적

  • 공평성 : 모든 프로세스가 자원을 공평하게 배정받고, 자원 배정 과정에서 특정 프로세스가 배제되어서는 안된다
  • 효율성 : 시스템 자원이 유휴 시간 없이 사용되도록 스케줄링하고, 유휴 자원을 사용하려는 프로세스에 우선권을 준다
  • 안정성 : 우선순위를 사용하여 중요 프로세스가 먼저 작동되도록 배정함으로서 시스템 자원을 점유하거나 파괴하려는 프로세스로부터 자원을 보호 해야한다
  • 확장성 : 프로세스가 증가해도 시스템이 안정적으로 작동하도록 조치해야한다
  • 반응 시간 보장 : 시스템은 적절한 시간 안에 프로세스 요구에 반응해야 한다
  • 무한 연기 방지 : 특정 프로세스의 작업이 무한 연기 되어서는 안된다

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

선점형 스케줄링

  • 어떤 프로세스가 CPU를 할당받아 실행 중이더라도 운영체제가 CPU를 강제로 빼앗을 수 있는 스케줄링 방식
  • 선점형 스케줄링 방식에서는 운영체제가 필요하다고 판단하면 실행 상태에 있는 프로세스의 작업을 중단시키고 새로운 작업을 시작할 수 있다
  • CPU가 인터럽트를 받으면 현재 실행 중인 작업을 중단하고 커널을 깨워서 인터럽트를 처리시키고 인터럽트가 완료되면 원래 작업으로 돌아간다
  • context switching과 같은 부가작인 작업이 발생한다는 것이 단점이지만, 하나의 프로세스가 CPU를 독점할 수 없기 때문에 빠른 응답 시간을 요구하는 대화형 시스템, 시분할 시스템에 적합하다

비선점형 스케줄링

  • 어떤 프로세스가 CPU를 점유하면, 그 프로세스가 종료되거나 대기 상태에 들어가기 전까지는 다른 프로세스가 이를 빼앗을 수 없는 스케줄링 방식
 선점형비선점형
작업 방식실행 상태의 프로세스 중단 시키고 새로운 작업 실행 가능실행 상태의 프로세스가 완료 될 때까지 작업 불가
장점프로세스가 CPU를 독점할 수 없어 대화형, 시분할 시스템CPU 스케줄러의 작업량이 적고 context swching 이 적다
단점context switching의 오버헤드가 많다기다리는 프로세스가 많아 처리율이 떨어진다
사용시분할 방식 스케줄러일괄 작업 방식 스케줄러

스케줄링 알고리즘

FCFS

  • 준비 큐에 도착한 순서대로 CPU를 할당하는 비선점 방식
  • 초기 일괄 작업 시스템에서 사용되었던 방식이고 큐가 하나이기 때문에 모든 프로세스의 우선순위가 동일
  • 단순,공평하지만 처리시간이 긴 프로세스가 CPU를 차지하면 다른 프로세스는 기다리기만 해야해서 효율성이 떨어짐
  • 또한 현재 작업중인 프로세스가 입출력 작업을 요청하면, 나머지 프로세스가 더 기다려야하기 때문에 효율이 더욱 떨어진다

SJF

  • 준비 큐에 있는 프로세스 중에서 실행 시간이 가장 짧은 작업 부터 CPU 할당하는 비선점 방식
  • 하지만 운영체제가 프로세스의 종료시간을 정확히 예측하기 어렵고 공평하지 못하다는 단점

HRN

  • SJF 스케줄링의 단점을 보완하기 위해 만들어진 비선점 알고리즘으로 최고 응답률 우선 스케줄링 이라고 한다
  • SJF 방식에서는 프로세스의 실행 시간이 판단기준이지만, HRN에서는 기다린시간과 CPU 사용시간을 고려한다(우선순위 = (대기시간+CPU 사용시간)/CPU 사용시간)

라운드 로빈

  • 한 프로세스가 할당받은 시간(타임 슬라이스) 동안 작업을 하다가 완료하지 못하면 준비 큐의 가장 뒤로 가서 자기 차례를 기다리는 방식
  • 선점형 알고리즘의 대표 방식으로 프로세스들이 작업을 완료할 때 까지 계속 순환
  • FCFS 스케줄링과 유사하지만, 각 프로세스 마다 CPU를 사용할 수 있는 최대 시간 타임 슬라이스가 정해져 있다
This post is licensed under CC BY 4.0 by the author.