CPU 스케줄링(CPU Scheduling)

Lys·2023년 11월 1일
0

운영체제

목록 보기
11/23

CPU 스케줄링이란?

프로세서가 작업을 수행할 때 언제,CPU 스케줄러가 어떤 프로세스에 CPU를 할당할지 결정하는 작업을 말한다. CPU 스케줄링은 CPU를 최대로 활용하는 것을 목표로 하며 규모에 따라 장기,중기,단기 스케줄링으로 구분 되며, 목적에 따라 선점형과 비선점형으로 구분된다.

1.실행 상태에서 대기 상태로 전환 될 때(I/O발생)
2.실행 상태에서 준비 상태로 전환 될 떄(intterupt 발생)
3.대기 상태에서 준비 상태로 전환 될 때(I/O완료 시)
4.종료 될 때

1번과 4번 상황에서 발생하는 것을 비선점형(non-preemptive) 스케줄링이라 하고 2번과 3번 상황에서 발생하는 것을 선점형(preemptive)라고 한다.

  • 비선점형 스케줄링
    • 프로세스가 CPU를 점유하고 있다면 이를 빼앗지 못한다.
    • 필요한 문맥 교환만 일어나기 때문에 오버헤드가 상대적으로 적지만 프로세스 배치에 따라 효율성이 많이 차이난다.
  • 선점형 스케줄링
    • 프로세스가 CPU를 받아 실행중이더라도 운영체제가 이를 강제적으로 빼앗을 수 있다.
    • CPU 처리 시간이 긴 프로세스의 CPU 사용 독점을 막을 수 있어 효율적이다.
  • 잦은 문맥 교환으로 오버헤드가 커질 수 있다.

CPU 스케줄링의 목적

CPU 스케줄링은 모든 프로세스가 적당하고 공평하게 또 효울적으로 자원을 할당받는 것이 목적이다.

  • 공평성
    • 프로세스에게 자원을 분배받는 과정이 공평해야 되며 특정 프로세스가 배제되면 안된다.
  • 효율성
    • 시스쳄 자원이 유휴 시간 없이 사용되어야 하며, 유휴 자원을 사용하려는 프로세스에게는 우선권을 주어야 된다.
  • 안정성
    • 우선 순위를 사용하여 중요 프로세스가 먼저 작동하게 배정해 시스템 자원을 점유하거나 파괴하려는 프로세스로부터 자원을 보호해야 된다.
  • 확장성
    • 프로세스가 증가하더라도 안정적으로 작동 될 수 있도록 조치해야 되며, 시스템 자원이 늘어나는 경우 혜택이 시스템에 반영 되도록 해야 된다.
  • 반응시간 보장
    • 시스템이 응답이 없는 경우 사용자는 시스템이 멈춘 것으로 가정하기 때문에 시스템은 적절한 시간 안에 프로세스에 요구에 반응해야 된다.
  • 무한 연기 방지
    • 특정 프로세스의 작업이 무한히 연기 되어서는 안 된다.

CPU 스케줄링 평가기준(CPU Scheduling Criteria)

  • CPU 사용률
    • 시간당 CPU를 사용한 시간의 비율
    • 프로세서를 실행상태로 항상 유지하려고 해야 된다.
  • CPU 처리율
    • 시간당 처리한 작업의 비율
    • 단위 시간당 완료되는 작업 수가 많도록 해야 된다.
  • 반환시간
    • 프로세스가 생성 된 후 종료되고 사용하던 자원을 모두 반환하는데 걸리는 시간
    • 작업이 준비 큐(Ready Queue)에서 기다린 시간부터 CPU에서 실행 된 시간, I/O 작업 시간의 합
  • 대기시간
    • 대기열에 들어와 CPU를 할당받기 까지 기다린 시간
    • 준비 큐에서 기다린 시간의 총 합
      • 준비 큐(Ready Queue) : CPU 할당을 대기중인 프로세스들로 구성(메모리 할당 완료)
      • 작업 큐(Job Queue) : 상태에 상관 없이 모든 프로세스가 담겨 메모리 할당을 기다린다.
  • 반응시간
    • 대기열에서 처음으로 CPU를 얻을 때까지 걸리는 시간
    • 대기시간과 다른 점은, 대기시간은 준비 큐에서 기다린 모든 시간을 합친 것이지만 반응시간은 CPU를 할당 받은 최초의 순간까지 기다린 시간 한 번을 측정한다.

      CPU 사용률, 처리율은 높을 수록 좋고 반환시간,대기시간,반응시간은 낮을 수록 효율적이다.

🙇‍ 참고 사이트 🙇‍

https://code-lab1.tistory.com/45
https://velog.io/@sunnamgung8/CPU-%EC%8A%A4%EC%BC%80%EC%A4%84%EB%A7%81
https://devowen.com/234
https://kjhoon0330.tistory.com/entry/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9COS-CPU-%EC%8A%A4%EC%BC%80%EC%A4%84%EB%A7%81
https://eunajung01.tistory.com/60

0개의 댓글

관련 채용 정보