일반적으로 나는 uptime
표시되는 숫자를 이해하려고 노력하고 있습니다(및 많은 주문 명령).
$ uptime
13:40:52 up 18 days, 2:10, 8 users, load average: 0.20, 0.30, 0.64
여기서 이전 1분 동안 내 시스템의 평균 로드는 다음과 같습니다.0.2. 매우 높은 수준에서 이 숫자는 표본 기간 동안 평균적으로0.2프로세스는 생산으로 간주됩니다.짐시스템 [2]의 경우.
나는 프로세스가 다양한 상태에 있을 수 있다는 것을 알고 있습니다. 그러나 나는 세 가지 주요 상태에 대해서만 확고히 이해하고 있습니다.
- 프로세스가 CPU에서 작업을 수행하고 있습니다.
- 프로세스할 수 있다즉시 작동하지만 여유 CPU가 없습니다.
- 프로세스는 시스템 내부 또는 외부에서 어떤 일이 일어나기를 기다리고 있습니다.
처음 두 상태의 프로세스가 항상 시스템 프로세스에 포함된다고 확신하기 때문에 마지막 상태가 더 자세히 살펴봐야 할 상태라고 생각합니다.짐. 시스템이 최종 상태에 도달하기 위해 뭔가를 할 수 있다고 상상해 보세요.
- 부르다
sleep()
. read()
캐시에 없는 열린 파일을 호출합니다 .read()
아무도 아무것도 쓰지 않는 파이프를 호출하십시오 .accept()
네트워크 소켓을 호출합니다 .send()
버퍼가 가득 찬 네트워크 소켓을 호출합니다 .- 디스크로 스왑된 개인 메모리에 액세스하려고 시도합니다.
- 캐시에 없고 디스크나 네트워크 파일 시스템에서 로드해야 하는 메모리 매핑된 파일에 액세스하려고 했습니다.
- 불행하게도 아직 메모리에 로드되지 않은 코드 섹션으로 이동합니다.
나는 읽었다이 답변인터넷의 다른 리소스뿐만 아니라 다음 용어도 보았습니다.중단 없는 상태그리고방해받지 않는 수면여러 번 이 상태의 프로세스도 계산됩니다. 그래서 나는 이것이 포함될 것이라고 가정하고 있습니다일부위의 상태 중 어느 상태인가요? 확실히 전부는 아닙니다.
그래서 내 주요 질문은 언제입니까?정확히시스템에 포함된 프로세스입니다.짐?
각주
[1]: 예를 들어1000견본,200단일 프로세스[2]의 횟수를 계산하고 다른 프로세스는800시간은 계산되지 않습니다. 또는200프로세스는 한 번만 계산되고 다른 프로세스는 계산되지 않습니다.999이류. 알겠어요.
[2]: 저는 사용하고 있어요프로세스그리고철사내가 이해하는 한 스케줄러의 관점에서 크게 다르지 않아 보이기 때문에 여기서는 상호 교환이 가능합니다. 내 문제를 설명하려면 프로세스당 하나의 스레드만 있는 시스템에 대해 이야기하고 있다고 가정하십시오. 여러 스레드가 있는 프로세스를 살펴볼 때 흥미로운 차이점이 있다면 주목하세요!