링커, 로더, 실행 파일
링커가 수행하는 재배치(리로케이션)에 대한 설명으로 올바른 것은?
- A코드와 데이터의 최종 주소가 정해진 뒤, 명령이나 데이터 안의 주소를 올바른 값으로 고쳐 쓴다
- B프로그램을 실행하는 도중에 다른 컴퓨터로 옮겨서 이어서 실행한다
- C메모리가 부족해지면 페이지를 스토리지로 내보낸다
정답과 해설 보기
정답: A. 코드와 데이터의 최종 주소가 정해진 뒤, 명령이나 데이터 안의 주소를 올바른 값으로 고쳐 쓴다
컴파일러는 각 파일을 주소 0부터 시작하는 것으로 간주하여 만들고, 다른 파일의 함수나 자신의 변수 주소를 사용하는 위치를 재배치 정보로 기록해 둡니다. 링커는 모든 파일을 나열해 실제 주소를 정한 뒤, 기록된 위치마다 올바른 주소(또는 PC로부터의 거리)를 계산해 명령에 써 넣습니다. 동적 링크에서는 이와 비슷한 고쳐 쓰기의 일부를 실행할 때 동적 링커가 수행합니다.
- A. 올바릅니다. 재배치 정보에 기록된 위치를 고쳐 씁니다.
- B. 그것은 프로세스 이동(마이그레이션)입니다.
- C. 그것은 OS의 페이지 교체입니다.