[운영체제] 프로세스와 스케쥴러

찬들이·2022년 7월 28일
0

컴퓨터공학

목록 보기
4/34

💡 프로세스

  • 바이너리 형태의 실행가능 목적파일(실행 파일)로 메모리에 적재되어 실행 중인 프로그램을 프로세스라고 한다.
  • 응용 프로그램은 하나 이상의 프로세스로 이루어져있다.
    ->하나의 응용 프로그램이 여러 프로세스들과 상호작용하면서 실행될 수도 있기 때문이다.
  • 프로세스와 프로그램의 차이
    • 프로그램 -> 실행 -> 프로세스
    • 프로그램 = excel.exe
    • 프로세스 = 메모리에 올려져서 실행중인 프로그램

1. 배치 처리 시스템

  • 여러 프로그램을 순차적으로 실행시킬 수 있도록 하는 시스템
  • FIFO와 유사한 방식으로 동작하기 때문에 Queue를 활용하여 구현한다.
  • But! 다중 사용자는 지원하지 않기 때문에, 실행 시간이 높으면 다음프로세스는 대기 시간이 너무 길다는 단점을 가지고 있다.

2. 시분할 시스템

  • 다중 사용자를 지원하기 위해 컴퓨터 응답 시간을 최소화하는 시스템
    • 여러 사용자가 동시에 하나의 컴퓨터를 쓰기 위함이다.
  • 일정 시간으로 프로세스를 분할해 지원한다.

3. 멀티태스킹

  • 단일 CPU에서 여러 응용프로그램이 동시에 실행되는 것처럼 보이도록하는 시스템
  • 10~ 20ms 단위로 실행 응용프로그램이 바뀌지만, 인간에게는 한 번에 여러 프로그램이 실행되고 있다고 느껴진다.
    • ex) 플립북

4. 멀티 프로그래밍

  • 최대한 CPU를 많이 활용하도록 하는 시스템
  • 프로세스를 저장공간에서 가져오는데 걸리는 대기 시간에 다른 프로세스를 실행하여 활용도를 높이는 방법

💡 스케쥴링 알고리즘

  • 프로세스를 더 효율적으로 실행시키기 위한 알고리즘

1. FIFO 스케쥴러

  • 가장 간단한 스케쥴러로 배치 처리 시스템에 사용된다.
  • FCFS 스케쥴러 로도 불린다.
  • Queue를 이용하여 프로세스를 순서대로 처리한다.

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

  • 가장 실행시간이 짧은 프로세스부터 먼저 실행시키는 알고리즘
  • 큐와 힙을 사용한다.

3. 우선순위 기반 스케쥴러

  • Priority Based 스케쥴러
  • 정적 혹은 동적 우선순위를 기반으로 프로세스를 처리한다.
    • 정적 우선순위: 프로세스마다 우선순위를 미리 지정한다.
    • 동적 우선순위: 스케쥴러가 상황에 따라 우선순위를 동적으로 번경한다.

4. Round Robin 스케쥴러

  • 프로세스 완료 여부에 상관 없이 큐에서 순서대로 빼와서 실행한 뒤, 일정 시간이 지나면 다시 큐에 집어 넣는 방식이다
  • 시분할 시스템에서 사용된다.

5. 프로세스 상태 기반 스케쥴러

  • FIFO와 RoundRobin 스케쥴러를 합한 형태
  • 멀티 프로그래밍에서 사용된다.
profile
Junior-Backend-Developer

0개의 댓글