TOP의 DATA 컬럼은 무엇을 의미하나요?

TOP의 DATA 컬럼은 무엇을 의미하나요?

저는 VIRT, RES, SHR, AND DATA와 같은 다양한 메모리 분류의 의미를 파악하려고 노력하고 있습니다. 나는 일반적으로 처음 3개를 이해하지만 DATA = 데이터+스택 크기(kb)라는 공식 정의 외에 DATA 열이 무엇을 의미하는지 전혀 모릅니다. 이것이 기억의 다른 3가지 분류와 어떤 관련이 있나요?

답변1

에 따르면https://techtalk.intersec.com/2013/07/memory-part-2-understanding-process-memory/:

해당 필드는 VIRT 및 shared_vm과 동일한 total_vm이라는 두 변수 간의 차이로 커널에 의해 계산됩니다. shared_vm은 공유 가능한 메모리의 정의를 공유한다는 점에서 SHR과 유사하지만 상주 부분만 계산하는 대신 주소가 지정된 모든 파일 지원 메모리의 합계를 포함합니다. 또한 계산은 페이지 1이 아닌 매핑 ​​수준에서 수행되므로 shared_vm은 수정된 개인 파일 지원 메모리에 대해 SHR과 동일한 미묘함을 갖지 않습니다. 결과적으로 shared_vm은 사분면 2, 3, 4의 합입니다. 이는 total_vm과 shared_vm의 차이가 정확히 사분면 1의 내용임을 의미합니다.

DATA 열에는 예약된 개인 익명 메모리의 양이 포함됩니다. 정의에 따르면 개인 익명 메모리는 프로그램에 특정한 메모리이며 해당 데이터를 보유합니다. 쓰기 중 복사 방식으로 분기해야만 공유할 수 있습니다. 여기에는 스택과 heap2가 포함되지만 이에 국한되지는 않습니다. 이 열에는 프로그램이 실제로 사용하는 메모리 양에 대한 정보가 포함되어 있지 않습니다. 단지 프로그램이 일정량의 메모리를 예약했지만 메모리가 오랫동안 그대로 유지될 수 있다는 사실만 알려줄 뿐입니다.

답변2

매뉴얼 페이지에서:

 s: DATA  --  Data+Stack size (kb)
 The amount of physical memory devoted to other than executable code, also known  as
 the ’data resident set’ size or DRS.

즉, 프로그램(실행 프로그램이 아님)의 변수 데이터를 저장하는 데 사용되는 메모리입니다.

like라고 말하면 메모리의 배열은 가변 데이터입니다.

또한 stack size시스템이 특정 프로그램을 실행하는 데 사용하는 스택의 크기도 마찬가지입니다. 스택은 시스템이 프로그램/프로세스가 호출하는 함수의 역추적을 저장하는 곳입니다. 이 측정항목은 스택 자체가 아니라 스택 크기를 나타냅니다.

당신이 언급한 다른 메모리 열에 대한 추가 정보여기

답변3

매뉴얼 페이지에서여기.

The amount of private memory **reserved** by a process.  It is also
known as the Data Resident Set or DRS.  Such memory may not yet
be mapped to physical memory (RES) but will always be included in
the virtual memory (VIRT) amount.

관련 정보