[운영체제] Address Binding

in #operatingsystem6 years ago (edited)

이번 단원에서 알아볼 내용은 Address Binding 이다.

주로, 프로그램은 바이너리 실행 파일로써 디스크에 존재한다.

실행되기 위해서, 프로그램은 메모리로 가져와져야 하고, 프로세스는 실행시간동안

디스크와 메모리 사이로 옮겨질 것이다.

실행을 위해 메모리에 옮겨져서 기다리고 있는 프로세스는 Input Queue를 형성한다.

일반적으로 단일 tasking 절차는 Input Queue중 하나의 프로세스를 골라 메모리에 load하는

방식이다. 프로세스가 실행될 때, 그것은 메모리의 data와 명령에 접근한다.

결국 프로세스가 끝나면 메모리 공간은 available로 바뀐다.

대부분의 시스템은 user process를 어떤 부분의 물리공간에 할당하는것이 가능하다.

그러므로, 비록 00000번에서 주소공간이 시작되지만 user process의 첫 주소가

00000일 필요는 없다. 어떻게 실제로 물리주소에 프로세스가 배치되는지 볼 것이다.

대부분의 케이스에, user program은 몇가지 단계를 밟는다 (그 중 몇가지는 option) .

주소들은 이 단계동안 다른 방식으로 표시된다.

소스 프로그램안에 있는 주소는 일반적으로 symbolic이다.(count 라는 이름의 변수와 같이).

컴파일러는 일반적으로 이 symbolic 주소를 relocatable 주소로 묶는다.

그 다음, Linkage editor혹은 로더가 차례로 relocatable주소를 절대주소로 바꾼다.

Capture.PNG