공유 라이브러리가 프로세스에 올라오는 두 경로

공유 라이브러리가 프로세스에 올라오는 두 경로 An architecture diagram generated by Archify. demo_ext.so · $libdir · Architecture component demo_ext.so $libdir pg_proc · probin, prosrc · Architecture component pg_proc probin, prosrc postmaster · 시작 때 dlopen, _PG_init · shared_preload_libraries에 넣은 경우 postmaster 시작 때 dlopen, _PG_init backend 1 · fork로 매핑 물려받음 · shared_preload_libraries에 넣은 경우 backend 1 fork로 매핑 물려받음 backend 2 · fork로 매핑 물려받음 · shared_preload_libraries에 넣은 경우 backend 2 fork로 매핑 물려받음 공유 메모리 · ShmemInitStruct · shared_preload_libraries에 넣은 경우 공유 메모리 ShmemInitStruct backend 3 · 첫 호출 때 dlopen, _PG_init · preload하지 않은 경우 backend 3 첫 호출 때 dlopen, _PG_init 개인 메모리 · static 변수, hook 포인터 · preload하지 않은 경우 개인 메모리 static 변수, hook 포인터 dlopen 1번 fork fork 같은 카운터 같은 카운터 backend마다 dlopen 파일, 심볼 이름 자기 것만 shared_preload_libraries에 넣은 경우 preload하지 않은 경우 Legend 프로세스 개인 메모리 프로세스 공유 메모리, 카탈로그 디스크의 파일