Updated:

이 포스트 내용은 박미진 컴퓨터일반시나공 정보처리기사 요약집를 참고하여 작성한 글입니다.

스케줄링

  • 프로세스가 생성되어 실행될 때 필요한 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업
  • 문맥 교환을 위해 프로세서 스케줄링은 중요하다.

스케줄링 방법별로 분류

비선점(Non- Preemptive) 선점(Preemptive)
• 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법 • 하나의 프로세스가 CPU를 할당받아 실행 하고 있 을 때 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링기법
• 프로세스가 CPU를 할당받으면 해당 프로세스가 완 료될 때까지 CPU를 사용함 • 우선순위가 높은 프로세스를 빠르게 처리할 수 있음
• 모든 프로세스에 대한 요구를 공정하게 처리할 수 있음 • 주로 빠른 응답시간을 요구하는 대화식 시분할 시스템에 사용됨
• 일괄 처리 방식에 적합하며, 중요한 작업(짧은 작업)이 중요하지 않은 작업(긴 작업)을 기다리는 경우가 발생 할수있음 • 선점할 프로세스에게 일정한 시간을 배당하기 위 한 인터럽트용 타이머 클록(Clock)이 필요함
• 응답 시간 예측이 용이함 • 비선점 스케줄링에 비해 많은 오버헤드(Overhead)를 초래할수있음
• 종류 : FCFS(FIFO), SJF, 우선순위, HRN, 기한부 등의 알고리즘 • 종류 : SRT, 선점 우선순위, RR(Round Robin), 다단계 큐, 다단계 피드백 큐 등의 알고리즘

스케줄링 종류

비선점(Non- Preemptive) 선점(Preemptive)
FCFS

• 준비큐에 도착한 순서대로 CPU를 할당

• 먼저 도착한 것이 먼저 처리되어 공평성은 유지 되지만 짧은 작업이 긴 작업을, 중요한 작업이 중 요하지 않은 작업을 기다리게 됨

RR

• 시분할 시스템(Time Sharing System)을 위해 고안된 방식으로, FCFS 알고리즘을 선점 형태 로변형한기법

• FCFS(FIFO) 기법과 같이 준비상태 큐에 먼저 들어온 프로세스가 먼저 CPU를 할당받지만 각 프로세스는 할당된 시간(Time Slice, Quantum) 동안만 실행한 후 실행이 완료되지 않으면 다음 프로세스에게 CPU를 넘겨주고 준비상태 큐의 가장 뒤로 배치됨

• 할당되는 시간이 클 경우 FCFS(FIFO) 기법과 같아지고, 할당되는 시간이 작을 경우 문맥 교 환및오버헤드가자주발생됨

SJF

• 기다리고 있는 작업 중에서 수행시간이 가장 짧다고 판정된 것을 먼저 수행한다.

• 가장 적은 평균 대기 시간을 제공하는 최적 알고리즘

• 제일 긴 수행시간을 갖은 프로세스는 기아상태의 가능성이 있다.

SRT

• 현재 실행중인 프로세스의 남은 시간과 준비상태 큐에 새로 도착한 프로세스의 실행 시간을 비교하여 가장 짧은 실행 시간을 요구하는 프로세스에게 CPU를 할당하는 기법

• 기아상태 가능성

HRN

• SJF의 약점이었던 실행시간이 긴 프로세스의 불만(기아상태)을 보완하기 위한 기법.

• 우선순위를 계산하여 가장 높은 것부터 낮은 순으로 우선순위를 부여

• 우선순위: ( 대기 시간 + 서비스 시간 ) / 서비스 시간

기한부(Deadline)

• 프로세스에게 일정한 시간을 주어 그 시간 안에 프로 세스를 완료하도록 하는 기법

• 시스템은 프로세스에게 할당할 정확한 시간을 추정 해야 하며, 이를 위해서 사용자는 시스템이 요구한 프로세스에 대해 정확한 정보를 제공해야 함

다단계 큐

• 각 작업들이 서로 다른 분류들로 나눌수 있을때 사용

• 기억장치의 크기나 프로세스의 형태에 따라 어느 한 큐에 지정된다. 이 후 작업은 다른 큐로 이동할 수 없다.

• 대화형/일괄처리형

우선순위(Priority)

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

• 기아상태 가능성

다단계 피드백 큐

• 다른 큐로 이동할 수 없는 다단계 큐와 달리 다른 큐로 이동할 수 있는 기법

• CPU 사용시간에 따라 입출력 위주와 CPU 위주로 구분하여 특성에 따라 서로 다른 Time-Slice를 부여한다.

• 프로세스가 보다 하위단계의 큐로 옮겨 갈수록 주어진 할당 시간을 점차 크게 설정(적응 기법)

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

댓글 쓰기