OS #10 Scheduling Algorithm

underlier12·2020년 3월 12일
0

OS

목록 보기
10/35

10. Scheduling Algorithm

프로세스

메모리에 올려져서 실행 중인 프로그램을 프로세스라고 한다. 실행 파일은 코드 이미지라고 한다. 하지만 응용 프로그램을 프로세스라고 볼 수만은 없다. 응용 프로그램은 보통 여러 개의 프로세스로 이루어 질 수 있기 때문이다.

프로세스라는 용어는 작업, task, job이라는 용어와 혼용하여 사용

스케쥴러

프로세스를 관리하는 주체는 스케쥴러이다. 어떠한 순서로 프로세스를 진행할 것인가를 결정하는 것을 스케쥴링 알고리즘이라고 한다.

FIFO

First In First Out 스케쥴러는 가장 간단한 스케쥴러로써 배치 처리 시스템으로 보면 된다. 큐 구조와 동일하게 동작한다.

SJF

Shortest Job First 스케쥴러는 가장 프로세스 실행 시간이 짧은 프로세스부터 먼저 실행 시키는 알고리즘이다.

참고) OS 종류

  • RealTime OS(RTOS)

    • 정확하게 프로그램 시작, 완료 시간을 보장
    • Hardware RTOS, Software RTOS
  • General Purpose OS(GPOS)

    	- 프로세스 실행시간에 민감하지 않음
    • 일반적인 목적으로 사용되는 OS (ex. Windows, Linux)

Priority-Based

우선 순위 기반 스케쥴러는 말 그대로 우선 순위에 따라 프로세스 실행 순서를 결정한다.

  • 정적 우선 순위 : 프로세스마다 우선순위를 미리 지정
  • 동적 우선 순위 : 스케쥴러가 상황에 따라 우선순위를 동적으로 변경

현실적으로 모든 프로세스의 우선순위를 미리 지정하는 것은 어려움

Round-Robin

시분할 시스템의 기반이 되는 스케쥴러로 다음과 같이 Ready-Queue에 각 프로세스를 넣어두고 각 시간별로 프로세서에 전달해 실행 후 완료되면 제거하고 완료되지 않으면 다시 선점하는 방식이다.

profile
logos and alogos

0개의 댓글