[CS]운영체제-CPU스케줄링

buckshot·2024년 5월 8일

cs

목록 보기
6/15
post-thumbnail

CPU Scheduler

CPU 스케줄러는 CPU 스케줄링 알고리즘에 따라 프로세스에서 해야 하는 일을 쓰레드 단위로 할당한다.

프로그램을 실행 할 때 CPU 스케줄링 알고리즘이 어떤 프로그램에 CPU 소유권을 줄 것인지 결정하게 된다. 이 알고리즘은 CPU 이용률을 효율적으로 일을 하게 하는 것이 목표이다.


Preemptive (선점형)

지금 사용하고 있는 프로세스를 알고리즘에 의하여 중단되고 새롭게 도착한 프로세스가 CPU할당을 하는 방식이다.

RR (Round Robin)

여러 프로세스가 CPU를 공유하는 환경에서 사용이 된다. 해당 방법은 공평한 시간 슬라이스를 할당하여 실행하는 방식으로 동작을 한다.

  • 동작

    • 각 프로세스에게 일정한 시간 할당량을 부여한다.
    • 대기 큐에 있는 프로세스 중 가장 먼저 도착한 프로세스가 CPU를 할당받아 실행한다.
    • 할당된 시간이 지나면 해당 프로세스는 대기 큐의 맨 뒤로 이동하고, 다음 프로레스에게 CPU를 할당한다.

SRTF (Shortest Remaining Time Frist)

SRTF는 현재 실행 가능한 프로세스 중 남은 실행 시간이 가장 짧은 프로세스를 선택하여 CPU를 할당한다. 따라서 SRTF는 최소 실행 시간을 갖는 프로세스를 우선적으로 처리하여 방식이다.

  • 동작

    • 대기 큐에 있는 프로세스 중 남은 실행 시간이 가장 짧은 프로세스를 선택하여 CPU를 할당한다.
    • 이미 CPU를 사용중인 프로세스보다 남은 시간이 더 짧은 프로세스가 도착하면 CPU를 선점하여 실행을 한다.

Priority Scheduling with Preemption

현재 실행 중인 프로세스를 중단하고 다른 프로세스를 실행하는 방식이다. 각 프로세스는 우선 순위를 갖고 있으며, 더 높은 우선 순의를 갖는 프로세스가 도착하면 하위 순위를 갖는 프로세스의 동작을 중단하고 새로운 프로레스를 실행을 하는 방식이다.

  • 동작

    • 각 프로세스에게 우선 순윌를 할당한다.
    • 대기 큐에 있는 프로세스 중 우선 순위가 가장 높은 프로세스를 선택하여 CPU를 할당한다.
    • 우선순위가 더 높은 프로세스가 도착하면 CPU를 선점하여 실행을 한다.

Multilevel Queue (다단계 큐)

다단계 큐는 우선 순위에 따라 여러 개의 큐를 사용하여 프로세스를 관리하는 방식이다.
각 큐는 다른 우선 순위의 프로세스를 처리하며, 각 큐마다 독립적인 스케줄링 알고리즘을 사용할 수 있다.

  • 동작

    • 여러 개의 큐를 설정하여 각각 다른 우선순위의 프로세스를 관리한다.
    • 우선 순위에 따라 프로세스가 해당하는 큐에 할당
    • 각 큐는 자체적인 스케줄링 알고리즘을 사용하여 프로세스를 처리

Non-Preemptive Scheduling (비선점형)

프로세스가 실행 중에는 중단되지 않고 자발적으로 CPU 소유권을 반납할 때까지 실행을 계속하는 방식이다.
새로운 프로세스가 도착을 하더라도 현재 실행 중인 프로세스가 종료되거나 입출력 작업 등을 대기 상태가 될 때까지 CPU를 할당하지 않는다.

FCFS (First Come First Serve)

도착한 순서대로 프로세스를 실행하는 방식이다. 따라서 먼저 도착한 프로세스가 먼저 CPU 할당을 받는다.

  • 동작

    • 대기 큐에 있는 프로세스들은 도착한 순서대로 줄을 추가를 한다.
    • CPU가 비어 있으면 가장 앞에 있는 프로세스가 CPU 할당을 받아 실행을 한다.
    • 해당 프로세스가 종료되거나 입출력 작업을 요청할 때까지 CPU를 사용한다.

SJF (Shortest Job First)

실행 시간이 가장 짧은 프로세스를 우선적으로 처리하는 방식이다. 따라서 실행 시간이 짧은 프로세스가 먼저 할당을 받는다.

  • 동작

    • 대기 큐에 있는 프로세스들의 시간을 예측하낟.
    • 실행 시간이 가장 짧은 프로세스가 CPU를 할당받아 실행
    • 해당 프로세스가 종료되거나 입출력 작업을 요청할 때까지 CPU사용

Priority Scheduling

우선순위 스케줄링은 각 프로세스에게 우선 순위를 부여하고, 가장 높은 프로세스를 처히하는 방식

  • 동작

    • 각 프로세스에게 우선순위를 할당한다.
    • 대기 큐에 있는 프로세스들 중 가장 높은 우선순위를 가진 프로세스가 CPU를 할당받아 실행한다.
    • 해당 프로세스가 종료되거나 입출력 작업을 요청할 때까지 CPU를 사용한다.
profile
let's go insane

0개의 댓글