Halo World

로더란? 본문

개발 지식/OS

로더란?

_Yeony 2017. 8. 9. 21:55

| 로더란?


컴퓨터 운영체제의 일부분으로, 하드디스크와 같은 외부 저장장치에 있는 특정 프로그램을 (대부분 응용프로그램이지만, 경우에 따라 그 자신의 일부가 될 수도 있음) 찾아서 주기억장치에 적재하고, 그 프로그램이 실행되도록하는 역할을 담당하는 것



| 로더의 기능 및 순서


 1) 주기억 장치에 할당(Allocation)

: 목적프로그램이 주기억 장소 내의 공간 확보


 2) 연결(Linking)

: 필요할 경우 여러 목적프로그램들 또는 라이브러리 루틴과의 링크 작업


 3) 재배치(Relocation)

: 목적 프로그램을 실제 주기억 장소에 맞추어 재배치


 4) 적재(Loading)

: 실제 프로그램과 데이터를 주기억 장소에 적재



| 로더의 종류


 1) 컴파일 즉시 로더(Compile and Go)

: 번역기가 로더의 역할까지 담당하는 것으로 프로그램의 크기가 크고 한 가지 언어로만 프로그램을 작성할 수 있다. 실행을 원할 때마다 번역을 해야하고 이 때문에 로더라고 하기에는 부적합하다.


 2) 절대로더(Absolute Loader)

: 단순히 번역된 목적프로그램을 입력으로 받아들여 주기억장치의 프로그래머가 지정한 주소에 적재하는 기능을 가지는 간단한 로더

재배치나 링크등이 없고, 프로그래머가 절대 주소를 기억해야한다. 다중프로그래밍 방식에서 사용할 수 없다.


 3) 재배치 로더(Relocating Loader)

: 주기억 장치의 상태에 따라 목적프로그램을 주기억 장치의 임의의 공간에 적재할 수 있도록 하는 로더


 4) 링킹로더(Linking Loader)

: 하나의 부 프로그램이 변경되어도 다른 모듈 프로그램을 다시 번역할 필요가 없도록 프로그램에 대한 기억장소할당과 부 프로그램의 연결이 로더에 의해 자동으로 수행되는 프로그램으로 직접연결로더(DLL)이 대표적이다


 5) 동적 적재(Dynamic Loading = Load on call)

: 모든 세그먼트를 주기억장치에 적재하지 않고 항상 필요한 부분만 주기억장치에 적재하고 나머지는 보조기억장치에 저장해두는 기법


* 동적 연결(Dynamic Linking) 

: 실제 수행시 연결과 적재를 이행하는 기법으로 프로시저 세그먼트나 자료 세그먼트는 다른 어떤 프로시저가 수행도중에 실제로 그것을 요구할 때까지 프로그램의 어떤 세그먼트와도 연결되지 않는다.




[참고]

http://blog.daum.net/hagi/128 

https://ko.wikipedia.org/wiki/%EB%A1%9C%EB%8D%94_(%EC%BB%B4%ED%93%A8%ED%8C%85)


'개발 지식 > OS' 카테고리의 다른 글

세그멘테이션 기법  (0) 2017.08.13
버퍼링과 스풀링  (0) 2017.08.05
디렉토리 구조  (0) 2017.07.31
시스템 소프트웨어와 응용 소프트웨어  (0) 2017.07.30
디스크 스케줄링  (0) 2017.07.26