프로세스 스케쥴링
* FCFS = FIFO 기법
- 비선점
- 준비상태에 도착한 순서에 따라 CPU 할당
- 중요X 작업이 중요O 작업을 기다리게 할 수 있음
- 빠른 응답을 요구하는 대화식 시스템에서는 적합하지 않음
- 비선점형
- - CPU 요구량이 가장 짧은 프로세스에게 먼저 CPU 할당
- - CPU 요구량이 같다면 FCFS 방식 적용
- - 평균 대기시간이 최소가 되는 최적의 스케쥴링 방법
- - 준비 상태에 있는 각 프로세스의 CPU 요구 시간을 모두 알아야 하므로
- 프로세스의 실행시간을 예측할 수 있어야 하나 어려움
- 프로세스가 실행되는 동안 새 프로세스가 준비완료 큐에 도착하면 선택상황 발생
- 새 프로세스가 현재 실행 중인 프로세스의 남은 시간보다 더 짧은 CPU 요구량을 가질 경우,
- 선점형 SJF 기법은 현재 실행 중인 프로세스를 선점할 것이고,
- 비선점형은 현재 실행 중인 프로세스를 끝낼 것이다.
- 이 SRT 기법은 시분할 시스템에서 유용하다.
- - 비선점형
- - SJF 기법의 약점인 긴 작업과 짧은 작업 간의 불평등 보완
- - 우선순위 = (대기시간 + 실행시간 ) / (실행시간) = 시스템 응답시간 (값이 큰 순서대로)
- - 짧은 작업이나 대기 시간이 큰 작업은 우선순위가 높아짐
- - 비선점형
- - 중요한 작업에게 우선순위를 부여하고, 가장 높은 우선순위를 가진 프로세스에게 먼저 CPU를 할당
- - 우선순위가 같을 경우에는 FCFS 기법 적용
- - 우선순위 기준 : 지금까지의 CPU 사용시간, 프로세스의 중요성 등
- - 일반적으로 가장 많이 쓰이는 스케쥴링 기법
- - 단점 : 우선순위가 낮은 프로세스가 무한정 계속 기다릴 수 있음
- - 실행 중인 프로세스보다 더 높은 우선순위의 프로세스가 준비상태로 들어오면,
- 실행 중이던 프로세스에게서 CPU를 빼앗아 더 높은 우선순위의 프로세스에게 할당해주는
- 선점기법 쓰기도 함
- - 무기한 봉쇄, 즉 기아 상태 : 우선순위가 낮은 프로세스들이 CPU를 무기한 대기하는 경우 발생
- ⇒ aging 기법으로 해결 : 오래 대기하는 프로세스들의 우선순위를 점차 증가시킴
- - 작업 특성에 관계없이 준비상태에 들어온 순서대로 미리 정해진 시간 할당량만큼 CPU 할당하고,
- 할당된 시간이 지나면 다음 프로세스에게 선점
- - 어느 프로세스도 CPU를 독점하지 않음
- - 시간할당량이 너무 작으면 너무 자주 CPU를 사용할 프로세서를 교체해야 함
- - 시간할당량이 너무 크면 FCFS(FIFO) 기법과 유사해짐
- ⇒ 시간할당량이 시스템 성능에 영향을 미침
- - 시분할 시스템에서 사용됨
댓글
댓글 쓰기