본문 바로가기

정보처리기사/운영체제

capter5



//프로세스 스케줄링//

- 프로세스 스케줄러 : 하나의 프로세스를 준비 상태에서 실행상태로 전이시킴


1. 비선점형 스케줄링 : FIFO, SJF, HRN, 기한부, 우선순위

2. 선점형 스케줄링 : SRT, RR, MLQ, MFQ

-스케줄링의 목적
1. 처리율 증가
2. CPU 이용률 증가
3. 오버헤드 최소화
4. 대기시간 최소화
5. 응답시간 최소화
6. 반환시간 최소화


- 비선점형과 선점형을 자세히
1. 비선점형
1) FIFO : Queue 방식 있음, 들어오는 순서대로 처리함, 대화식 시스템에 부적합함

ex)
 프로세스 번호  p1  p2  p3
 실행시간  20  4  6


결과)
 프로세스 번호  p1  p2  p3  평균
 실행 시간  20  4  6  30/3
 대기 시간  0  20   24  44/3
 반환 시간  20  24   30  74/3

이렇게 되면 순서대로 처리되니까 당연히 p1부터 들어오고 다음것도 차례대로 들어온다
p1은 바로 실행 되기 때문에 대기시간이 없다 그리고 반환시간은 실행시간이 20이고 대기하지도 않았으니 20으로 반환된다 p2를 보자 p1을 기다리고 다음으로 들어간다 이미 20을 기다렷기때문에 대기시간이 20이 되는 것이다 실행하는 시간은 4이고 그래서 반환되는 시간이 총 20 + 4가 된다 p3는?
p1과 p2를 전부 다 기다렸기 때문에? 대기 시간은 24 !! 다머지 행으로 평균을 따지면 된다
이게 바로 FIFO의   방법이다


2) SJF : 실행시간이 긴 프로세스는 실행 시간이 짧은 프로세스에게 할당 순위가 밀려 무한 연기 상태
            가 발생 가능하며, 가장 적은 평균 대기 시간을 제공하는 최적이다

ex)
 프로세스 번호  p1  p2  p3
 실행시간  20  4  6

결과)
 프로세스 번호  p2  p3  p1  평균
 실행 시간  4  6  20  30/3
 대기 시간  0  4  10  14/3
 반환 시간  4  10  30  44/3

이건 말 그대로 실행 시간이 짧은 순으로 처리를 한다그래서 순위가 p2,p3,p1인거다
계산 방법은 위와 동일하다 순서만 바뀔뿐


3) HRN

대기시간 + 서비스시간
--------------------       : 대기 시간이 분자에 있으니까 대기시간이 큰놈은 우선시가 커진다
      서비스시간





2. 선점
1) SRT 별거 의미는 없다 SJT에서 짧은순으로 하되 맘대로 뺄수 있다는거?
2) RR : FIFO기법을 선점 형태로 변형 한 것, 할당되는 시간이 클 경우 FIFO 기법과 같아진다 할당 시
          간이 너무 작으면 문맥교환 및 어버헤드가 자주 발생된다 

ex) 선점 우선순위 RR
A : 4초
B : 6초
C : 2초

CPU의 할당 시간은 1초

- 이렇게 되면 RR은 A부터 B,C 들어 가게 된다 A는 4초이다 할당 시간은 1초이므로 처리되는 시간도 1초가 된다 그러므로 4초에서 1초가 처리되었으므로 처리할 시간 3초가 남게 된다 이렇게 되면 처리 순서 맨 뒤로 가서 대기를 하게 된다 다음 B가 들어와서 똑같이 처리 1초에 맞게 처리하고 남은 5초를 가지고 다시 맨뒤로 가서 대기를 하게 된다 이렇게 반복되서 되풀이 하며 일 과정을 끝내는데 제일 빠르게 처리되는 건 C 그리고 A 그리고 B 이다 이러한 과정이 바로 RR이다

그럼 할당 시간이 만약 10초로 가정해 보자
마찬가지로 A,B,C 순으로 들어오면 처리수행이 각각 10초를 넘어서지 않아서 순서대로 들어온 순으로 처리가 된다는 말이다 이 과정이 바로 FIFO와 같아진다는 말이 바로 이말이다

그럼 0.01초로 할당시간을 바꿔버리면?
무한 반복이 계속 처리할 것이다 그럼 지치기 마련 그래서 문맥 교환 및 오버헤드 가 발생한다는 말!!




3) MLQ
상위큐 - 시스템 프로세스
중위큐 - 대화형 프로세스
하위큐 - 일괄처리 프로세스

- 이렇게 상위부터 하위순으로 일을 처리한다 처리할 프로세스를 세가지로 분류해서 상위 중위 하위
  로 처리한다

4) MFQ
상위레벨큐
중위레벨큐
하위레벨큐

- 해서 만약에 처리할 순이 P3 = 6초 , P2 = 1초, P1 = 3초 라 생각하면 상위레벨큐에서 순서대로 FIFO 형식으로 처리를 한다 이때 CPU 할당이 각각 상위 레벨큐는 1초 중위레벨큐는 2초 하위레벨큐는 4초라 하자 그럼 처음으로 p1는 2초를 남겨두고 중위레벨큐로 넘어가고 p2는 1초이므로 1초동안 처리하고 사라진다 그리고 p3는 1초를 처리하고 5를 남겨둔뒤 중위레벨큐로 넘어간다 그럼

중위레벨에선 p1 과 p3만 남게 된다 중위레벨에서는 할당된 시간이 2초이기때문에
p1은 2초가 남아서 처리되고 사라지고 p3는 2초를 처리하고 3초가 남게된다 그럼 마지막 하위레벨큐에가서 3초 남은걸 할당시간4초니까 처리하고 사라지게 된다


이때 만약 하위레벨큐가 할당시간이 4인데 그 이상의 수치가 5나 6이 나오면
RR방식으로 처리가 된다 여러가지 p1,p3이렇게 남으면 !!



//비선점과 선점은 매우 중요하므로 꼭 이해를 해야한다//




'정보처리기사 > 운영체제' 카테고리의 다른 글

capter4  (0) 2010.02.10
capter3  (0) 2010.02.09
capter2  (0) 2010.02.08
capter1  (0) 2010.02.08