ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Operating System] CPU 스케줄링 : 개요
    Operating System 2024. 5. 19. 17:55

     


    CPU 스케줄링의 개요를 우선순위 스케줄링을 기반으로 정리하였습니다.


    참조 : 인프런 '개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제'


    < CPU 스케줄링이란? >

    운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 것

     

    CPU의 프로세스 처리 이미지

     

     


    < 프로세스 우선순위 >

    프로세스마다 빨리 처리해야 하는 프로세스, 천천히 처리해도 괜찮을 프로세스 등을 효율적으로 처리하기 위해 운영체제는 각 프로세스의 PCB마다 우선순위를 설정하여 효율적으로 처리합니다.

     

     

    Ex) 입출력 집중 프로세스 / CPU 집중 프로세스 우선순위 비교

    : 보통 입출력 작업이 많은 프로세스( = 입출력 집중 프로세스)의 우선순위는 CPU 작업이 많은 프로세스 ( = CPU 집중 프로세스)의 우선순위보다 높습니다.

    입출력 작업이 많은 프로세스는 CPU 집중 프로세스에 비해 대기상태에 더 많이 머무르기 때문입니다.

     

     


    < 스케줄링 큐 >

    스케줄링 큐(Scheduling Queue)는 운영체제의 프로세스 스케줄러가 관리하는 다양한 대기열을 말합니다.

    운영체제가 각 PCB를 일일이 확인하며 우선순위를 판단하기는 비효율적이기 때문에 여러 대기열을 만들어 프로세스를 관리합니다.

    스케줄링 큐는 대표적으로 준비 큐 대기 큐가 있습니다.

     

    +. 스케줄링 큐에서 반드시 선입선출 방식일 필요는 없습니다.

     

     


    [ 준비 큐와 대기 큐 ]

    : 준비 큐는 CPU를 이용하기 위해 기다리는 줄이고, 대기 큐는 입출력장치를 이용하기 위해 기다리는 줄입니다.

    준비 큐와 대기 큐

     

     


    [ 대기 큐 상세 ]

    : 같은 장치를 요구한 프로세스들은 같은 큐에서 대기하는 경우가 많습니다.

    자원별 대기 큐

     

     


    < 선점형과 비선점형 스케줄링 >

    자신보다 더 처리가 급한 프로세스가 CPU 사용을 요청할 때, 
    - 선점형 스케줄링은 현재 CPU를 사용중인 프로세스로부터 CPU자원을 빼앗아 다른 프로세스에 할당하고,
    - 비선점형 스케줄링은 현재 CPU를 사용중인 프로세스의 작업이 끝날 때까지 요청한 프로세스를 대기시키는 방식입니다.

     

     

    [ 선점형 스케줄링 ]

    : 새로운 프로세스가 도착했을 때, 그 프로세스의 우선순위가 현재 실행 중인 프로세스의 우선순위보다 높다면, 현재 실행 중인 프로세스를 중단하고 새로운 프로세스에게 CPU를 할당합니다.

     

     

    [ 장점 ] : 어느 할 프로세스의 자원 독점을 막고 프로세스들에 골고루 자원을 배분할 수 있습니다.

    [ 단점 ] : 그만큼 문맥교환이 많이 발생하기 때문에 문맥 교환 과정에서 오버헤드가 발생할 수 있습니다.

     

     


    [ 비선점형 스케줄링 ]

    : 현재 실행 중인 프로세스가 CPU를 반납할 때까지 기다린 후, 준비 큐에서 우선순위가 가장 높은 프로세스를 선택하여 CPU를 할당합니다.

     

     

    [ 장점 ] : 선점형 스케줄링에 비해 문맥 교환에서 발생하는 오버헤드가 적습니다.

    [ 단점 ] : 모든 프로세스가 골고루 자원을 이용하기 어렵습니다. 우선순위가 낮은 프로세스는 기아(starvation) 상태에 빠질 수 있습니다.

     

     

     

    댓글

Designed by Tistory.