(1)에 표시된 Running 필드에 표시되는 일반적인 최대 수는 top
시스템에 설치된 논리적 CPU 수입니다. 그러나 Ubuntu 10.04(다른 버전에서는 확인되지 않음)에서는 때때로 top
(1) 실행 중인 프로세스 수가 앞서 언급한 제한을 초과하는 것으로 표시되는 것을 관찰했습니다 .
예를 들어, 단일 코어 시스템에 2개의 실행 중인 프로세스가 표시되는 원인은 무엇입니까?
답변1
상단의 "실행 중" 필드에는 동시에 실행 중인 작업 수가 표시되지 않고 실행 중인 작업 수가 표시됩니다.실행 가능즉, CPU 액세스를 위해 경쟁하는 작업 수입니다.
top이 단일 시간 조각 내에서 모든 시스템 정보를 얻을 수 있는 경우 "실행 중" 필드는 S
상태(열)에 의해 표시되는 작업 수 입니다 R
( R
여기서도 종종 "실행 중"을 의미한다고 말하지만 실제로는 "실행 가능")"). 실제로는 top이 각 작업에 대한 정보를 하나씩 가져오고 실행 가능한 일부 작업이 완료될 때쯤 절전 모드로 전환될 수 있기 때문에 숫자가 일치하지 않을 수 있습니다(일부 top의 경우. 구현에서는 "실행 중" 필드를 계산하기 위해 상태가 있는 작업만 계산할 수 있습니다 R
. 그러면 숫자가 정확해집니다.
top이 정보를 수집할 때 항상 실행할 수 있는 작업, 즉 top 자체가 있다는 점에 유의하세요. 실행 가능한 작업이 표시되면 CPU 시간을 놓고 경쟁하는 다른 프로세스가 없다는 의미입니다.
답변2
어쩌면 하이퍼스레딩일 수도 있습니다.
top에 대한 매뉴얼 페이지는 다음과 같습니다.
실행 중인 것으로 표시된 작업은 "실행 준비"로 더 정확하게 간주되어야 합니다. 해당 task_struct는 단순히 Linux 실행 대기열에 표시됩니다. 진정한 SMP 시스템이 없더라도 대기 시간 간격과 상단의 좋은 값에 따라 이 상태에서 많은 작업을 볼 수 있습니다.