ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • # 04. CPU 스케줄링
    전공 지식/OS 2022. 8. 30. 14:38

    1. CPU 스케줄링이란

     

    정의

    • 작업을 처리하기 위해서 프로세스들에게 CPU를 할당하기 위한 정책을 계획하는 것이다.
    • 어떤 프로세스에 CPU를 배정할지 결정하고, 이 작업은 컴퓨터 시스템의 효율에 직결되는 중요한 일이다.

     

    목적

    • 공평성, 효율성, 안정성, 반응시간 보장, 무한 연기 방지

     

     

     

     

      2. 선점형 vs 비선점형 스케줄링

     

    선점형 스케줄링

    • 프로세스가 CPU를 할당받아 실행 중이더라도 운영체제가 CPU를 강제로 빼앗을 수 있는 방식
    • CPU 처리 시간이 매우 긴 프로세스가 CPU 사용 독점을 막을 수 있어 효율적인 운영이 가능하다.
    • 하지만 잦은 문맥 교환으로 오버헤드가 많이 발생한다.

     

     

    비선점형 스케줄링

    • 프로세스가 CPU를 점유하고 있다면 이를 빼앗을 수 없는 방식
    • 필요한 문맥 교환만 일어나기 때문에 오버헤드가 상대적으로 적지만 프로세스의 배치에 따라 효율성 차이가 많이 난다.

     

     

     

      3.  스케줄링 알고리즘

     

    FCFS

    • 선입선출. 비선점형. 한업이 기다려서 비효율적.

     

     

     

    SJF (shortest job first)

    • 실행시간이 짧은 것부터. 비선점형. 단 더 짧아도 cpu 사용중인걸 뺏지는 못함. 기아현상.

     

     

     

    HRN (highest response ratio next)

    • SJF + Aging. 비선점형. 
    • Aging : 나이를 먹는다는 의미 그대로 starvation을 해결하기 위해 대기 시간이 길어지면 우선순위를 높여주는 방법이다.

     

     

     

    SRTF (shortest remaining time first)

    • SJF 의 선점형 방식. 먼저 온 프로세스가 CPU를 할당받고 있더라도 남은 처리 시간이 뒤에 온 프로세스의 처리 시간보다 길면 CPU를 빼앗긴다.
    • 평균 대기 시간이 가장 짧음. 
    • 잦은 문맥 교환과 기아현상이 심각하게 발생.
    • 실제로 사용 어려움.

     

     

     

    Priority 스케줄링

    • 프로세스의 중요도에 따라 매긴 우선순위를 반영. 
    • 기아 현상, 공평성 문제

     

     

     

    RR (round robin)

    • 프로세스에게 각각 동일한 CPU 할당 시간(타임 슬라이스, quantum)을 부여해서 이 시간 동안만 CPU를 이용하게 한다. 만약 할당 시간동안 처리를 다 하지 못하면 CPU를 빼앗고 다음 프로세스에게 넘긴다. 빼앗긴 프로세스는 준비 큐의 맨 뒤로 간다. 따라서 선점형 방식이다.
    • 모든 프로세스가 최초 응답 시간을 빠르게 보장받을 수 있다.
    • 타임 슬라이스가 큰 경우 처리 시간이 긴 프로세스에 의해 CPU의 효율성이 떨어질 수 있다. 비디오 플레이어와 워드 프로세서를 동시에 실행했을 때 타임 슬라이스가 크다면 비디오가 약간 씩 끊겨서 재생될 것이다. 그리고 만약 타임 슬라이스가 무한대로 설정되면 FCFS 스케줄링과 다를 바 없어진다.
    • 타임 슬라이스가 작은 경우 여러 프로그램이 동시에 실행되는 효과를 볼 수 있다. 하지만 너무 작으면 잦은 문맥 교환이 일어나 오버헤드가 상당히 커진다.

     

     

     

    Multilevel queue 스케줄링

    • 우선순위 스케줄링과 라운드로빈(RR) 스케줄링을 결합한 알고리즘이다.
    • 여러 종류의 작업을 처리해야 하는 경우 적합한 방식으로, 작업의 중요도, 작업의 특성에 따라 분류하여 CPU를 할당하며 그룹마다 다른 스케줄링을 적용하기도 한다.

     

     

     

    Multilevel Feedback quqe 스케줄링

    • 프로세스가 큐들 사이를 이동하는 것을 허용하는 알고리즘으로 선점형에 해당한다.
    • 현재 사용되는 CPU 스케줄링 알고리즘 중 가장 일반적인 CPU 스케줄링 알고리즘이다.

    '전공 지식 > OS' 카테고리의 다른 글

    # 07. Memory  (3) 2022.09.19
    # 05. 병행프로세스 동기화  (3) 2022.08.30
    # 03. Interrupt & System call  (6) 2022.08.15
    # 02. 프로세스와 스레드  (0) 2022.08.07
    # 01. 운영체제란?  (0) 2022.08.07

    댓글

Designed by Tistory.