1. 정의

  • CPU나 자원을 효과적으로 생산성 있게 사용하기 위한 소프트웨어적 계획

  • 프로세스 스케줄링은 프로세스에게 CPU를 할당하고 문맥 교환을 하는 프로세스 관리 기능이다.

2. 종류

■ 장기(상위) 스케줄링

  • 프로세스가 자원을 사용하는 시기를 결정하여 대기 큐로 전달하는 작업으로, 작업 스케줄러(Job Scheduling, Long Term Scheduling)라고 한다.

  • 프로그램들이 주기억장치에 적재될 시기를 결정하는 것과 같은 스케줄링으로 다소 느린 작업 계획이다.

■ 중기(중위) 스케줄링

  • 프로세스가 여러 개의 CPU 중에 어떤 CPU를 할당 받을 것인가를 결정하는 작업

  • 어떤 프로세스들이 CPU를 할당받을 것인지 결정하는 일 담당

  • 이 스케줄러는 프로세스를 주기억 장치로부터 빼낼 수 있기 때문에 필요한 경우에는 다중 프로그래밍의 정도를 낮추어 시스템의 전반적인 효율을 높여 주거나, 특정 프로세스에 대한 처리를 원활히 해 줄 수 있는 효과를 얻을 수 있다.

■ 단기(하위) 프로세스

  • 여러 개의 프로세스가 하나의 CPU를 점유하기 위한 시기를 결정하기 위한 작업으로 프로세스 스케줄링(Processing Scheduling, Short Term Scheduling)라고 한다.

  • 디스패치, 인터럽트를 통한 문맥교환 등을 수행하는 것처럼 짧은 시간에 처리해야 하는 작업 계획이다.

3. 원칙

  • 모든 프로세스들에게 공정하게 배정 (예외는 있음)

  • 단위 시간당 가능한 최대의 처리가 되도록

  • 처리 응답시간은 신속하게

  • 같은 종류의 작업은 같은 비용으로 실행

  • 오버헤드 최소화

  • 시스템 내의 자원이 사용하지 않는 시간이 없도록 유지

  • 응답시간과 자원의 활용간의 적절한 균형 유지

  • 프로세스의 무한대기 상태 피해야함

  • 프로세스의 상태를 파악하여 우선순위 부여하면 좋음

  • 중요 자원을 차지하고 있는 프로세스에게 우선순위 줘야함

  • 문제로 인해 불안하지 않은 프로세스에게 서비스를 많이 제공하도록 한다.

4. 프로세스 스케줄링의 성능 평가 기준

  							        < 바람직한 스케줄링 정책 >

  • CPU 이용률

    CPU를 쉬지않고 몇 퍼센트 (범위 40% ~ 90%)를 이용하는가의 기준(늘림)

  • 처리능력(Throughput)

    단위 시간당 처리할 수 있는 CPU 작업량 (늘림)

  • 대기시간(Waiting time)

    준비상태에서 대기하는 시간 (줄임)

  • 응답시간(Response Time, 반응시간)

    입력에 대해 처음 반응하는 시간 (줄임)

  • 반환시간(Turn around time)

    작업을 지시해서 끝날때까지 시간 (줄임)

     ※Tip!
    
        <u>시간 관련된건 무조건 낮을 수록 좋다!</u>
        

5. 비선점형 방식과 선점형 방식

비선정형 : 빼앗을 수 없다, 중단시킬 수 없다, 일괄처리용

선점형 : 빼앗을 수 있다, 중단시킬 수 있다, 대화용, 시간분할, 실시간

5-1. 비선점형 방식 (Non Preemption) 방식

  • CPU를 점유하고 있을 때에는 다른 프로세스가 현재 실행중인 프로세스를 중단시킬 수 없다.

  • 일단 CPU를 할당받으면 다른 프로세스가 CPU를 강제적으로 빼앗을 수 없는 방식이다.

  • CPU를 사용하고 있는 현재의 프로세스가 종료된 후 다른 프로세스에 CPU를 할당한다.

  • 실행이 완료될 때까지 CPU를 독점하는 방식

  • 비선점형 방식들은 모든 프로세스를 관리하는데 공정하다.

  • 공정하며 프로세스의 실행 예측치를 미리 통보하고, 프로세스를 수행한다면 응답시간 예측이 용이하다. -- ※ 논란의 여지가 있음

  • 일괄 처리 시스템에 적당하다.

※ 응답시간의 견해는 학자들마다, 기출문제마다 조금의 차이가 있어 응답시간 예측과 관련된 문제는 여러 번 출제되어도 확실히 결정된 문제는 아니다!

"빠른 응답시간의 예측을 원한다" → 선점형 방식
"공정하며 프로세스의 실행 예측치를 미리 통보하고, 프로세스를 수행한다면 응답시간의 예측이 용이하다" → 비선점형 방식

5-2. 선점형 방식 (Preemption) 방식

  • 하나의 프로세스가 CPU를 점유하고 있을 때 다른 프로세스가 현재 사용중인 프로세스를 중단시키고 CPU를 차지할 수 있는 방식

  • CPU를 할당받은 프로세스를 다른 프로세스가 CPU를 강제적으로 빼앗을 수 있는 방식

  • 선점형 방식들은 높은 우선순위의 프로세스들이 긴급히 요할 때 유용

  • 빠른 응답시간을 필요로 하는 대화식, 시분할, 실시간 처리에 적당

FIFO : First In First Out

FCFS : First come First Service

SFJ : Short Job First : 짧은 작업 우선처리

※처리시간이 긴 프로세스가 무한대기 상태되는 것을 방지하기 위한 기법 => Aging(노화) 기법

※ 무한대기 VS 교착상태

  무한대기  : 한없이 기다리고 있지만 언젠가는 처리가 됨

  교착상태 : 한없이 기다리고 있지만 처리될 수 없음

HRN : Highest Respons-ratio Next = FIFO + SJF 단점 보완

							=> 대기시간이 클 수록 우선권을 갖는다.!!

RR : Round-Robin

SRT : Shortest Remaining Time

MFQ : Multi Level Feedback Queue

- 짧은 작업 우선

- I/O 작업 우선
profile
오늘도 개발중인 ppm's Programming Log

0개의 댓글