Linux 스케줄러가 프로세스가 I/O 바인딩인지 CPU 바인딩인지 확인하는 방법

Linux 스케줄러가 프로세스가 I/O 바인딩인지 CPU 바인딩인지 확인하는 방법

이것에 추가질문, 스케줄러는 프로세스가 I/O 바인딩인지 CPU 바인딩인지 어떻게 결정합니까?

미스터 러브가 왔습니다기사,설명하다

"스케줄러는 복잡한 알고리즘을 사용하여 가장 실행할 가치가 있는 프로세스를 결정하는 경우가 많습니다."

이 복잡한 알고리즘은 무엇입니까?

답변1

CPU 집약적 프로세스는 CPU 시간 조각을 모두 사용한 후 스케줄러에 의해 선점될 가능성이 더 높으며, I/O 집약적 프로세스는 I/O를 수행하여 CPU 시간 조각을 조기에 해제할 가능성이 더 높습니다. 선점에 참여하는 스케줄러에는 그루밍 프로세스의 모든 메트릭이 있습니다.

답변2

자세한 내용을 알고 싶다면 소스 코드를 확인하세요.

일반적으로 계산 집약적인 프로세스는 I/O 집약적인 프로세스보다 전체 시간 조각을 더 자주 사용합니다. 전체 할당을 사용하지 않고 최근에 생성된 프로세스는 가까운 미래에 동일한 작업을 수행할 가능성이 더 높은 것으로 간주되며 이에 따라 예약될 수 있습니다.

프로세스가 실행되는 동안 동작이 변경될 수 있고 실제로 변경된다는 점을 기억하는 것이 중요합니다. 과거 시간 조각의 메모리가 소멸되는 기간은 대부분의 스케줄러에서 조정할 수 있는 중요한 매개변수 중 하나입니다.

실제 스케줄러는 기록 시간 조각 사용 이상의 것을 고려해야 합니다. "좋은" 값과 다른 프로세스를 차단하는 잠금은 사용할 수 있는 다른 정보의 두 가지 예일 뿐입니다.

관련 정보