일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- #abex크랙미
- #크랙미
- #크랙미 9번
- #심플즈
- Easy
- #크랙미3번
- java
- java8
- springframework
- #보안뉴스
- #크랙미 5번
- Spring
- #크랙미2번
- #크랙미4번
- #abex
- #크랙미 10번
- 리버싱
- #리버싱
- #심플즈 크랙미
- #abex크랙미4번
- GraphQL
- leetcode
- #파밍
- #고클린
- #보안이슈
- Today
- Total
Halo World
로더란? 본문
| 로더란?
컴퓨터 운영체제의 일부분으로, 하드디스크와 같은 외부 저장장치에 있는 특정 프로그램을 (대부분 응용프로그램이지만, 경우에 따라 그 자신의 일부가 될 수도 있음) 찾아서 주기억장치에 적재하고, 그 프로그램이 실행되도록하는 역할을 담당하는 것
| 로더의 기능 및 순서
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)