단일 프로그램은 8개의 CPU가 있는 시스템에서 1년 동안 실행됩니다.

단일 프로그램은 8개의 CPU가 있는 시스템에서 1년 동안 실행됩니다.

단일 프로세스, 단일 스레드 프로그램을 실행하는 8CPU 시스템이 있다고 가정합니다.

  while True: report time every hour.

프로그램은 1년 동안 진행됐다.

해당 프로그램은 해당 연도에 하나의 코어에서만 실행되었습니까, 아니면 모든 코어에 액세스할 수 있었습니까?

답변1

Linux 스케줄러는 항상 동일한 CPU에서 프로그램을 실행하려고 시도하지만 이것이 보장되지는 않습니다. 참조.CPU 선호도.

답변2

나는 스케줄러가 프로세스를 이동하고 지역적 온난화의 영향을 줄이는 것을 보았습니다(이는 몇 초 안에 발생합니다). 다른 이유로도 자유롭게 이동할 수 있지만 동일한 캐시를 사용하고 캐시 플러시를 방지하므로 동일한 코어에 유지하려고 합니다.

1년 이내에 코어/CPU를 변경할 기회가 많이 있을 것이며, 그 확률은 아무런 차이가 없을 만큼 100%에 가깝다고 말하고 싶습니다.

프로세스가 실행되는 CPU/코어를 제한할 수 있습니다. 그렇게 하면 보장됩니다.

관련 정보