본문 바로가기

Study

프로세서 선점 스케줄링, 비선점 스케줄링




<프로세서 스케줄링 종류>


비선점(Non-Preemptive) 스케줄링

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

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

  • 모든 프로세스에 대한 요구를 공정하게 처리 가능

  • 일괄 처리 방식에 적합, 중요한 작업이 기다리는 경우가 발생할 수 있음

  • 응답시간 예측이 용이

  • 종류 : FCFS(FIFO), SJF, 우선순위, HRN, 기한부 등 알고리즘



선점(Preemptive) 스케줄링
  • 하나의 프로세스가 CPU를 할당받아 실행하고 있을 때 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법
  • 우선순위가 높은 프로세스를 빠르게 처리할 수 있음
  • 주로 빠른 응답시간을 요구하는 대화식 시분할 시스템에 사용
  • 선점으로 인한 많은 오버헤드를 초래함
  • 선점을 위해 시간 배당을 위한 인터럽트용 타이머 클럭(Clock)이 필요
  • 종류 : SRT, 선점 우선순위, RR(Round Robin), 다단계 큐, 다단계 피드백 큐 등 알고리즘


비선점(Non-Preemptive) 스케줄링 종류
  • FCFS(First-Come First-Service) = FIFO(First In First Out)
    - 준비상태 큐에 도착한 순서에 따라 차례로 CPU를 할당
    - 먼저 도착한 것이 먼저 처리되어 공평성 유지, 짧은 작은이 긴 작업을 기다리는 경우 발생

  • SJF(Shortest Job First)
    - 실행시간이 가장 짧은 프로세스에 먼저 CPU를 할당하는 기법
    - 가장 적은 평균 대기 시간을 제공하는 최적 알고리즘

  • HRN(Hightest Responseratio Next)
    - 실행시간이 긴 프로세스에 불리한 SJF 기법을 보완하기 위한 것으로, 대기 시간과 서비스 시간을 이용하는 기법
    - 우선순위 계산 공식 = 대기시간 + 서비스시간 / 서비스시간
    - 우선 순위 계산 결과값이 높은 것부터 우선 순위가 부여, 대기 시간이 긴 프로세스일 경우 계산 결과값이 높게 나옴

  • 기한부(Deadline)
    - 프로세스에게 일정한 시간을 주어 그 시간 안에 프로세스를 완료하도록 하는 기법
    - 시스템은 프로세스에게 할당할 정확한 시간을 추정해야함
    - 사용자는 시스템이 요구한 프로세스에 대한 정확한 정보를 제공해야함

  • 우선순위(Priority)
    - 준비상태 큐에서 기다리는 각 프로세스마다 우선순위를 부여하여 그 중 가장 높은 프로세스에게 먼저 CPU를 할당하는 기법


에이징(Aging) 기법
  • 시스템에서 특정 프로세스의 우선순위가 낮아 무한정 기다리게 되는 경우, 한 번 양보하거나 기다린 시간에 비례하여 일정 시간이 지나면 우선순위를 한 단계씩 높여 가까운 시간 안에 자원을 할당받도록 하는 기법
  • SJF나 우선순위 기법에서 발생할 수 있는 무한 연기 상태, 기아 상태를 예방할 수 있따.



선점(Preemptive) 스케줄링 종류
  • 선점 우선순위
    준비 상태 큐의 프로세스들 중에서 우선순위가 가장 높은 프로세스에게 먼저 CPU를 할당하는 기법

  • SRT(Shortest Remaining Time)
    - 비선점 기법 SJF 알고리즘을 선점 형태로 변경한 기법
    - 현재 실행중 프로세스의 남은 시간과 준비상태 큐에 새로 돛가한 프로세스의 실행시간을 비교해 가장 짧은 실행 시간을 요구하는 프로세스에게 CPU를 할당하는 기법

  • RR(Round Robin)
    - 시분할 시스템(Time Sharing System)을 위해 고안된 방식, FCFS 알고리즘을 선점 형태로 변형한 기법
    - FCFS(FIFO) 기법과 같이 준비상태 큐에 먼저 들어온 프로세스가 먼저 CPU를 할당받지만 각 프로세스는 할당된 시간(Time Slice Quantum)동안만 실행한 후 실행이 완료되지 않으면 다음 프로세스에게 CPU를 넘겨주고 준비상태 큐의 가장 뒤로 배치함
    - 할당되는 시간이 클 경우 FCFS기법과 같아지고, 할당되는 시간이 작을 경우 문맥 교환 및 오버헤드가 자주 발생

  • 다단계 큐(Multi level Queue)
    프로세스를 특정 그룹으로 분류할 수 있는 경우 그룹에 따라 각기 다른 준비상태 큐를 사용하는 기법

  • 다단계 피드백 큐(Multi level Feedback Queue)
    특정 그룹의 준비상태 큐에 들어간 프로세스가 다른 준비상태 큐로 이동할 수 없는 다단계 큐기법을 준비상태 큐 사이를 이동할 수 있도록 개선한 기법


'Study' 카테고리의 다른 글

결합도, 응집도  (0) 2016.04.18
자료흐름도, 데이터사전, HIPO  (0) 2016.04.16
스레드, 프로세스 상태 전이  (0) 2016.04.12
소프트웨어 품질 표준  (0) 2016.04.11
링커 로더  (0) 2016.04.10