용어체크
1. 링크(Link)
서로 다른 모듈 사이의 상호 외부 기호를 참조 즉 기호들에 주소 번지를 할당하여 각 모듈들을 연결 및 적재 모듈로 만드는 것을 의미한다.
2. 재배치(Relocation)
적재될 주소가 결정되면 수정되어야 할 기호들을 재배치하는 것을 의미한다.
3. 적재(Load)
재배치가 완료된 적재 모듈을 주기억장치로 읽어 들이는 것을 의미한다.
학습내용
|
어셈블러나 컴파일러는 원시 프로그램을 번역해준다. 이때 원시 프로그램은 모듈 즉 여러 개의 목적 모듈들로 번역하게 되는데 실행할 수 있도록 작업하는 시스템 프로그램을 무엇이라 하는가?
여러 모듈을 한꺼번에 연결하여 실행할 수 있도록 작업하는 시스템 프로그램으로는 링커가 있습니다. 링커는 여러 개의 모듈들을 링크(Link) 즉 연결해주는 역할을 합니다. 또한 링커는 모듈 내에 다른 모듈에서 정의된 기호를 참조하여 외부 기호에 값을 주어 각 모듈들을 연결해주는 기능을 수행합니다.
Quiz 01기억 공간을 관리하는 방법은 프로그램 전체를 할당하는 방법과 프로그램 부분을 할당하는 방법이 있다. 프로그램 부분 할당 방법은 실행 도중에 필요한 부분을 기억 장치로 읽어 들이는 방법으로 소규모 시스템에서 주로 사용되는 방법이다.
- 1 O
- 2 X
정답 :2
해설 :소규모 시스템은 프로그램 전체 할당을 대규모 다중 프로그래밍 시스템에서는 프로그램 부분 할당 방법을 이용한다.
Quiz 02다음은 링커와 로더에 관련된 4가지 작업에 대한 설명이다. 잘못 설명된 것은?
- 1 링크는 외부 기호를 참조할 때 이 주소값들을 연결 해준다.
- 2 주기억장소의 할당은 기억 공간을 확보하는 것을 의미한다.
- 3 재배치란 상대 주소들을 수정하여 절대주소로 변경하는 것을 말한다.
- 4 적재는 실제 적재될 주소를 부여 받는 것을 의미한다.
정답 :4
해설 :적재는 재배치가 완료된 적재 모듈을 주기억장치로 읽어 들이는 것을 의미한다.
Quiz 03모듈화의 장점에 해당하지 않는 것은?
- 1 프로그램 작성(생성) 및 유지 보수가 편리하다.
- 2 기억장치의 저장 공간을 효과적으로 사용할 수 있다.
- 3 프로그램을 기억 장치에 적재하는 시간이 감소된다.
- 4 프로그램을 수행할 때 전체 모듈들을 수행한다.
정답 :4
해설 :프로그램을 수행할 때 필요한 모듈들만을 수행하는 장점이 있다. 나머지는 모듈의 장점에 속한다.
링커와 로더의 기능
- 링크(Link)란 원시 모듈이 번역되면서 생성되는 여러 개의 목적 모듈을 연결하여 실행 될 수 있도록 하는 것으로 링크 또는 링킹이라 한다.
- 링커란 모듈 내에 다른 모듈에서 정의된 기호(외부기호)를 참조하는 외부 참조가 있으면 이 외부 기호에 값을 주어 각 모듈을 연결하는 것을 의미한다. 이러한 모듈을 적재(Load) 모듈 이라 하며, 적재 모듈은 로더에 의해 기억장치에 적재된다.
- 링커와 로더의 작업 4단계는 [링크 → 주기억장치의 할당 → 재배치 → 적재] 이다.
- 링킹(Linking)은 서로 다른 모듈을 연결하여 함께 실행 될 수 있도록 하는 작업이다.
- 링커(Linker)는 링크 작업을 수행하는 시스템 소프트웨어이다.
- 링크의 활용은 각 모듈들을 서로 다른 언어로 작성한다. 모듈들을 하나의 적재 모듈로 연결하여 사용이 가능하고, 어셈블리어로 작성된 모듈을 다른 프로그램에서 호출하여 사용이 가능하다.
링커와 로더의 역할
- 로더의 역할은 프로그램을 적재할 기억 장치 내의 기억 공간을 확보(물리 주소 할당) 해주며, 기억 장소 관리 모듈이 필요하다.
- 기억 공간 관리 방법으로 프로그램 전체 할당은 전체 프로그램을 전부 기억 장치에 적재 후 프로그램을 실행하는 방법이고, 프로그램 부분 할당은 프로그램의 일부분만을 기억 장치에 적재 후 실행을 시작, 실행 도중에 필요한 부분을 기억 장치로 읽어 들이는 방법이다.
- 재배치 및 적재에서 로더의 주소 적재 방법은 절대적 적재(절대 주소 지정)와 재배치 적재(상대적 주소만을 지정)가 있으며, 재배치가 필요한 경우에 주소 재배치는 상대 주소를 주기억 장치의 물리 주소로 변경하는 것으로 상대 주소로 표기되는 경우이다. 재배치가 필요하지 않은 경우에는 명령어의 주소 부분이 절대 위치를 가리키는 경우이며, 일반적으로 재배치 가능 여부는 컴파일러(어셈블리)가 만들어 제공하게 된다. 재배치 여부 표현 방법으로는 기호표를 사용하는 방법과 재배치 비트를 사용하는 방법이 있다.
'컴퓨터공학 > 시스템프로그래밍' 카테고리의 다른 글
시스템프로그래밍 13 - 2 컴파일 5단계 (0) | 2021.11.20 |
---|---|
시스템프로그래밍 13 - 1 인터프리터와 컴파일러 개요 (0) | 2021.11.15 |
시스템프로그램 11 - 1 단일 패스 어셈블러 (0) | 2021.11.14 |
시스템프로그래밍 10 - 2 이중 패스 어셈블러의 설계 (0) | 2021.10.28 |
시스템프로그래밍 10 - 1 어셈블러 개요 (0) | 2021.10.25 |