2014-02-14 2 views
3

잠긴 공유 메모리가 있는지 확인하는 방법을 찾으려고했습니다. 즉, shmctl(SHM_LOCK)을 사용하여 코드에서 shmid_ds.shmperm.mode 플래그를 확인하여 확인할 수 있습니다.리눅스에서 프로세스의 "잠긴"공유 메모리를 어떻게 확인합니까?

이제 mlock()과 마찬가지로 /proc/<PID>/statusVmLck 값을 확인하여 사용중인 메모리 양을 확인할 수 있습니다.

shmctl(SHM_LOCK)을 사용하여 잠긴 프로세스가 얼마나 많은 공유 메모리를 사용하고 있는지 확인하는 방법이 있는지 알고 싶습니다.

mlock 기능을 사용해 보았는데 사용 된 메모리 양이 표시되지만 shmctl(SHM_LOCK)을 사용하면 0kb가 표시됩니다.

그냥 추가하려면 쉘 또는 코드를 통해 잠긴 메모리를 확인하고 싶습니다 (차이는 없습니다). 가치가 필요해.

포럼을 통해 연구했지만이 답변을 찾지 못했습니다. 어떤 도움을 주셔서 감사합니다.

답변

1

당신은 같은 ipcs (1) 명령을 사용한다 :

ipcs | grep locked 

ipcs.c 코드에 의해 같이 IPCS는 '상태'필드에 '잠금'상태를 표시 명령 :

 printf (" %-10ju %-6s %-6s\n", 
        shmdsp->shm_nattch, 
        shmdsp->shm_perm.mode & SHM_DEST ? _("dest") : " ",     shmdsp->shm_perm.mode & SHM_LOCKED ? _("locked") : " "); 
관련 문제