나는 그래프 이론을 사용하여 시스템을 모델링하는 응용 프로그램을 개발하려고 노력해 왔습니다([1] 참조). 그래프 이론은 기본적으로 파티션(실행 가능 항목 그룹화)을 찾기 위해 실행 가능 항목을 모델링하는 데 사용할 수 있으며 매핑하기 위해 사용할 수 있습니다. 핵심까지.
이를 달성하려면 많은 정보가 필요합니다. Linux(특히 우리 Raspbian) 운영체제가 어떻게 모든 것을 세부적으로 정리하는지 모르기 때문에, 우리 알고리즘이 어떻게 코어 활용도를 향상시킬지 이해하고 싶기 때문에 프로세스 정보를 얻고 직접 모델링해 보면 어떨까 하는 생각이 들었습니다.
이를 위해서는 다음이 필요합니다.
명령어 크기, 작업을 완료하기 위해 CPU가 실행하는 명령어 수(매우 중요) 프로세스에 필요한 메모리, 물리적 메모리 및 가상 메모리는 프로세스의 코어 로드를 디버깅하는 데 사용됩니다. 프로세스와 통신하는 읽기/쓰기 액세스는 읽기 또는 쓰기 액세스인지, 인터페이스 유형은 무엇인지, 읽기 및/또는 쓰기에 필요한 명령어 크기와 메모리는 얼마입니까? 나는 Linux에서 "top" 명령을 사용하여 이 정보 중 일부를 추출할 수 있다고 생각했습니다. 코어 로드, 메모리 사용량, 가상 및 실제 메모리를 제공합니다. 또한 정보를 보기 위해 프로세스를 코어에 드롭할 수 있도록 "작업 세트"를 사용할 계획이라는 점을 언급해야 한다고 생각했습니다([2] 참조).
지금첫 번째 질문명령어 크기, 읽기/쓰기 액세스 및 위에 나열된 항목을 효율적으로 얻으려면 어떻게 해야 합니까?
두 번째 질문프로세스의 실행 가능 상태, 즉 실행되는 간단한 기능을 볼 수 있는 방법이 있습니까? 그리고 그들의 정보와 읽기 및 쓰기 액세스 권한은 무엇입니까? 문제는 프로세스 간의 상호 작용이 아닌 프로세스 자체를 모델링하는 방법을 찾으려는 것입니까?
셋째, 어떤 도구를 사용하여 프로세스와 명령 크기를 그래프로 시각화하는 방법이 있는지 알고 계십니까?
[1]http://math.tut.fi/~ruohonen/GT_English.pdf
[2] 프로세스를 코어에 배치하려면 다음을 사용합니다.
pid = $(pgrep -u root -f $process_name -n)
sudo taskset -pc $core $pid &&
echo "Process $process_name with PID=$pid has been placed on core $core"