CPU 판독값에서 차단 시스템 호출은 어디에 표시됩니까?

CPU 판독값에서 차단 시스템 호출은 어디에 표시됩니까?

"top"이 제공하는 사용자, 시스템 및 유휴 판독값 중 시스템 호출을 차단하는 데 소요된 시간을 반영하는 것은 무엇입니까?

Blocking Disk I/O 호출은 유휴 시간으로 반영되지만 Blocking Network I/O 호출은 반영되지 않는다는 내용을 읽었습니다. 그런데 어디로 갈까요?

답변1

코드가 어떤 일이 일어나기를 기다리고 있을 때는 CPU 시간이 소비되지 않으므로 I/O와 마찬가지로 네트워크 시스템 호출을 차단하는 것은 본질적으로 유휴 시간입니다.

답변2

wait에서는 ( ) 로 표시됩니다 . 이는 관련된 대기 시간을 반영하는 것이 아니라 작업을 처리하는 CPU의 작업량을 반영합니다.watop

프로세스가 느린 디스크에서 큰 파일을 읽는 경우 커널 스케줄러는 I/O 작업을 더 자주 처리하기 위해 CPU를 할당해야 하므로 스케줄러 처리 시간이 낭비됩니다.

불행하게도 실제 대기 시간에는 CPU가 필요하지 않지만 처리에는 CPU가 필요하기 때문에 커널 개발자조차도 더 직접적인 답변을 줄 수 없습니다.

관련 정보