-
페이징운영체제/메모리 관리 전략 2018. 2. 4. 17:55
페이징은 프로세스가 적재되는 물리 주소 공간이 연속적이지 않아도 적재를 허용한다는 이점을 가진 메모리 관리 기법이다.
페이징은 세그먼테이션과 달리 외부 단편화를 방지하고 단편화에 따른 압축 작업이 필요 없다.
기본 방법
물리 메모리는 프레임이라 불리는 같은 크기의 블록들로 분할되고
논리 메모리는 페이지라고 불리는 같은 크기의 블록으로 분할된다.
프로세스가 실행될 때 프로세스의 페이지는 보조 메모리로부터 주 메모리 프레임으로 적재된다.
CPU에서 나오는 모든 주소는 페이지 번호와 페이지 변위의 두 개의 부분으로 나누어진다.
페이지 번호는 페이지 테이블을 액세스 할 때 사용되며 페이지 테이블은 주 메모리에서의 페이지 주소를 가지고 있다.
이 페이지 주소에 페이지 변위를 더하면 원하는 물리 주소가 된다.
페이징 기법을 이용하면 외부 단편화가 발생하지 않지만 내부 단편화가 발생할 수 있다.
운영체제는 프레임 테이블을 통해서 어느 프레임이 사용가능한지, 총 프레임은 몇 개나 되는지 등을 알 수 있다.
하드웨어 지원
컴퓨터는 페이지 테이블을 주 메모리에 저장하고 페이지 테이블 기준 레지스터를 변화시켜 페이지 테이블을 가리키도록 한다.
이 방식에서 정보를 액세스하기 위해서는 두 번의 메모리 접근이 필요하다.
두 번의 메모리 접근 문제의 해결에는 TLB라고 하는 소형 하드웨어 캐시가 사용된다.
TLB는 매우 빠른 연관 메모리로 구성되며
TLB 내의 항목은 Key와 Value로 구성된다.
보호
메모리 보호는 각 페이지에 붙어있는 보호 비트에 의해 구현된다.
각 비트는 이 페이지가 읽고 쓰기 또는 읽기 전용임을 각각 정의할 수 있다.
페이지 테이블의 각 항목에는 유효, 무효 비트가 있다.
이 비트가 유효로 설정되면 관련된 페이지가 프로세스의 합법적인 페이지임을 나타내고
무효로 설정될 경우 페이지는 프로세스의 논리 주소 공간에 속하지 않는다는 것을 나타낸다.
댓글