-
바인딩(Binding), 바인딩 타임(Binding Time)전공/시스템프로그래밍 2020. 6. 8. 11:09
바인딩(Binding)
바인딩이란, 묶는다는 것이다.
무엇을 묶느냐 하면, 변수, 배열 등의 변수와 그에 해당하는 값을 묶는다.
바인딩은 크게 두 가지의 종류로 나뉜다.
정적 바인딩(Static Binding)
묶긴 묶는데 정적, 고정되게 묶는다.
여기에 보면 시스템 프로그래밍의 간략한 구조도가 나오는데, 여기서 컴파일, 링크, 로드를 할 때 진행되는 바인딩을 정적 바인딩이라고 한다.
동적 바인딩(Dynamic Binding)
로더의 4단계를 보면 allocation-linking-relocation-load가 있다.
이후 프로그램이 실행되는데, 이 실행 단계에서 이루어지는 바인딩을 동적 바인딩이라고 한다.
정적 바인딩보다 상대적으로 늦게 하기 때문에 늦은 바인딩이라고도 불린다.
바인딩 타임(Binding Time)
바인딩 타임이란, 바인딩을 하는 데 소모되는 시간을 의미한다.
이러한 바인딩 타임도 종류가 여러 가지 존재하는데, 크게 여섯 가지로 나뉜다.
1. 언어 설계(정의) 시간
언어에서 허용되는 대부분의 자료구조나 프로그램 구조를 확정하는 시간이다.
ex) 혼합용 연산시 어떤 연산을 먼저 수행할지 판단
2. 언어 구현 시간
특정 기종에 구애받지 않는 호환성을 갖기 위한 과정이다.
자료형 및 유효숫자 개수가 바인딩된다.
ex) int 타입의 길이를 16비트, 32비트 중 결정
3. 컴파일 시간
변수명, 프로그램 구조 등을 확정할 때 걸리는 시간이다.
4. 링크 시간
부프로그램 코드를 라이브러리와 연결할 때 걸리는 시간이다.
5. 적재 시간
변수를 실제 메모리로 적재할 때 소요되는 시간이다.
6. 실행 시간
프로그램을 실행하면서 변수의 값을 확정할 때 걸리는 시간이다.
'전공 > 시스템프로그래밍' 카테고리의 다른 글
어셈블러의 2패스 구조 (0) 2020.06.08 파이프라인(Pipeline) (0) 2020.06.08 인텔 프로세서의 내부 구조 (1) 2020.06.08 실수를 비트로 표현하는 방법, 부동소수점 (0) 2020.06.08 SISD / SIMD / MISD / MIMD (0) 2020.06.08