ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 5. Process_Scheduling
    CS/OS 2022. 5. 19. 17:31

     

    CPU(Processor) 는 하나의 Prcoess 작업이 수행되면, 다음 Process를 작업하여 수행한다.

    이 때 다음 Process가 어떤것이 와야 효율적이고 사용자의 입장에서 빠르다고 느낄 수 있을까? 라는 관점에서 나온것이 Process Scheduling 이다. 여러 방법이 있음으로, 상황에 맞게 사용해야 한다.

     

    1. Preemptive vs Non-Preemptive


    1-1) Preemptive

    다른 Process가 CPU를 점유하고 있을 경우에 I/O , Interrupt , Process exit 이 되지 않음에도 불구하고 다른 Process가 점유한 자리를 뺏을 수 있는 경우이다.
    즉, 프로세스가 정상적으로 수행중인 가운데 다른 프로세스가 CPU를 강제로 점유하여 실행할 수 있는 것이다.

    1-2) Non-Preemptive

    프로세스가 한 번 CPU를 점유했다면, I/O(프로세스 상태가 실행 -> 대기로 변경되는 경우) 또는 프로세스가 종료될 때까지 다른 프로세스가 CPU를 점유하지 못하는 것이다.

     

    2. Scheduling Criteria


    1. CPU Utilization(이용률, %): CPU가 수행되는 비율
    2. Throughput(처리율, jobs/sec): 단위시간당 처리하는 작업의 수(처리량)
    3. Turnaround time(반환시간): 프로세스의 처음 시작 시간부터 모든 작업을 끝내고 종료하는데 걸린 시간이다.(CPU, waiting, I/O 등 모든 시간을 포함한다.) 반환시간은 짧을 수록 좋다.
    4. Waiting time(대기시간): CPU를 점유하기 위해서 ready queue에서 기다린 시간을 말한다.(다른 큐에서 대기한 시간은 제외한다.)
    5. Response time(응답시간): 일반적으로 대화형 시스템에서 입력에 대한 반응 시간을 말한다.

     

    3. CPU Scheduling Algorithm


    3-1)FCFS( First-come-First_served )

    먼저 온 Process가 CPU를 점유한다. 

    Non-Preemptive

    문제점 : Convey Effect라고 불린다. ( CPU 사용 시간이 긴 Process에 의해 다른 Process들이 기다리는 상태 )

     

    3-2) SJF ( Shortest-Job-First )

    가장 짧게 수행되는 Process를 먼저 실행 시킴으로써, 가장 이상적인 형태이다.

    문제점 : 컴퓨터 관점에서 Process가 CPU를 얼마나 점유할지는 알 수 가 없기 때문에 현실적으로 불가능

    Preemptive , Non-Preemptive 둘다 가능

     

    3-3) Priority 

    Process 별로 우선 순위를 두어,우선 순위가 높은 Process 부터 실행한다.

    문제점 : Starvation ( 우선 순위가 낮은 Process는 영원히 못 도는 경우 발생 ) -> Aging 처리 기법( 일정 시간마다 우선 순위를 높여준다. )

     

    3-4) Round Robin

    흔히 알고 있는 시분할 방식으로, Time Quantum을 가지고 Process별로 실행시킨다.

    Time Quantum 의 크기에 따라 커지면 FCFS 0에 가까워지면 Overhead가 발생되어 적절한 값을 넣는게 중요하다.

     

    3-5) Multi-level Queue

    Process를 Group에 따라 나누어 처리한다. ( Priority Queue를 여러 개 두었다고 생각 )

    Queue 마다 우선 순위 지정 가능 , 처음 들어온 프로세스는 우선순위가 높았다가 Queue에 오래 있으면 우선순위가 점차 낮아진다.

     

    3-6) Multi-level Feedback Queue

    Multi-level Queue와 유사하지만, Process가 오래 기다릴 수록 우선순위를 높여준다.

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

    xv6 (linux Init)  (0) 2022.06.02
    7.Posix thread(Pthread)  (0) 2022.05.25
    XV6 - 이론 정리_2  (0) 2022.05.13
    XV6 - 이론 정리_1  (0) 2022.05.13
    3. Dual Mode / System Call / OS Service  (0) 2022.05.11

    댓글

Designed by Tistory.