이 포스트 내용은 박미진 컴퓨터일반과 시나공 정보처리기사 요약집를 참고하여 작성한 글입니다.
스케줄링
- 프로세스가 생성되어 실행될 때 필요한 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업
- 문맥 교환을 위해 프로세서 스케줄링은 중요하다.
스케줄링 방법별로 분류
비선점(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나 우선순위 기법에서 발생할 수 있는 무한 연기 상태, 기아 상태를 예방할 수 있다.
댓글 쓰기