페이징은 메모리 관리가 수월하지만 페이지 테이블의 크기가 큼
세그먼테이션 기법은 테이블의 크기를 작게 유지할 수 있지만 물리 메모리의 외부 단편화로 추가적인 관리 불가피
- 메모리 접근 권한
메모리의 특정 번지에 저장된 데이터를 사용할 수 있는 권한
읽기, 쓰기, 실행, 추가 권한 있음
추가는 쓰기 권한 없이 사용할 수 없으므로 추가와 쓰기는 같이 취급
프로세스는 코드 영역, 데이터 영역, 스택 영역, PCB 로 구성되며 각 영역에는 접근 권한 존재
페이징, 세그먼테이션 기법은 매핑 테이블에 메모리 접근 권한에 대한 정보 가지고 있으며 주소 변환 일어날 때 마다 유용한 접근인지 아닌지 검사
- 세그먼테이션-페이징 혼용 기법의 도입
페이징 기법에서 페이지마다 접근 권한이 다르기 때문에 페이지 테이블의 모든 행에는 메모리 접근 권한과 관련된 권한 비트 추가됨
권한 비트 추가될 때마다 페이지 테이블의 크기가 커지고 메모리가 낭비됨
- 세그먼테이션-페이징 혼용 기법
사용자 입장에서는 세그먼테이션 기법을 사용하고 메모리 관리자 입장에서는 페이징 기법을 사용하는 가상 메모리 관리 기법
페이지로 분할된 가상 주소 공간에서 서로 관련 있는 영역을 하나의 세그먼트로 묶어 세그먼테이션 테이블에서 관리함으로써 메모리 관리 효율적으로 할 수 있음
- 세그먼테이션-페이징 혼용 기법의 주소 변환
가상 주소를 VA = <S(세그먼트), P(페이지 번호), D(페이지의 처음 위치에서 해당 주소까지의 거리)> 로 표현
- 주소 변환 과정
사용자가 데이터 요청 시 VA = <S, P, D> 구함
세그먼테이션 테이블의 해당 세그먼트로 가서 권한 확인 후 벗어났을 시 세그먼테이션 오류 발생시켜 프로세스 강제 종료, 그렇지 않으면 연결된 페이지 테이블로 감
페이지 테이블에서 해당 페이지가 어느 프레임에 저장되어 있는지 찾은 후 메모리나 스왑 영역 접근
물리 메모리에 있는 프레임의 처음 위치에서 D 만큼 떨어진 곳에 접근