본문 바로가기
컴퓨터공학기초 개념/운영체제

7. 운영체제 - 스케줄링 알고리즘

by devraphy 2021. 3. 31.

 1. 프로세스란?

  • 실행중인 프로그램을 프로세스라고 한다. 
  • 프로세스는 작업, task, job 이라는 용어와 혼용된다. 
  • 응용 프로그램을 하나의 프로세스라고 하지 않는다. (응용 프로그램은 여러개의 프로세스로 이루어짐)
  • 스케줄러가 프로세스를 관리한다.  

2. 스케줄링 알고리즘 

- 어느 순서대로 프로세스를 실행시킬까에 대한 방법론 

 

 

a) 스케줄링 알고리즘의 목표

  • 시스템이 달성하고자 하는 퍼포먼스를 목표로 한다.
    ex) 시분할 시스템: 프로세스 응답 시간을 가능한 짧게

    ex) 멀티 프로그래밍: CPU 활용도의 최대화 및 프로세스 실행을 빠르게함 

 

 

b) FIFO 스케줄러

- 프로세스 중간에 다른 작업없이, CPU를 계속 사용한다는 전제 하에 알고리즘을 생각해보자.

  • 가장 간단한 스케줄러의 형태로, 배치 처리 시스템에 유용한 방식
  • 프로세스를 순서대로 CPU에 로드하는 방식
  • Queue 자료구조와 동일한 방식으로 작동한다. 
  • FCFS(First Come First Served) 스케줄러 라고도 불린다.

 

 

 

c) 최단작업 우선 스케줄러 (SJF, Shortest Job First)

  • 실행 예정인 프로세스 중 가장 실행속도(시간)가 빠른 프로세스를 우선적으로 CPU에 로드하는 방식

 

 

 

[잠깐, 알고가자!]

  • RTOS(RealTime OS): 응용 프로그램 실시간 성능 보장을 목표로 하는 OS
    - 프로그램의 시작/완료 시간을 정확하게 보장 
    - 공장의 공정과정과 같이, 정확한 시간계산이 중요한 시스템에서 사용된다. 

  • GPOS(General Purpose OS): 프로세스 실행시간에 민감하지 않고, 일반적인 목적으로 사용되는 OS
    - RTOS가 필요하지 않은 상황에서 사용되는 OS
    - Windows, Mac OS 처럼 일반적으로 사용되는 OS가 여기에 속한다. 

 

 

d) 우선순위 기반 스케줄러 (Priority-Based)

  • 정적 우선순위: 프로세스의 우선순위를 미리 지정하는 방식
  • 동적 우선순위: 스케줄러가 상황에 따라 우선순위를 동적으로 변경

 

 

e) Round Robin 스케줄러

  • Queue 자료구조를 사용한 방식으로 시분할 시스템을 기본으로 한다.
  • 프로세스가 CPU에 로드되는 것이 순서에 따라 순환하는 방식으로 동작한다.
  • 실행이 완료된 프로세스는 다시 Queue의 맨 마지막으로 들어간다. 

 

 

댓글