프로세스란 ?

  • 실행중인 프로그램은 프로세스라고 한다.

    • 메모리에 올려져서, 실행 중인 프로그램

    • 모든 코드는 메모리에 올려진 후 한줄 씩 cpu에서 실행되는 구조이다.

    • 코드이미지(바이너리) : 실행 파일, ex) ELF format

      프로세스라는 용어는 작업,task,job이라는 용어화 혼용된다.

※ 응용프로그램은 프로세스가 아니다. 응용 프로그램은 여러 개의 프로세스로 이루어질 수 있다.
하나의 응용 프로그램은 여러개의 프로세스(프로그램)이 상호작용을 하면서 실행될 수 있다.

스케쥴러와 프로세스

  • 스케쥴러가 프로세스를 관리한다 !

스케쥴링 알고리즘 ?

  • 어느 순서대로 프로세스를 실행시킬까?
  • 스케쥴링 알고리즘의 목표
    • 시분할 시스템 : 프로세스 응답 시간을 가능한 짧게
    • 멀티 프로그래밍 : CPU활용도를 최대로 높여서, 프로세스를 빨리 실행

FIFO 스케쥴러

프로세스가 저장매체를 읽는 다든지, 프린팅을 한다든지 하는 작업 없이, 쭉 CPU를 처음부터 끝까지 사용한다 가정한다.

image.png

image.png

image.png

image.png

  • 가장 간단한 스케쥴러
  • 1,2,3번 프로세스가 있고 실행시간을 알고 있다.(한칸은 1초 소요)
  • 1번부터 차례대로 3번까지 실행 요청이 들어왔다.
  • 먼저 들어온 순서대로 프로세스를 처리한다.(1번부터 CPU에 올라가서 처리하고 끝나면 다음 작업을 한다.)
  • 배치프로세싱과 유사하다.
  • FCFS(First Come First Server)

최단 작업 우선(SJF) 스케쥴러

image.png

image.png

  • SJF(Shortest Job First) 스케쥴러

    • 가장 프로세스 실행시간이 짧은 프로세스부터 실행시킨다.
  • 프로세스 1은 2초, 프로세스 2는 3초, 프로세스 3은 1초가 소요된다.

  • 3번을 가장 먼저 실행 하고, 1번을 실행, 2번을 실행 한다.

※ RealTime OS(RTOS) : 응용 프로그램 실시간 성능보장을 목표로 하는 os이다. 언제 시작할지 완료할지를 정확하게 보장한다.(완료시간에 민감한 영역에 사용한다(스마트팩토리))

※ General Purpose(GPOS) : 프로세스 실행시간에 민감하지 않고, 일반적인 목적으로 사용되는 os

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

image.png

  • 우선순위를 먼저 매겨서 프로세스를 처리한다.
  • 정적 우선순위?
    • 프로세스마다 우선순위를 미리 지정한다.
  • 동적 우선순위?
    • 스케쥴러가 상황에 따라 우선순위를 동적으로 변경한다.

Round Robin 스케쥴러

image.png

image.png

image.png

  • 특정시간이 지난 후, p1이 끝나지 않으면 뒤로 보내고 다른 프로세스 실행 시킨다.

  • 1번부터 3번까지 차례대로 요청이 들어왔다.

  • Queue와 같이 1번이 가장먼저 실행된다.

  • 1초가 무조건 지나면 다른 프로세스로 넘어간다.

  • 1번 프로세스는 1번이 소요되므로 cpu에서 작업 종료 후, Round Robin Queue 에 넣고 바로 deque시킨다.

  • 2번 프로세스가 cpu에 올라가고 1초 후 바로 다음 프로세스인 3번을 cpu에 올린다.

  • 2번 프로세스는 아직 실행 시간이 남았으므로 Round Robin Ready Queue에 넣는다.

  • 프로세스가 종료될때 까지 위의 과정을 반복한다.