관리 메뉴

Kim's Programming

프로세스 스케줄링(1/2) 본문

Computer Theory/Operating System

프로세스 스케줄링(1/2)

Programmer. 2017. 7. 12. 23:09

1. 스케줄링의 이해


1. 스케줄링의 개념


단일 처리 시스템에서는 실행 중인 프로세스가 입출력을 요청하면 이 프로세스가 실행을 마칠 떄까지 사용하던 자원을 대기해야하므로 효율이 떨어진다. 반면에 다중 프로세스에서는 여러프로세스가 메모리에 올라가있어서 실행중인 프로세스가 입출력을 요청하면 운영체제가 다른 프로세스에 할당된 프로세서를 할당한다. 따라서 단일 처리시스템에 비해서 다중 프로그래밍에서는 다음 장점을 얻을 수 있다.


          • 프로세서 이용율을 높일 수 있다.
          • 프로세서 처리율(주어진 시간에만 처리하는 작업량)이 증가한다.
다중 프로그래밍에서 프로세서를 할당할때 어떤 프로세스를 선택할 때 필요한데 그 방법을 스케줄링이라한다. 스케줄링은 여러 프로세스가 번갈아 사용하는 프로세서를 어떤 시점에 어떤 프로세스에 할당할지 결정하는 것이다.

스케줄링이 필요 없는 프로세스도 있는데, 인터럽트 처리, 오류 처리, 사용자의 시트메 호출 등의 사전 처리가 대표적인 예이다.


2. 스케줄링의 목적

      • 자원 할당의 공정성 보장 : 모든 프로세스는 공평하게 취급하며, 무한한 대기해서는 안 된다.
      • 단위시간당 처리량 최대화: 프로세스 처리량을 최대화 하여 가능한 많은 프로세스에 서비스를 제공해야 한다.
      • 적절한 반환시간 보장: 적절한 시간안에 프로세스를 완료해야한다.
      • 예측 가성 보장: 프로세스를 시스템 부하와 상관없이 거의 같은 시간에 거의 같은 비용으로 실행할 수 있어야 한다.
      • 오버헤드 최소화: 오버헤드가 발생하면 자원이 낭비되므로 오버헤드를 줄여야 한다.
      • 자원 사용의 극대화: 시스템의 자원을 가능한 쉬지 않고 사용할 수 있도록 해야한다.
      • 반환시간과 자원의 활용간에 균형 유지: 반환시간을 빠르게 하려면 충분한 자원을 확보해야하나 자원을 너무 차지하면 자원 활용도가 떨어지므로 균형을 잘 맞춰야 한다.
      • 실행대기 방지: 실행을 무한 연기하지 않도록 해야한다.

3. 스케줄링의 기준요소


스케줄링의 목적을 실행하려면 프로세스의 동작을 고려해야하는데, 특히 프로세스의 실행시간이 중요한 요소이다. 프로세스의 입출력 대기 시간이 짧으면 프로세서를 오래 차지하여 프로세서 버스트가 길고, 입출력 대기시간이 길면 오히려 입출력을 하려고 기다리므로 프로세서 버스트가 짧다.
        • 프로세서 중심 작업 : 프로세서 버스트가 긴 프로세스
        • 입출력 중심 작업 : 프로세서 버스트가 짧은 프로세스

4. 스케줄링 큐

스케줄링은 준비 큐에서 프로세스를 하나 선택하는 것이다.

5. 선점 스케줄링과 비선점 스케줄링
        • 비선점 스케줄링: 한 프로세스가 자원을 선택했을 때 다른 프로세스가 해당 자원을 빼앗을 수 없는 것
          1. 모든 프로세스가 공평하게 처리된다.
          2. 응답시간을 예측하기 쉽다

        • 선점 스케줄링: 현재 실행 중인 프로세스를 인터럽트할 수 있거나 준비 상태로 이동할 수 있는 것
          1. 우선순위가 높은 프로세스들이 긴급 처리를 요청할떄 유용하다.
          2. 대화식 시분할 시스템이나 실시간 시스템에서 빠른 응답시간을 유지하는 데 전점 스케줄링은 필수이다.
          3. 선점 스케줄링은 오버헤드가 커질 수 있어 이를 효과적으로 이용하려면 메모리에 프로세스가 많이 적재되어 있어햐 한다.
          4. 우선순위라는 개념을 반드시 고려해야하며 우선순위는 의미 있게 부여하지 않으면 효과가 없다.

6. 스케줄링 알고리즘의 선택 기준 

다음은 스케줄링 알고리즘을 비교할 때 참조할 수 있는 기준들이다.
            • 프로세서 사용률: 프로세서를 항상 실행 상태로 유지하여 유휴 상태가 되지 않도록 한다.
            • 처리율: 단위시간당 완료하는 작업 수가 많도록 짧은 작업을 우선 처리하거나 인터럽트 없이 작업을 실행한다.
            • 반환 시간: 작업을 완료하는 데 소요되는 시간을 최소화하도록 일괄 처리 작업을 우선 처리한다.
            • 대기시간: 작업의 실행 시간이나 입출력 시간은 영향을 줄 수 없으므로 준비 큐에서 기다리는 시간을 최소화하도록 사용자 수를 제한한다.
            • 반응시간: 작업을 요청한 시간부터 반응을 시작하는 시간까지의 간격

반환시간, 대기시간, 응답시간의 관계는 다음과 같다

            • 대기시간  = 실행시간 - 도착시간
            • 실행시간 = 실행종료시간 - 실행시작시간
            • 반환시간 = 실행종료시간 - 도착시간


'Computer Theory > Operating System' 카테고리의 다른 글

교착 상태와 기아 상태  (0) 2017.06.24
병행 프로세스와 상호배제(2/2)  (0) 2017.06.24
병행 프로세스와 상호배제(1/2)  (0) 2017.06.23
스레드(Thread)  (0) 2017.06.22
프로세스(Process)  (0) 2017.06.22