내 잡다한 노트

챕터8. 세그먼테이션-페이징 혼용 기법 본문

운영체제

챕터8. 세그먼테이션-페이징 혼용 기법

peanutwalnut 2022. 9. 17. 20:58

메모리 접근 권한

메모리의 특정 번지의 데이터를 사용할 수 있는지에 관한 권한을 뜻한다.

읽기 쓰기 추가 실행이라는 4가지 권한이 존재한다.

쓰기 권한이 없으면 추가 권한도 없기 때문에 총 8가지의 권한이 있다 디테일하게 생각하면 6가지이다.

 

프로세스 구역내 메모리 접근 권한

코드 영역에선 읽기 실행만 된다. 자기 자신의 코드를 프로세스는 수정할 수 없기 때문이다.

데이터 영역은 읽고 쓸수있다. 하지만 상수 데이터는 쓸 수 없다. 

 

메모리 접근 권한에 대한 검사는 가상 주소에서 물리주소로 변환을 할 때 매번 일어난다.

만약 권한이 없는데 접근한다면 트랩 오류를 일으킨다.

 

세그먼테이션-페이징 혼용 기법

말그대로 세그먼테이션과 페이징의 장점을 혼합했다.

프로세스들은 어떤 데이터에 대해 어떤 권한을 가지고 있는지에 대한 정보도 가지고 있어야 한다.

만약 페이징 기법만 사용한다면 안그래도 큰게 데이터가 추가되는 것이니 더욱 커진다.

그래서 같은 권한을 가진 페이지끼리 구역을 나눠서 각각의 구역들을 세그먼테이션

테이블로 관리를 한다. 그리고 그 세그먼테이션 테이블들은 페이지 테이블이 관리를 한다.

세그먼테이션 테이블에는 권한이나 다른 정보들을 가지고 있고 address에 연결되는 페이지의 첫 주소를 가지고 있게 된다.

페이지는 연결되는 프레임번호를 가지고 있다.

이렇게 하면 두가지의 방식의 장점만을 사용할 수 있다. 현대 운영체제는 이 방식을 사용하고 있다.

 

가상 주소를 VA = <S, P, D> 로 표현한다. S는 세그먼트 번호, P는 페이지 번호, D는 DISTANCE이다.

사용자가 특정 데이터를 찾으려 할 때 세그먼테이션 테이블에서 접근 권한이 있는지, 오류가 없는지를 검사한다.

그리고 페이지 테이블로 넘어간다.