Study/Windows System Programming
[Window System Programming] Chapter 21. DLL
코딩뚜벅이
2024. 2. 10. 17:07
4-21 DLL
- DLL(Dynamic Linked Library)
DLL(Dynamic Linked Library)
라이브러리
정적 라이브러리 / 동적 라이브러리 존재
정적 라이브러리 : 각 실행 파일에 라이브러리를 별도로 저장
동적 라이브러리 : 각 실행 파일이 라이브러리 파일을 공유
정적 <-> 동적 라이브러리 차이
정적 라이브러리 : 프로그램에 미리 맵핑 되어 가상 메모리에 올라와 있으며 프로그램이 실행되면 메인 메모리에서 사용
동적 라이브러리 : 프로그램이 실행될 때 링크 필요, 수정하고자하는 일부만의 변경 가능
-> 별도의 DLL 파일 존재
정적 라이브러리(좌)와 동적 라이브러리(우) 파일의 동작 비교
(1) 정적 라이브러리
메인 메모리에 올라온 경우, 컨텍스트 스위칭이 일어나면 동일한 영역이더라도 새롭게 로딩하여 사용
(2) 동적 라이브러리
별도의 DLL 파일을 사용하기 때문에 메인 메모리 영역을 반환하지 않고 그대로 사용
-> DLL이 로드되면 물리 메모리에 남아 있지만 RAM에 계속 남아 있는 것이 아닌 하드 디스크에 스왑 파일로 저장
-> DLL을 사용하는 프로세스에서 DLL의 가상 메모리와 주소는 전부 동일하게 할당