본문 바로가기

BASIC/OS

[운영체제] 링커와 로더

1. 링커(Linker), 연결 편집기(Linkage Editor)

- 링커는 언어 번역 프로그램이 생성한 목적 프로그램들과 라이브러리, 또 다른 실행 프로그램(로드 모듈) 등을 연결하여 실행 가능한 로드 모듈을 만드는 시스템 소프트웨어이며 연결 편집기(Linkage Editor)라고도 한다.

- 연결 기능만 수행하는 로더의 한 형태로, 링커에 의해 수행되는 작업을 링킹(Linking)이라고 한다.


2. 로더(Loader, Module Loader)의 개념

- 로더는 컴퓨터 내부로 정보를 들여오거나 로드 모듈을 디스크 등의 보조기억장치로부터 주기억장치에 적재하는 시스템 소프트웨어이다.


3. 로더의 기능

- 로더는 기본적으로 다음과 같은 기능을 차례로 수행하지만, 로더의 각 기능을 언어 번역 프로그램 또는 링커 등의 시스템 소프트웨어가 수행할 수도 있다.

- 할당(Allocation) : 실행 프로그램을 실행시키기 위해 기억장치 내에 옮겨놓을 공간을 확보하는 기능

- 연결(Linking) : 부 프로그램 호출 시 그 부 프로그램이 할당된 기억장소의 시작주소를 호출한 부분에 등록하여 연결하는 기능

- 재배치(Relocation) : 디스크 등의 보조기억장치에 저장된 프로그램이 사용하는 각 주소들을 할당된 기억장소의 실제 주소로 배치시키는 기능

- 적재(Loading) : 실행 프로그램을 할당된 기억공간에 실제로 옮기는 기능


4. 로더의 종류

1) Compile And Go 로더

- 별도의 로더 없이 언어 번역 프로그램이 로더의 기능까지 수행하는 방식이다.

- 연결 기능은 수행하지 않고 할당, 재배치, 적재 작업을 모두 언어 번역 프로그램이 담당한다.


2) 절대 로더(Absolute Loader)

- 목적 프로그램을 기억장소에 적재시키는 기능만 수행하는 로더로, 로더 중 가장 간단한 프로그램으로 구성되어 있다.

- 기억장소 할당이나 연결을 프로그래머가 직접 지정하며 한번 지정한 주기억장소의 위치는 변경이 어렵다.


3) 직접 연결 로더(Direct Linking Loader)

- 일반적인 기능의 로더로, 로더의 기본 기능 네 가지를 모두 수행하는 로더이다.

- 재배치 로더(Relocation Loader), 상대 로더(Relative Loader)라고도 한다.


4) 동적 적재 로더(Dynamic Loading Loader)

- 프로그램을 한꺼번에 적재하는 것이 아니라 실행 시 필요한 부분만을 적재하고 나머지 부분은 보조기억장치에 저장해두는 것으로, 호출 시 적재(Load-On-Call)라고도 한다.

- 프로그램의 크기가 주기억장치의 크기보다 큰 경우에 유리한 방법이다.

'BASIC > OS' 카테고리의 다른 글

[운영체제] 비선점 스케줄링  (0) 2018.02.25
[운영체제] 스케줄링  (0) 2018.02.25
[운영체제] 프로세스의 개요  (0) 2018.02.25
[운영체제] 운영체제의 운용 기법  (0) 2018.02.24
[운영체제] 운영체제의 개념  (0) 2018.02.24