[OS] 프로세스와 스케쥴러의 이해 Part 1

Process & Scheduler part 1

Posted by Sol on January 26, 2021 · 2 mins read

스케쥴링 알고리즘에 대하여

프로세스(Process) 란?

메모리에 올려져 실행중인 프로그램을 프로세스라 한다.

프로게스란 실행중인 프로그램이고, 코드 이미지(바이너리)는 실행파일 그 자체를 뜻한다.

  • 프로세스라는 단어는 task, job, 작업 과 같은 용어와 혼용된다.

  • 응용프로그램 = 프로세스 인 것은 아니다!

    • 응용프로그램은 여러 개의 프로세스로 이루어지거나, 여러 개의 프로세스가 상호작용하면서 실행될 수 있기 때문이다.


스케쥴러와 프로세스, 스케쥴링 알고리즘

누가 프로세스 실행을 관리하는가? – 스케쥴러가 프로세스를 관리한다.

프로세스를 관리하는 것은 스케쥴러인데,

스케쥴러가 프로세스를 관리하는 기법을 스케쥴링 알고리즘이라고 한다.

“어느 순서대로 프로세스를 실행시킬까?”

스케쥴링 알고리즘의 목표는 다음과 같다.

  • 프로세스 응답시간을 가능한 짧게 만들기 : 시분할 시스템
  • CPU활용도를 최대한 높여서, 프로세스를 빠르게 실행하기 : 멀티 프로그래밍

가장 기본적인 스케쥴링 알고리즘은 다음과 같다.


” F I F O “

FIFO 스케쥴러는 가장 간단한 스케쥴러이며, Queue 자료구조를 활용한 스케쥴러이다.

First In, First Out, 즉 대기열에 가장 먼저 들어온 프로세스를 가장 먼저 실행한다는 것이다.

이 FIFO스케줄러는 배치처리 시스템과 유사한 스케쥴링 알고리즘이다.

image_1


” Shortest Job First (SJF Scheduler)”

최단작업우선 스케쥴러로, 가장 프로세스 실행시간이 짧은 프로세스부터 실행시키는 알고리즘이다.

예를 들어, 다음과 같은 Tasks가 있을 때 ( [프로세스 번호 / 실행 시간])

[1번 / 5초] , [2번 / 2초] , [3번 / 1초]

가장 실행시간이 짧은 3번부터 먼저 실행시키는 알고리즘이다.

  • 장점 : FIFO보다 응답시간이 더 짧을 수 있다.
    • 실행시간이 큰 하나의 프로세스때문에 다른 프로세스들의 실행 시간이 늦춰지는 것을 방지한다.
  • 단점 : 프로세스의 실행시간을 미리 한번 읽고 무엇이 최선인지를 파악해야 하는 extra cost가 든다.


“Priority Based Scheduler (PBS)”

우선순위 기반 스케쥴러로, 가장 우선순위가 높은 프로세스부터 실행시키는 알고리즘이다.

우선순위를 어떻게 정하는가?

우선순위를 정하는 방식은 동적 /정적방식이 있으며,

스케쥴러가 상황에 따라 우선순위를 동적으로 변경하는지, 우선순위를 미리 지정하는지의 차이로 보면 된다.


” Round Robin Scheduler (RRS) “

FIFO와 유사하나, 프로세스가 끝나지 않아도 다시 Queue로 넘기는 알고리즘.

image_1

Task3가 CPU에서 특정 정해진 시간만큼 실행되다가,

완료되지 않으면 남은 프로세스는 다시 Request Queue로 insert되는 알고리즘이다.

CPU가 시분할 시스템으로 동작하는 것이다.



위 내용은 ‘패스트캠퍼스’의 컴퓨터공학 강좌 내용을 요약 정리한 것임을 밝힙니다. (https://www.fastcampus.co.kr/)