CPU 스케줄링? 이것이 왜 필요한가?
목표: CPU가 노는시간 없이 처리량 최대화하기 위함(최고로 뽕뽑기)
멀티태스킹 환경에서는 여러 프로세스를 효율적으로 관리하는 것이 중요합니다.
여러가지 CPU 스케줄링 기법
현재 CPU에서 실행중인 process 의 수행을 CPU 버스트가 완료될 때까지 중지할 수 없습니다.
CPU는 현재 프로세스가 실행을 완료하거나 일반적으로 I/O 작업을 수행할 때 자발적으로 제어를 포기한 후에만 다음 프로세스에 사용할 수 있습니다.
현재 CPU에서 실행 중인 process의 수행을 정지할 수 있음
이러한 선점은 시간 분할이나 프로세스 우선순위와 같은 특정 기준에 따라 발생할 수 있으므로 이 접근 방식을 더욱 동적으로 만듭니다.
CPU에서 작업이 실행되는 순서를 관리하는 기본 프로세스
-긴 프로세스가 대기열을 차단하면 성능 저하(호송 효과)가 발생할 수 있습니다.
한번 CPU 받으면 내 CPU Burst 시간 끝나기전까지 계속
새로 실행된 애중에 우선순위 높은 애 오면 바꿈
선점형 방식. (무지의 먹방 라이브와 유사)
각 작업에는 고정된 시간 슬롯인 Time Quantum이 할당되며 작업은 순환 순서로 처리된다 (시간 공유와 유사!)
Time Quantum(일정시간) 만큼 지나면 너 나와하고 바꾸는것
시간 공유 시스템에서 광범위하게 사용되며 응답성과 공정성을 우선시하는 시스템에 특히 효과적
모든 프로세스가 CPU 시간을 공평하게 분배받아 단일 프로세스가 지배하는 것을 방지합니다.
멀티레벨 큐에서 프로세스들이 서로 다른 큐로 이동할 수 있는 스케줄링 방법
동적이고 유연한 접근 방식이 필요한 시스템에 자주 사용
Windows 및 UNIX/Linux와 같은 범용 운영 체제에서 사용.
다단계 피드백 큐는 CPU 집약적인 작업부터 I/O 바인딩된 작업까지 광범위한 프로세스 유형을 효과적으로 처리할 수 있습니다.
이는 프로세스의 동작에 적응하여 효율적이고 반응이 빠른 환경을 제공합니다.
실행 특성에 따라 서로 다른 대기열 간에 프로세스를 이동하는 기능을 통해 리소스 활용도를 높이고 전반적인 성능을 향상가능하다!
주요 차이점
프로세스 처리의 유연성:
다중 레벨 대기열 예약은 프로세스가 할당된 대기열에 남아 있기 때문에 더욱 엄격합니다.
다단계 피드백 큐 스케줄링은 보다 유연하여 프로세스가 동작에 따라 큐 간에 이동할 수 있도록 합니다.
프로세스 동작에 대한 적응성:
다단계 피드백 큐 스케줄링은 프로세스의 변화하는 동작에 적응하여 잠재적으로 보다 효율적인 리소스 활용과 더 나은 전체 시스템 성능을 제공합니다.
다중 레벨 대기열 예약은 초기 대기열 할당 후 프로세스 동작에 적응하지 않습니다.
구현의 복잡성:
다단계 피드백 큐 스케줄링은 일반적으로 프로세스 동작을 평가하고 큐 전환을 관리하는 메커니즘이 필요하기 때문에 구현하기가 더 복잡합니다.
다중 레벨 대기열 스케줄링은 대기열에 대한 정적 할당을 포함하므로 개념상 더 간단합니다.
프로세스와 스레드 관리 기법