우리가 c언어로 작성한 코드는 빌드과정을 거쳐 하나의 실행가능한 파일이 나온다.
(ex. .exe파일)
그런데 이러한 실행파일은 디스크에 파일 형태로 저장이되어있다.
cpu가 실제로 sw 코드를 실행하려면, 그러한 코드들이 디스크에 있는것이 아니라 메인메모리에 들어가 있어야한다.
cpu는 메모리에 올라온 코드.데이터를 캐시를 거쳐 최종적으로 레지스터로 가져와서 연산을 수행하게 된다.
아무튼 그래서 exe파일에 정의된 코드와 데이터를 메인메모리로 복사해주는 과정이 필요한데, 이것을 해주는 녀석을 로더라고 부른다.
이러한 로더 기능이 window. linux 등에 구현이 되어있으며 우리가 .exe 파일을 실행하면
로더가 .exe파일을 읽어서 .exe 파일내에 쓰여있는 기계어코드와 데이터들을 실제 메모리에 복사를 하고,
cpu는 로더가 복사해놓은 메모리주소에 접근하여 코드를 가져와서 sw가 실행되게 된다.
'컴퓨터공학' 카테고리의 다른 글
가상메모리.페이지2 (0) | 2020.08.31 |
---|---|
로더.가상메모리.페이지.세그멘테이션 (0) | 2020.08.31 |
dll 파일. 다이나믹 링킹 (0) | 2020.08.30 |
컴파일.어셈블.링커(빌드) (0) | 2020.08.30 |