본문 바로가기

OS/Windows

Process Scheduling

스케줄링이란 ?
프로세스가 생성되어 실행 될 때 필요한 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업

< 프로세서 스케줄링의 종류 >
비선점 스케줄링 ( Non-preemptive )
- 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법
- 프로세스가 CPU를 할당 받으면 해당 프로세스가 완료될 때까지 CPU를 사용
- 모든 프로세스에 대한 요구를 공정하게 처리할 수 있음
- 프로세스 응답 시간의 예측이 용이하며, 일괄 처리 방식에 적합
- 중요한 작업이 중요하지 않은 작업을 기다리는 경우가 발생할 수 있음

선점 스케줄링 ( Preemptive )
- 하나의 프로세스가 CPU를 할당 받아 실행하고 있을 때 우선 순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법
- 우선 순위가 높은 프로세스를 빠르게 처리할 수 있음
- 주로 빠른 응답 시간을 요구하는 대화식 시분할 시스템에 사용

< 비선점 스케줄링의 종류 >
FCFS ( First-Come First-Service ) 
   - 준비 상태 큐에 도착한 순서에 따라 차례로 CPU를 할당
   - 먼저 도착하는 것이 먼저 처리되는 공평성은 유지하되만 짧은 작업이 긴 작업을, 중요한 작업이 중요하지 않은 작업을
     기다리는 경우 발생

SJF ( Shortest Job First )
   - 실행 시간이 가장 짧은 프로세스에 먼저 CPU를 할당
   - 가장 적은 평균 대기 시간을 제공하는 알고리즘
   - 많은 프로세스에게 빠른 응답 시간 제공
   - 단점 : 실행 시간이 긴 프로세스는 무한 대기 가능, 에이징 기법으로 해결 )


HRN ( Highest Job First )
   - 실행 시간이 긴 프로세스에 불리한 SJF 기법을 보완
   - 대기 시간과 서비스 ( 실행 ) 시간을 이용하는 기법
   - 우선순위 계산 공식     =    대기시간 + 서비스 ( 실행 ) 시간
                                              서비스 ( 실행 ) 시간

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

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

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

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

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

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

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

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

'OS > Windows' 카테고리의 다른 글

Disk Scheduling  (0) 2010.07.04
Register  (0) 2010.07.04