컴퓨터언어/운영체제

로더의 종류

bbanpro 2020. 7. 5. 19:31
728x90
반응형

 

👍 로더의 종류로는 어떤 것들이 있을까?

 

👊 Compile-and-go 로더

번역 프로그램(어셈블리어로 작성되어 있다면 어셈블러, 고급 언어로 작성되어 있다면 컴파일러)과 로더가 하나로 구성되어 있는 로더.

프로그램 실행 시마다 매번 컴파일해야 한다.

프로그램을 배포할 경우 소스 프로그램을 공개해야 하는 단점이 있다.

 

이전 포스팅에서 보조기억장치에 저장되어 있는 프로그램을 주기억장치로 적재하는 것은 "로더"가 담당한다고 했다.

2020/07/05 - [컴퓨터언어/운영체제] - 로더 - 프로그램을 보조기억장치에서 주기억장치로 적재해주는 시스템소프트웨어

이때 적재되는 프로그램은 컴퓨터가 이해할 수 있는 0과 1로 되어있는 기계어 상태여야 한다.

그래야 CPU가 바로 접근하여 연산할 수 있기 때문이다.

과거에는 프로그램의 크기가 크지 않아 로더에 컴파일 기능도 포함되어 있었다.

C언어로 작성된 원시프로그램을 가지고 번역과 동시에 적재해도 성능상 문제가 되지 않았기 때문이다.

하지만 현재는 그렇지 않다. 프로그램이 무거워져 동시에 모든 것을 할 수 없을 뿐더러(로딩이 1시간?), 고급 기능이 가득한 개발사의 영업비밀이 소스코드를 통해 까발려지면 곤란하기 때문이다.

따라서 현대 로더는 직접 번역하지 않고, 개발사가 컴파일을 이미 마친 목적프로그램(기계어)을 배포 받아서 적재 중심의 기능을 수행한다.

 

👊 직접연결로더(Direct-Linking Loader, 재배치 로더)

할당 -> 연결 -> 재배치 -> 적재를 모두 수행하는 로더.

현대에 사용되는 가장 일반적인 로더다.

 

👊 Dynamic 로더

프로그램 전체를 한번에 적재하는 것이 아니라, 프로그램의 덩치가 크기 때문에 Overlay(단일프로그래밍 순차적재) 또는 Swapping(다중프로그래밍 교체)을 통해 프로그램 내의 특정 기능을 필요로 할 때 해당 기능만을 적재해주는 로더

 

👊 절대로더(Absolute Loader)

기억장소 할당, 연결, 재배치, 적재를 직접연결로더가 모두 담당하는 것이 아니라, 과거의 방식처럼 프로그래머가 직접 할당과 연결을, 어셈블러가 재배치를 하고, 로더는 적재만을 담당하는 것

728x90
반응형