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

6. 운영체제 핵심개념 - 프로세스 스케줄링

by devraphy 2021. 3. 29.

1. 프로세스 스케줄링

 

프로세스란? 

  • 실행중에 있는 응용 프로그램을 의미한다. 
  • 스케줄링의 대상이 되는 작업(task)와 같은 의미로 쓰인다.
  • 프로세스는 최소 1개의 스레드(thread)를 갖고 있으며, 스레드 단위로 스케줄링이 수행된다. 

 

 

스케줄링이란?

  • 응용 프로그램을 CPU에 할당하는 방식을 의미한다. 
  • 응용 프로그램을 CPU에 어떤 순서로 어떤 방식으로 할당하는 일이다. 

 


2. 프로세스 스케줄링의 종류

- 배치 처리 시스템, 시분할 시스템, 멀티 태스킹, 멀티 프로세싱, 멀티 프로그래밍

 

 

a. 배치 처리 시스템( = 일괄 처리 시스템)

  • 응용 프로그램을 순차적으로 CPU에 할당하여 실행시키는 방식 
  • Queue 자료구조와 같은 방식으로 작동한다. (First In, First Out) 
  • 그러므로 배치 처리 시스템은 Queue를 이용하여 작성된다. 

https://www.gracieuxyh.dev/operating-system/scheduling/

 

 

a-1. 배치 처리 시스템을 더이상 사용하지 않는 이유

  • 응용 프로그램을 순차적으로 실행시키기 때문에, 시간 효율성이 매우 나쁘다.

    ex) A 프로그램은 실행하는데 12시간이 걸리고 B 프로그램은 1시간이 걸린다고 했을 때, A와 B 프로그램을 순차적으로 실행하는 경우, B프로그램이 실행되기 까지 13시간이 걸리게 된다. 

  • 두가지 프로그램을 동시에 사용하기가 힘들다. (동시에 여러 응용 프로그램 실행) 

    ex) 음악을 들으면서 문서작업을 하려는 경우, 배치 처리 시스템에서는 한 프로그램의 실행이 끝날 때까지 다른 프로그램을 실행할 수 없다.

  • 다중사용자에 대한 지원이 힘들다. (여러 사용자가 하나의 컴퓨터를 사용하는 경우)  

    ex) 한 사용자의 응답이 처리될 때까지, 다른 사용자의 응답은 대기하게 된다. 
  • 이와같은 단점을 보완하기 위해서 시분할 시스템 / 멀티 프로그래밍 기술이  나왔다. 

 

 

b. 시분할 시스템 

  • 시간을 분할하여 여러개의 응용 프로그램을 돌려가면서 실행시키는 기술

https://www.gracieuxyh.dev/operating-system/scheduling/

 

 

c. 멀티 태스킹

  • 단일 CPU에서, 여러 응용 프로그램이 동시에 실행되는 것처럼 보이도록 하는 기술 / 시스템
  • 시분할 시스템과 같은 방식으로 동작한다. 
  • 10 ~ 20ms 단위로 실행되는 응용 프로그램이 바뀐다. (1000ms = 1초)

https://www.gracieuxyh.dev/operating-system/scheduling/

 

 

d. 멀티 프로세싱 

  • 복수의 CPU를 사용하여 하나의 프로그램을 병렬로 실행하여 실행속도를 극대화하는 시스템이다. 

 

https://www.gracieuxyh.dev/operating-system/scheduling/

 

 

e. 멀티 프로그래밍 

  • 병렬 처리 초기단계의 모습
  • 다수의 프로세스를 메모리에 올려 번갈아 가면서 처리하는 방식
  • 시간대비 CPU의 활용도를 최대화하는 시스템 
  • CPU의 활용도가 높아지기 때문에, 응용 프로그램을 짧은 시간안에 실행 완료시킬 수 있다. 
  • 여러 응용 프로그램을 단일 프로세서(CPU) 상에서 동시에 실행되는 것처럼 보이게 한다. 

 

e-1. 멀티 프로그래밍이 필요한 이유

  • 응용 프로그램은 온전히 CPU를 쓰기보다, 다른 작업을 필요로 하는 경우가 많다.

    ex) 응용 프로그램 실행 중 파일을 읽는 작업 -
    저장매체에 접근하여 파일을 읽는 동안, 기존의 실행중이던 응용 프로그램은 작업을 멈추게 된다. 다른 작업으로 인해 멈춰있는 CPU를 다른 응용 프로그램에 할당하여 CPU의 활용도를 최대화 한다. 

 

 

e-2. 저장매체에 접근하는데 시간이 얼마나 걸릴까?

  • CPU에 있는 레지스터를 기점으로 CPU와 멀어질수록 접근하는데 필요한 시간이 늘어난다.
  • 아래 그림에서 Flash Drive는 SSD를 의미한다. 

 

 

  • 시스템 버스(System Bus)
    - CPU는 메모리나 저장 매체 등에 직접 접근하지 않고 DMA에게 요청하여 데이터를 전달하고 전달 받는다.

 

댓글