<프로세서 스케줄링 종류>
비선점(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 |