728x90
반응형
로더(Loader)란
외부기억장치로부터 정보들을 주기억 장치로 옮기기 위하여 메로리 할당 및 연결, 재비치, 적재를 담당하는 서비스 프로그램
로더의 기능 및 순서
- 주기억 장치 할당(allocation) : 목적 프로그램이 적재될 주기억 장소 내의 공간을 확보
- 연결(linking) : 필요할 경우 여러 목적 프로그램들 또는 라이브러리 루틴과의 링크 작업. 외부기호를 참조할 때, 이 주소 값들을 연결
- 재배치(relocation) : 목적 프로그램을 실제 주기억 장소에 맞추어 재배치. 상대주소들을 수정하여 절대주소로 변경
- 적재(loading) : 실제 프로그램과 데이터를 주기억 장소에 적재. 적재할 모듈을 주기억장치로 읽어 들임
로더의 종류
- 컴파일 즉시로더(Compile and Go) : 번역기가 로더의 역할까지 담당하는 것으로 프로그램의 크기가 크고 한 가지 언어 로만 프로그램을 작성할 수 있다. 실행을 원할 때마다 번역을 해야 한다. 이러한 특성 때문에 로더라고 하기에는 부적합하다.
- 절대로더(absolute loader) : 단순히 번역된 목적프로그램을 입력으로 받아들여 주기억장치의 프로그래머가 지 정한 주소에 적재하는 기능을 가지는 간단한 로더.
- 특징
- 재배치라든지 링크등이 없음
- 프로그래머가 절대 주소를 기억해야 함
- 다중 프로그래밍 방식에서 사용할 수 없음
- 작업분담
- 링크 - 프로그래머
- 기억장소 할당 - 프로그래머
- 재배치 - 어셈블러
- 적재 - 로더
- 특징
- 재배치 로더 (relocating loader) : 주기억 장치의 상태에 따라 목적 프로그램을 주기억 장치의 임의의 공간에 적재할 수 있도록 하는 로더
- 작업분담
- 링크-링커
- 기억장소 할당-운영체제
- 재배치-로더
- 적재-로더
- 작업분담
- 링킹로더 (linking loader) : 하나의 부프로그램이 변경되어도 다른 모듈 프로그램을 다시 번역할 필요가 없도 록 프로그램에 대한 기억장소할당과 부 프로그램의 연결이 로더에 의해 자동으로 수행되는 프로그램으로 직접연결로더(DLL : Direct Linking Loader)가 대표적임
- 작업분담
- 링크-링킹로더
- 기억장소 할당-운영체제
- 재배치-링킹로더
- 적재-링킹로더
- 작업분담
- 동적 적재(Dynamic Loading = Load on call) : 모든 세그먼트를 주기억장치에 적재하지 않고 항상 필요한 부분만 주기억장치에 적재하고 나머지는 보조기억 장치에 저장해두는 기법
- 연결 편집기(Linkage editor) : 연결 편집기로 로드모듈을 만들어 놓으면 그 모듈을 기억 장치에 로드하여 바로 실행할 수 있도록 하는 방식으로 진보된 방식이며 요즘 사용하는 방식이다.
- 동적 연결 (Dynamic Linking) : 실제 수행시 연결과 적재를 이행하는 기법으로 프로시저 세그먼트나 자료 세그먼트는 다른 어떤 프로시저가 수행도중에 실제로 그것을 요구할 때까지 프로그램의 어떤 세그먼트와도 연결되지 않음
기타
- 수식으로 된 데이터 값의 결정
- 절대상수 : 내부기호 사이의 수식으로 어셈블러가 결정. 예) SAVE-RESULT
- 링크 재배치 상수 : 외부기호 사이의 차이를 나타내며 링크하면 결정. 예) B1-A1
- 적재재배치상수 : 링크하여도 값이 결정되지 않고, 적재되어야 값이 결정. 예) B
- 어셈블러가 링커 및 로더를 위해 모듈별로 제공하는 정보
- 목적코드로 번역된 모듈들
- 기호 표들(모듈의 길이, 외부에서 정의된 기호, 내부에서 정의된 기호)
- 재배치링크 표(재배치되어야 할 주소 값들과 그 수정 방법)
- 링커 및 로더의 패스 1이 만드는 정보
- 각 모듈들을 단순링크 한 모듈
- 총괄 기호 표
- 총괄 재배치링크 표
- 링커 및 로더의 패스 2가 만드는 정보
- 주소 값들을 수정하여 적재모듈을 생성
- 주소들을 재배치함
- 어셈블러를 이중 패스(Two Pass)로 만드는 주된 이유는 전향 참조(Forward Reference)를 위함이다.
참고자료
- http://blog.daum.net/_blog/hdn/ArticleContentsView.do?blogid=0QPBp&articleno=128&looping=0&longOpen=
- http://blog.naver.com/PostPrint.nhn?blogId=autom05&logNo=10083955727
- 링커와 로더의 설계1 : http://cs.kangwon.ac.kr/~mjchoi/SystemProgram/lecture/chap-07-1.ppt
- 링커와 로더의 설계2 : http://cs.kangwon.ac.kr/~mjchoi/SystemProgram/lecture/chap-07-2.ppt
- https://t1.daumcdn.net/cfile/blog/203AAF4B4D99BE3B1A
- 시스템 프로그래밍 : http://cs.kangwon.ac.kr/~mjchoi/SystemProgram/
'자격증' 카테고리의 다른 글
가상기억장치(Virtual memory device)의 페이지 교체 알고리즘(Page Replacement Algorithm) (0) | 2013.01.17 |
---|---|
카르노맵(Karnaugh map) (0) | 2013.01.15 |
2013년 기사/산업기사 회별 검정시행일정 (0) | 2013.01.04 |
2012년도 제3회 전자계산기조직응용기사 접수 (0) | 2012.08.03 |
19회 공인중개사 시험일정 (0) | 2008.08.06 |