///////
Search
4️⃣

연습문제 14 ~ 17

14. 연관 매핑에서는 전체 매핑 테이블을 어디에 보관하는가?

⇒ 스왑 영역
연관 매핑은 물리 메모리의 여유 공간이 작을 때 사용하는 방식
모든 페이지 테이블을 저장장치의 스왑 영역에 저장하고 그중 일부만 물리 메모리에 가지고 있다. 일부 내용만 무작위로 배치하기 때문에 페이지 번호와 프레임 번호 둘 다 표시한다.
단점은 주소 변환 시에 물리 메모리 내의 페이지 테이블을 다 검색해야 하고, 원하는 프레임 번호를 찾지 못하면 스왑 영역에 있는 페이지 테이블을 검색해야 하므로 시간을 낭비하게 된다.

15. 가상 메모리에서 메모리 관리자는 물리 메모리 영역과 스왑 영역을 합쳐서 프로세스가 사용하는 가상 주소를 실제 메모리의 물리 주소로 변환한다. 이러한 작업을 무엇이라 하는가?

⇒ 동적 주소 변환 Dynamic Address Translation (DAT)
이 과정에서 메모리 관리자는 물리 메모리를 어떤 방법으로 나눌지, 사용자 프로세스를 어디에 배치할지, 부족한 물리 메모리를 어떻게 처리할지 결정한다.

16. 사용자 프로세스가 자신의 크기보다 더 큰 주소에 접근하려고 하면 메모리관리자는 그 프로세스를 강제 종료한다. 이때 발생하는 오류를 무엇이라 하는가?

⇒ 트랩 Trap
세그먼테이션 테이블에는 세그먼트의 크리를 나타내는 limit와 물리 메모리상의 시작 주소를 나타내는 address가 있다.
페이징 기법에는 메모리를 같은 크기의 페이지 단위로 분할하기 때문에 매핑 테이블에 크기 정보를 가지고 있을 필요가 없었지만 세그먼테이션 기법에서는 프로세스의 크기에 따라 메모리를 분할하기 대문에 매핑 테이블에 크기 정보를 포함합니다.
각 세그먼트가 자신에게 주어진 메모리 영역을 넘어가면 안되기 때문에 가상 주소를 물리 주소로 변환할 때, 메모리 관리자가 접근하려는 메모리가 세그먼트의 크기보다 큰지 점검한다. 크지 않다면 물릴 주소를 구하고, 크다면 메모리 오류 (trap)을 출력하고 해당 프로세스를 강제 종료한다. 트랩이 발생하면 운영체제는 사용자에게 세그먼테이션 오류 메세지를 보낸다.

17. 세그먼테이션-페이징 혼용 기법에서는 접근 권한을 어디에서 관리하는가?

⇒ 세그먼 테이션 테이블
메모리 접근 권한은 메모리의 특정 번지에 저장된 데이터를 사용할 수 있는 권한으로 읽기, 쓰기, 실행, 추가 권한이 있다.
페이지마다 접근 권한이 다르기 때문에 페이지 테이블의 모든 행에는 메모리 접근과 관련된 권한 비트가 추가된다.
하지만 페이지 테이블에 권한 비트가 추가되면 페이지 테이블의 크기가 터진다. 가까운 페이지의 메모리 접근 권한이 같은 경우가 많은데도 불구하고 페이지마다 권한 비트를 설정해서 메모리를 낭비하게 된다.
이런 문제를 세그먼 테이션 테이블을 이용해서 해결할 수 있다.
위의 그림에 세그먼 테이션 테이블을 추가한 것
서로 관련 있는 영역의 페이지들을 하나의 세그먼트로 묶어서 세그먼테이션 테이블로 관리하고, 페이지는 페이지 테이블로 관리한다.
각 세그먼테이션 테이블은 자신과 연결된 페이지 테이블의 시작 주소를 가진다.
이렇게 페이징 기법과 세그먼테이션 기법을 혼합해서 사용하는 것을 세그먼테이션-페이징 혼용 기법이라고 한다. 현재 운영체제는 대부분 이 방식을 사용하고 있다.
메모리 관리자는 주소 변환이 이루어질 때마다 테이블의 권한 비트를 이용하여 유용한 접근인지 아닌지 확인한다. 만약 읽기만 가능한 메모리 영역에 쓰기를 하려고 하면 메모리 오류인 트랩이 발생한다.