///////
Search
1️⃣

연습문제 1 ~ 4

1. 가상 메모리에서 메모리 관리자가 사용할 수 있는 전체 크기는 어떻게 결정되는가

가상 메모리 시스템의 모든 프로세스는 물리 메모리와 별개로 자신이 메모리의 어느 위치에 있는지 상관없이 0번지부터 시작하는 연속된 메모리 공간을 가진다.
이론적으로, 가상 메모리는 무한대의 크기이다.
그러나 실제로 가상 메모리의 최대 크기는 컴퓨터 시스템이 가진 물리 메모리의 최대 크기로 한정된다. 물리 메모리가 꽉 찼을 때 일부 프로세스를 스왑아웃으로 스왑 영역으로 보내고 물리 메모리에 공간이 생기면 스왑인한다.
가상 메모리의 크기 = 물리 메모리 + 스왑 영역
기본적으로 프로세스는 가상 주소를 할당받고, 필요할때만 물리주소로 변환해서 물리 메모리에 올려서 사용한다는 개념이다.
즉, MMU(Memory Management Unit)가 가상 메모리 주소를 물리 메모리 주소로 변환시켜주어 CPU가 접근할 수 있도록 해준다.
이렇게 접근하는 프로세스의 단위는 세그먼트 단위 일수도 페이지 단위일수도 있지만, 현재는 보통 페이지 단위로 사용한다고 한다.

2. 가상 주소에서 하나의 프로세스가 사용할 수 있는 최대 주소는 무엇과 연관이 있는가

CPU 비트 값이 얼마인지에 따라 표현할 수 있는 주소값의 수가 달라진다.
32bit 컴퓨터의 경우 32bit로 표현할 수 있는 경우의 수는 2의 32승 = 4,294,967,296(약 42억)개이다.
컴퓨터 주소는 1개당 1byte (4비트) 용량을 차지하므로 약 42억 * 1바이트 = 약 4기가바이트(GB)
1기가 = 10억

3. 가상 메모리에서 가상 주소를 물리 주소로 변환하기 위해 사용하는 자료 구조를 무엇이라 하는가?

메모리 관리자는 가상주소와 물리주소를 일대일 매핑 테이블로 관리

4. 페이징 기법의 주소 변환 과정 식을 쓰시오.

VA =<P, D> → PA = <F, D>
VA : 가상 주소 P : 페이지 D : 페이지의 처음 위치에서 해당 주소까지의 거리 PA : 물리 주소 F : 프레임 D : 프레임의 처음 위치에서 해당 주소까지의 거리
가상 주소 페이지 3번의 30번지 내용을 물리 주소 프레임 1의 0번지에 저장할 때
VA = <3,0> → PA = <1,0> 이 되었다고 볼 수 있다.
왜 물리 주소에서 프레임 1번에 저장되었냐 하면, 페이지 테이블에 페이지 3 과 프레임 1이 연결되어 있기 때문이다. 위 예시는 페이징이 10B 단위로 되어있어서 주소 변환 과정이 쉽다.
가상 주소 페이지 1번의 1364번지 내용을 물리 주소 프레임 3번에 저장한다고 하면
VA = <1,340 (= 1364-1024) > → PA = <3 , 340> 이 된다.