CPU 선점형 스케쥴링이 무엇일까?

박승우·2024년 7월 30일
0
post-thumbnail

자 일흔 다섯 번째 키워드인 'CPU 선점형 스케줄링'을 알아 보았다.

이번 키워드는 이전 키워드인 CPU 스케쥴링과 연관되는 키워드이므로 알아보았다.

CPU 선점형 스케쥴링이 무엇일까?

CPU 선점형 스케줄링(preemptive scheduling)은 현재 실행 중인 프로세스를 중단하고, 준비 상태에 있는 다른 프로세스에게 CPU를 할당할 수 있는 스케줄링 방식이다.
이는 비선점형 스케줄링(non-preemptive scheduling)과 대비되며, 선점형 스케줄링에서는 운영체제가 더 높은 우선순위의 프로세스가 도착하면 언제든지 현재 실행 중인 프로세스를 중지시키고 그 프로세스를 실행할 수 있다.

정의

  • 새로운 프로세스가 준비 큐에 도착한 경우
  • 현재 실행 중인 프로세스가 종료되거나 블록된 경우
  • 특정 시간 할당량(time slice, quantum)이 종료된 경우 (타임 슬라이스가 있는 경우)
  • 현재 실행 중인 프로세스보다 높은 우선순위의 프로세스가 준비 큐에 도착한 경우

특징

  1. 응답 시간 개선
    중요한 작업이나 실시간 작업이 빠르게 처리될 수 있다. 높은 우선순위 프로세스가 빨리 실행될 수 있기 때문에 시스템의 응답 시간이 줄어든다.

  2. 공정성
    여러 프로세스가 CPU 시간을 공정하게 분배받을 수 있다. 이는 특히 다중 사용자 시스템에서 중요하다.

  3. 복잡성 증가
    문맥 전환(context switch)이 빈번하게 발생할 수 있어 시스템의 복잡성이 증가하고, 문맥 전환에 따른 오버헤드가 발생할 수 있다.

  4. 문맥 전환 오버헤드
    프로세스를 중지하고 다른 프로세스를 실행하는 과정에서 문맥 전환이 필요하다. 이는 CPU 자원을 소모하고 시스템 성능에 영향을 미칠 수 있다.

  5. 실시간 시스템 적합
    실시간 시스템에서 요구되는 응답 시간을 보장할 수 있어, 시간에 민감한 작업을 수행하는 데 적합하다.

  6. 우선순위 역전 방지
    우선순위 역전(priority inversion) 문제를 해결하기 위한 기법을 포함할 수 있다. 예를 들어, 우선순위 상속(priority inheritance) 기법을 통해 낮은 우선순위 프로세스가 높은 우선순위 프로세스를 블로킹하지 않도록 할 수 있다.

장점

  • 신속한 응답: 높은 우선순위 프로세스가 빠르게 처리되어 시스템 응답 속도가 빨라진다.
  • 효율적인 자원 분배: 다양한 우선순위를 가진 프로세스들에게 자원이 효율적으로 분배된다.
  • 향상된 사용자 경험: 대화형 시스템에서 사용자의 명령에 대한 응답성이 향상된다.

단점

  • 오버헤드 증가: 문맥 전환이 빈번하게 발생하여 오버헤드가 증가할 수 있다.
  • 복잡성: 스케줄링 알고리즘이 더 복잡해질 수 있으며, 이를 구현하고 유지보수하는 데 더 많은 노력이 필요다.
  • 스타베이션: 낮은 우선순위 프로세스가 무한정 대기하는 문제(스타베이션)가 발생할 수 있다.
profile
게임을 좋아하는 사람 입니다!

0개의 댓글