///////
Search
6️⃣

심화문제 4 ~ 6

4. 집합-연관 매핑의 동작을 설명하시오.

연관 매핑에서 모든 변환 색인 버퍼를 검색한 후에야 TLB 미스가 있다는 사실을 알게되어 시스템 성능이 떨어지는 것을 개선한 방식
동작 과정
1.
페이지 테이블을 같은 크기의 여러 묶음으로 나눈다.
2.
각 묶음의 시작 주소를 가진 디렉터리 테이블을 새로 만들어 관리한다.
3.
디렉터리 테이블을 통해 원하는 테이블 묶음이 현재 메모리에 있는지, 스왑 영역에 있는지 확인한다.
4.
만약 디렉터리 테이블에서 Invalid 로 표시되어 있다면 스왑영역에 있는 것이다.
5.
Invalid로 표시되어 있지 않다면, P1(디렉터리 테이블에서의 위치 정보), P2(묶음 내에서의 위치 정보)를 통해 2단계를 거쳐 물리주소로 변환된다.
예시
페이지의 크기를 10B이라하고, 페이지 테이블 10개를 한 묶음으로 나누었다고 가정한다.
0 ~ 9번 테이블 → 0번 디렉터리 → 0 ~ 99번지
10 ~ 19번 테이블 → 1번 디렉터리 → 100 ~ 199번지
가상 주소 32번지
직접 매핑 : VA =<P,D> = <3,2>
집합-연관 매핑 : VA = <P1, P2, D> = <0,3,2>
1.
32번지 이므로 0번 디렉터리(0~99번지)에 속한다
→ P1 = 0
2.
0번 디렉터리 묶음 내에서 3번째 위치(30~39)에 있으므로 3번 테이블에 속한다
→ P2 = 3
3.
페이지 하나의 크기가 10B이므로 3번 테이블 내에서 2번째 위치한다.
→ D = 2

5. 역매핑의 동작을 설명하시오.

직접 매핑, 연관 매핑, 집합-연관 매핑과는 달리 물리 메모리의 프레임 번호를 기준으로 테이블을 작성하는 방식
프로세스의 수와 상관없이 항상 일정한 크기의 페이지 테이블을 유지하여 물리 메모리의 공간 낭비 해결(전체 테이블 수 1개)
페이지 테이블을 다 검사한 후에야 해당 페이지가 스왑 영역에 있다는 것을 알게되므로 시간 낭비 단점
동작 과정
1.
테이블을 <프레임 번호, 프로세스 아이디, 페이지 번호>로 구성한다.
2.
메모리 관리자가 주소 변환을 해야 하는 프로세스 아이디와 페이지 번호가 물리 메모리에 있는 역매핑 테이블에서 검색한다.
3.
원하는 데이터가 없다면 스왑 영역에서 가져온다.
4.
데이터가 있다면 바로 주소 변환을 진행한다.

6. 세그먼테이션-페이징 혼용 기법을 사용하는 이유를 설명하시오.

페이징 기법은 메모리 관리가 수월한 반면 페이지 테이블의 크기가 크다는 단점이 있다.
세그멘테이션 기법은 테이블 크기를 작게 유지할 수 있는 반면 외부 단편화로 인해 메모리 관리가 어렵다는 단점이 있다.
세그먼테이션-페이징 혼용 기법
가상주소에서 물리주소로 주소 변환 시 메모리 접근 권한 검사를 진행한다.
페이징 기법에서 메모리 접근 권한을 고려하면 권한 비트가 추가되는데, 그 중에는 반복되는 권한 비트도 많이 존재해 불필요하게 페이지 테이블의 크기가 커지는 단점이 있다.
이 때, 페이징 기법과 세그먼테이션 기법을 혼합하여 사용하여 해결한다.
페이지로 분할된 가상 주소 공간에서 서로 관련 있는 영역을 하나의 세그먼트로 묶어 세그먼트 테이블로 관리하고, 각 세그먼트를 구성하는 페이지를 해당 페이지 테이블로 관리한다.
이렇게 하면, 두 기법의 장점만 취함으로써 메모리 관리를 효율적으로 할 수 있다.
세그먼테이션-페이징 혼용 기법의 주소 변환 과정
1.
세그먼테이션 테이블에서 자신의 영역을 벗어나는 불법 접근은 아닌지, 접근 권한을 가지고 있는지 확인한다.
2.
이를 통과하면 연결된 페이지 테이블로 가서 원하는 프레임을 찾는다.
3.
만약 원하는 페이지가 물리 메모리에 없으면 스왑 영역에서 해당 페이지를 물리 메모리로 가져온다.
4.
물리 메모리에 있는 프레임의 D만큼 떨어진 곳에 접근하여 데이터를 읽거나 쓴다.