로더 편집하기

IT위키

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.

편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.

최신판 당신의 편집
1번째 줄: 1번째 줄:
어떤 프로그램을 실행하기 위해 해당 목적 프로그램을 메모리에 적재하고 배치 주소를 옮기는 프로그램
어떤 프로그램을 실행하기 위해 해당 목적 프로그램을 메모리에 적재하고 배치 주소를 옮기는 프로그램이다.


== 기능<ref>[http://q.fran.kr/문제/3791 정보처리기사 2016년 2회]</ref> ==
== 기능 ==
* 할당(Allocation)
* Allocation
** 프로그램을 주기억 장치에 적재하기 위해 공간을 확보
* Linking
* 연결(Linking)
* Relocation
** 주기억장치의 일부 공간을 논리적 주소 공간으로 연결
* 재배치(Relocation)
** 주기억 장치의 공간에서 위치를 조정
* 적재(Loading)
** 프로그램을 주기억 장치에 물리적, 논리적으로 배치
 
== 종류<ref>[http://q.fran.kr/문제/6774 정보처리기사 2015년 2회]</ref> ==
* Compile-and-Go 로더
** 컴파일러의 작업이 끝나면 바로 오브젝트 코드의 시작 주소로 실행을 옮기도록 한 것으로, 초기 로더가 별도로 존재하기 전에 사용
** 단일 일관(Batch) 작업만 수행    
* 절대(Absolute) 로더
** 컴파일러에 의해 지정된 절대 주소의 메모리로 오브젝트 코드를 적재하며, 초기의 로더가 이에 해당됨
** 실행 코드는 오직 단일한 연속 공간 내에서만 실행    
* 재배치(Relocation) 로더
** 컴파일러에 의해 상대 주소로 오브젝트 코드가 생성되며, 이를 적재하는 시점에서 할당 정책에 의해 적재할 메모리 공간을 선정하고, 그 공간의 시작 주소와 상대 주소를 더하여 절대 주소로 계산하여 적재
** 코드는 오직 단일한 연속 공간 내에서만 실행됨    
* 직접 연결(Direct-Linking) 로더
** 실행 코드가 몇 개의 세그먼트로 나누어져 있고, 각각의 세그먼트는 별도의 메모리 공간에 배치되며, 이때 각 변수의 주소는 직접 지정 방식에 의해 절대 주소로 변환
** 실행 코드는 실행 전에 복수의 연속된 세그먼트로 나뉘어 적재됨    
* 동적(Dynamic) 로더
** 실행 코드는 세그먼트로 분리되어 있으나, 가상 기억 공간 내의 주소로 링크
** 각각의 세그먼트는 실행 시점에 적재되며, 최종의 주소도 이때 결정됨    
* 동적 연결(Dynamic-Linking) 로더
** 세그먼트와 페이지로 분리되며 가상 기억 공간 내에서도 상대 주소로 적재됨
** 로더는 실행 시점에서 세그먼트를 페이지 단위로 실제 메모리에 적재하면, 이때 각 변수의 절대 주소를 바인딩 함


== 관련 항목 ==
== 관련 항목 ==
* [[링커|링커(Linker)]]
* [[링커|링커(Linker)]]
== 출처 ==
*종류 출처 [https://middleware.tistory.com/entry/%EB%A1%9C%EB%8D%94%EC%9D%98-%EC%A2%85%EB%A5%98 무강 블로그]


[[분류:운영체제]]
[[분류:운영체제]]
IT위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 IT위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소 편집 도움말 (새 창에서 열림)