OS

메모리 관리 1

필자A 2022. 10. 17. 23:19

 

각 저장공간끼리 DATA 전송 단위

block

보조기억장치에서 메인 메모리의 전송 단위

보조기억장치에서 1bit를 메인 메모리에 적재하고 싶다면

DATA 1bit라도 1 ~ 4 KB 단위로 이동됩니다.

 

word

메인 메모리에서 processor의 레지스터로 데이터를 전송한다면

16 ~ 64BIT의 단위로 전송됩니다.

 

흔히 64bit, 32bit cpu라는 말에서

앞의 단위는 word의 단위를 지칭한다고 봅니다.(엄밀히는 아님)

 

 

 

 

 

 

address binding

program을 논리적 주소를 물리적 저장공간에 할당(매핑)하는 방법

 

int A, int B가 존재하고

A의 물리적 저장공간 100에 저장할게

B의 물리적 저장공간 200에 저장할게

가 있다면 address binding 하는 순간마다 서로의 상대적 주소는 동일하지만

물리적 저장공간이 다르다는 차이점이 있습니다.

 

 

3가지의 순간에 address binding이 일어납니다.

1. compile time binding

2. load time binding

3. runtime time binding

 

위 도식처럼

1. 컴파일을 할 때

2. 메인 메모리에 적재될 때

3. 프로세서를 점유할 때

 

때에 address binding이 일어납니다.

 

 

 

 

compile time binding

 

int A, int B가 코드에 있을 때

 

A를 위치 100에

B를 위치 200에

 

적재한다고 설정되며

이 값은 변하지 않습니다.

 

 

 

load time binding

 

이제 우리 프로그램은 메모리의 어느 공간에 적재되어야 할지 모릅니다.

compile time 때 정한 100과 200의 값을 사용합니다.

저장공간의 시작 위치는 다를지라도

100과 200의 격차는 동일하게 유지합니다.

이를 상대적 주소를 사용한다고 표현합니다.

또 다른 특징은 프로그램 전체가 메모리에 올라갑니다.

 

 

run time binding

 

런타임 말 그대로 프로그램이 프로세스가 된 후 cpu를 점유할 때마다 새로 할당됩니다.

 

 

프로세스 상태 전이 도중 최소 main memory에 올라왔을 때부터 표현했습니다.

ready에서 cpu를 점유하여 running상태가 될 때 주소를 할당합니다.

그 후 block상태가 되었다가 필요한 자원을 다시 할당받고

ready에서 다시 running상태가 될 때마다 계속 재할당을 합니다.

 

 

 

 

 

swapping

 

프로세스 상태 전이 도중에서 swap in, swap out상태 전이을 말합니다.

 

 

전이도처럼 in, out시 메인 메모리에 적재될 때, 적재가 해제될 때를 표현합니다.

반응형