ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [OS] CPU 스케줄링이란? | 선점형 스케줄링과 비선점형 스케줄링
    운영체제 2023. 3. 25. 09:40
    728x90
    반응형



    운영체제가 프로세스들에게 CPU 자원을 배분하는 것을 CPU 스케줄링이라고 합니다. CPU 스케줄링은 컴퓨터 성능과도 직결되는 중요한 문제입니다.



     

    프로세스 우선순위

    우선순위가 높은 프로세스란 빨리 처리해야 하는 프로세스를 의미합니다. 대표적으로 비디오 재생이나 디스크 백업 작업 등 입출력 작업이 많은 프로세스가 있습니다. 이를 입출력 집중 프로세스라고 합니다. 그리고 복잡한 수학 연산, 컴파일, 그래픽 처리 작업 등 CPU 작업이 많은 프로세스를 CPU 집중 프로세스라고 합니다.


    스케줄링 큐

    운영체제는 프로세스들에 줄을 서서 기다리도록 요구합니다. CPU를 사용할 프로세스들과, 메모리에 적재될 프로세스들, 특정 입출력장치를 사용할 프로세스들을 모두 줄 세웁니다. 그리고 운영체제는 이 줄을 스케줄링 큐(scheduling queue)로 구현하고 관리합니다.

    운영체제가 관리하는 큐

    📍준비 큐 ready queue

    CPU를 이용하고 싶은 프로세스들이 서는 줄

    📍대기 큐 waiting queue

    입출력장치를 이용하기 위해 대기 상태에 접어든 프로세스들이 서는 줄

    준비 상태에 있는 프로세스들의 PCB는 준비 큐의 마지막에 삽입되어 CPU를 사용할 차례를 기다립니다. 운영체제는 큐에 삽입된 순서대로 프로세스를 하나씩 꺼내어 실행하되, 그중 우선순위가 높은 프로세스를 먼저 실행합니다. 높은 우선순위부터 실행하는 구체적인 방식은 다음 포스팅에서 다루겠습니다.

    대기 상태에 있는 프로세스들은 같은 장치를 요구한 프로세스들끼리 같은 대기 큐에서 기다립니다. 예를 들어 하드 디스크 사용을 요구한 프로세스는 하드 디스크 대기 큐에서 입출력 작업이 완료되기를 기다리고, 프린터 사용을 요구한 프로세스는 프린터 대기 큐에서 입출력 작업이 완료되기를 기다리는 것입니다.
    입출력이 완료되어 완료 인터럽트가 발생하면 운영체제는 대기 큐에서 작업이 완료된 PCB를 찾고, 이 PCB를 준비 상태로 변경한 뒤 대기 큐에서 제거합니다. 그리고 해당 PCB는 준비 큐로 이동합니다.



     

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

    🍊선점형 스케줄링

    인터럽트가 발생할 경우 프로세스로부터 자원을 강제로 빼앗아 다른 프로세스에 할당할 수 있는 스케줄링 방식
    장점 - 어느 한 프로세스의 자원 독점을 막고 프로세스들에 골고루 자원 배분 가능
    단점 - 문맥 교환 과정에서 오버헤드 발생 가능성 있음

    🍊비선점형 스케줄링

    하나의 프로세스가 자원을 사용 중일 때 다른 프로세스가 끼어들 수 없는 스케줄링 방식. 즉, 하나의 프로세스가 자원 사용을 독점할 수 있는 방식
    장점 - 문맥 교환에서 발생하는 오버헤드가 적음
    단점 - 프로세스가 자원 사용에 있어 효율적인 자원 이용이 어려움



    LIST
Designed by Tistory.