본문 바로가기

기타

[기타] 프로세스 스케줄링 기법

728x90

프로세스 스케줄링 기법

프로세스(process)란?

프로세스(process)는 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 의미하며 종종 스케줄링의 대상이 되는 작업(task)이라는 용어와 거의 같은 의미로 쓰인다. 여러 개의 프로세서를 사용하는 것을 멀티프로세싱이라고 하며 같은 시간에 여러 개의 프로그램을 띄우는 시분할 방식을 멀티태스킹이라고 한다

프로세스 상태

이미지 출처 : https://media.vlpt.us/images/mainxcharacter/post/0051a678-9750-4be8-9cd7-5effde749e44/image.png

- 제출(submit) : 작업을 처리하기 위해 사용자가 작업을 시스템에 제출한 상태
- 접수(hold) : 제출된 작업이 스풀 공간인 디스크의 할당 위치에 저장된 상태

이미지 출처 : https://eunhyejung.github.io/assets/contents/content07.PNG

생성(new) : 사용자에 의해 프로세스가 생성된 상태
준비(ready) : CPU를 할당받을 수 있는 상태, 가장 높은 우선순위를 갖는 프로세스가 다음 순서에 CPU를 할당받음
- 실행(running) : CPU를 할당받아 동작(점유) 중인 상태
- 대기(waiting), 블록(blocked) : 프로세스 실행 중 입출력(I/O)처리 등으로 CPU를 양도하고 처리 완료까지 기다리는 상태, 대기 리스트는 우선순위가 존재하지 않음
- 종료(terminated) : 프로세스가 CPU를 할당받아 주어진 시간 내에 완전히 수행을 종료한 상태

프로세스 스케줄링

선점형(Preemptive) 스케줄링

- 하나의 프로세스가 CPU를 할당받아 실행하고 있을 때 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법이다.

- 우선순위가 높은 프로세스를 빠르게 처리할 수 있다.

- 주로 빠른 응답 시간을 요구하는 대화식 시분할 시스템에 사용된다.

- 우선순위가 높은 프로세스들이 계속 들어오는 경우 오버헤드(Overhead)를 초래한다.

- 종류 : 라운드 로빈, SRT, 선점 우선순위, 다단계 큐, 다단계 피드백 큐

RR(Round Robin)

- FCFS를 선점 형태로 변형한 기법

- 프로세스가 할당된 시간 내에 처리 완료를 못 한다면, 준비 큐 리스트의 가장 뒤로 보내지고 CPU는 대기 중인 다음 프로세스로 넘어간다.
SRT(Shortest Remaining Time)

- 가장 짧은 실행 시간을 요구하는 프로세스에 CPU 할당

- SJF 알고리즘을 선점 형태로 변형한 기법

- 실행 중인 프로세스의 남은 시간과 준비상태 큐에 도착한 프로세스의 실행 시간 비교
MLQ(Multi Level Queue)

- 프로세스를 특정 그룹으로 분류할 수 있으면 그룹에 따라 각기 다른 준비상태 큐를 사용
MLFQ(Multi Level Feedback Queue)

- 특정 그룹의 준비상태 큐에 들어간 프로세스가 다른 준비상태 큐로 이동할 수 없는 다단계큐 기법을 이동할 수 있도록 개선한 기법

비선점형(Non-preemptive) 스케줄링

- 이미 할당받은 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법

- 프로세스가 CPU를 할당받으면 해당 프로세스가 완료될 때까지 CPU를 사용한다.

- 모든 프로세스에 대한 요구를 공정하게 처리할 수 있다.

- 프로세스 응답 시간의 예측이 용이하며, 일괄 처리 방식에 적합하다.

-중요한 작업(짧은 작업)이 중요하지 않은 작업(긴 작업)을 기다리는 경우가 발생할 수 있다.

- 종류 : 우선순위, 기한부, FCFS, SJF, HRN

FCFS(First Come First Service)

- 준비상태 큐에 도착한 순서에 따라 차례로 CPU를 할당

- 공평성은 유지되지만 중요한 작업이 중요하지 않은 작업을 기다리게 되는 경우 발생
SJF(Shortest Job First)

- 실행 시간이 짧은 프로세스에 먼저 CPU 할당

- 가장 적은 평균 대기시간을 제공함
HRN(Higtest Response-ratio Next)

- 실행 시간이 긴 프로세스에 불리한 SJF 기법을 보완하기 위한 기법이다

- 대기시간과 실행 시간을 이용한다

- 우선순위 계산 결과값이 높은 것부터 우선순위를 부여, 대기시간이 긴 프로세스일 경우 계산 결과값이 높게 나온다.

 

참고 사이트

https://junghyun100.github.io/Process(1)

https://velog.io/@dasssseul/CS-프로세스-스케줄링선점-비선점 

https://velog.io/@mainxcharacter/운영체제-프로세스의-개요

https://sung0woo.tistory.com/88

https://blog.naver.com/davidoff73/30027996653

728x90