링커, 로더, 실행 파일
동적 링크(공유 라이브러리)의 이점으로 올바른 것은?
- A실행 환경에 라이브러리가 없어도 반드시 동작한다
- B여러 프로그램이 하나의 라이브러리를 메모리 상에서 공유할 수 있고, 라이브러리를 갱신하면 다시 빌드하지 않아도 수정이 반영된다
- C시작 시 처리가 전혀 필요 없어져 정적 링크보다 반드시 빠르게 시작한다
정답과 해설 보기
정답: B. 여러 프로그램이 하나의 라이브러리를 메모리 상에서 공유할 수 있고, 라이브러리를 갱신하면 다시 빌드하지 않아도 수정이 반영된다
동적 링크에서는 실행 파일에 「어느 공유 라이브러리의 어느 함수를 사용하는가」만 기록하고, 실행할 때 동적 링커가 라이브러리를 읽어 들여 연결합니다. 공유 라이브러리의 코드는 바뀌지 않으므로 물리 메모리 상의 하나의 사본을 많은 프로세스가 공유할 수 있습니다. 결함이나 취약점의 수정도 라이브러리를 교체하기만 하면 끝납니다. 다만 시작할 때 결합하는 수고가 듭니다.
- A. 라이브러리를 찾지 못하면 시작할 수 없습니다.
- B. 올바릅니다. 메모리와 디스크 절약에도 도움이 됩니다.
- C. 시작할 때 결합 처리가 필요합니다.