티스토리 뷰

728x90

 

프로세스 스케줄링 

준비 큐에 등록된 프로세스들 중에서 스케줄링 정책에따라 하나의 프로세스를 선택하고, 선택된 프로세스에게 CPU를 할당하는 운영체제의 기법

* 준비 큐(ready queue) : 준비상태의 프로세스들을 관리하기 위한 자료구조

 

 

 

선점(preemptive) 방식: 강제적으로 CPU를 빼앗김(①②③④⑤)

비선점(non_peemptive) 방식: 자발적으로 CPU를 반납(①②)

 

 

 

스케줄링 시 고려해야 할 요소들

- CPU 이용률 (CPU utilization) : 주어진 시간에 대한 CPU 사용시간

- 처리율 (throughput) : 단위 시간당 처리된 프로세스의 개수

- 반환 시간 (turnaround time): 프로세스가 생성된 후 종료될 때까지 소요된 시간

- 대기 시간 (waiting time): 프로세스가 준비상태에서 소요된 시간

- 응답 시간 (response time): 어떤 사건(event)이 발생한 후 첫 번째 응답이 나오는데 소용된 시간

 

CPU 이용률과 처리율은 최대화 / 반환, 대기, 응답시간은 최소화하는 것이 이상적

 

 

 

1) 선입 선처리(FCFS)

- 가장 먼저 준비 큐에 등록된 프로세스를 선정 -> 가장 간단하다.

- 전형적인 비선점 방식 -> 일괄처리 시스템에 적합, 대화식 시스템에 부적합하다.

- 평균 대기시간이 길어진다. -> 호송 효과(convoy effect)

 

 

2) 최단 작업 선처리(SJF)

- 준비 큐에 등록된 프로세스 중에서 CPU 사용시간이 가장 짧은 프로세스를 선정

- 기본적으로 비선점 방식이지만, 선점방식도 가능하다.

- 정확한 CPU 사용시간 예측이 불가능

 

 

3) 우선순위(Priority)

- 준비 큐에 등록된 프로세스 중에서 우선순위가 가장 높은 프로세스를 선정

- 프로세스가 생성될 때 우선순위를 부여한다.

- 기본적으로 비선점 방식이지만, 선점 방식도 가능하다.

- 기아현상(starvation) 발생할 수 있다.

 

 

4) 순환처리(RR:Round-Robin)

- 시분할(time-sharing) 시스템을 지원하기 위해 제안되었다.

- 전형적인 선점 방식

- CPU 할당시간 결정이 중요하다.

- CPU 할당시간이 너무 작으면 문맥교환이 자주 발생

- CPU 할당시간이 너무 크면 FCFS처럼 호송효과가 발생

 

 

5) 다단계 큐(Multi-level Queue)

- 다수의 준비 큐를 사용한다.

   준비 큐마다 우선순위가 부여된다.

   준비 큐 사이 스케줄링이 우선적이다.

   준비 큐마다 고유의 스케줄링 정책을 적용한다.

- 프로세스마다 단계별 준비 큐에 등록된다.

   준비 큐 사이의 프로세스 이동이 없다.

- 기아현상이 발생할 수 있다.

 

 

6) 다단계 피드백 큐(Multi-level Feedback Queue)

- 다수의 준비 큐를 사용한다.

   준비 큐마다 우선순위가 부여된다.

   준비 큐 사이의 스케줄링이 우선적이다.

   준비 큐마다 고유의 스케줄링 정책을 적용한다.

- 모든 프로세스는 최상위 준비 큐에 등록된다.

   준비 큐 사이의 프로세스 이동이 발생할 수 있다.

   상위 큐에서 하위 큐로 이동한다.

   하위 큐에서 상위 큐로 이동시킬 수 있다(에이징).

- 준비 큐마다 CPU 할당시간이 다르다.

   우선순위가 낮을수록 CPU 할당시간이 길다.

  입출력 위주 프로세스가 계산 위주 프로세스보다 유리하다.

 

 

728x90
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함