단일 프로세스, 단일 스레드 프로그램을 실행하는 8CPU 시스템이 있다고 가정합니다.
while True: report time every hour.
프로그램은 1년 동안 진행됐다.
해당 프로그램은 해당 연도에 하나의 코어에서만 실행되었습니까, 아니면 모든 코어에 액세스할 수 있었습니까?
답변1
Linux 스케줄러는 항상 동일한 CPU에서 프로그램을 실행하려고 시도하지만 이것이 보장되지는 않습니다. 참조.CPU 선호도.
답변2
나는 스케줄러가 프로세스를 이동하고 지역적 온난화의 영향을 줄이는 것을 보았습니다(이는 몇 초 안에 발생합니다). 다른 이유로도 자유롭게 이동할 수 있지만 동일한 캐시를 사용하고 캐시 플러시를 방지하므로 동일한 코어에 유지하려고 합니다.
1년 이내에 코어/CPU를 변경할 기회가 많이 있을 것이며, 그 확률은 아무런 차이가 없을 만큼 100%에 가깝다고 말하고 싶습니다.
프로세스가 실행되는 CPU/코어를 제한할 수 있습니다. 그렇게 하면 보장됩니다.