프로세스 스케쥴링




* FCFS = FIFO 기법

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

댓글

이 블로그의 인기 게시물

[안드로이드 스튜디오 APK] 메모장 Memo 오픈 소스

[C 언어] 하노이 탑 Tower of Hanoi

[Swift] (1) IOS 앱 개발 준비