티스토리 뷰

개발/운영체제

페이징(Paging)

겸겸이 2018. 1. 8. 18:34

페이징(Paging)

페이지(Page) 단위의 논리-물리 주소 관리기법

대부분의 운영체제에서 활용되는 메모리 관리기법

필요조건

- 논리 주소 공간과 물리 주소 공간을 분리하여 주소의 동적 재배치 허용

- 전용 하드웨어(MMU)로 논리주소와 물리주소 변환이 필요


페이징의 주소표현

- 페이지 번호(p)와 페이지 오프셋(d)

- 논리 주소 공간의 크기가 2^m, 페이지의 크기가 2^n일 때, 상위(m-n)비트는 페이지 번호, 하위 n비트는 오프셋


페이징의 특징

- 연속된 논리 주소 공간을 독립적으로 사용하고 주소변환은 하드웨어나 운영체제가 처리하기 때문에 사용자/프로세스의 편의성

- 프레임 단위의 비연속적 메모리 할당이기 때문에 동적 메모리 할당에 따른 문제가 없음. (외부 단편화 없음)

- 다만 페이지라는 4킬로바이트의 비교적 큰 단위를 사용하기 때문에, 페이지의 크기보다 더 작은 메모리를 요청할 경우 내부 단편화가 발생할 수 있음.

- 페이지테이블의 반대 개념인 프레임테이블(물리 메모리의 사용정보를 담고 있는 테이블)도 활용하고 있음.

- 다른 페이지더라도 같은 페이지 테이블에 물리 주소 정보를 가지고 있다면 공유 페이지를 쉽게 만들 수 있음.


페이지테이블 

- 각각의 페이지(논리 메모리의 고정 크기 블록)가 실제 메모리에는 어떤 프레임(물리 메모리의 고정 크기 블록)에 저장이 되어있는가에 대한 매핑정보를 담고 있는 것

- 프레임 번호를 담고있는 배열이며, 페이지 번호를 담고 있음

- 프로세스 실행 시 각 페이지는 임의의 메모리 프레임에 적재될 수 있음


- 페이지 번호를 인덱스로 직접 접근할 수 있음

- 논리주소의 페이지 번호를 페이지 테이블에서 프레임 번호로 물리주소에 매핑하여

개의 항목(entry)가 프로그램 크기에 관계없이 존재함. (용량 낭비)




TLB(Translation Look-aside Buffer)

- 페이지 테이블 속도 개선을 위한 소형의 하드웨어 캐시 메모리

- 접근 속도가 굉장히 빠름

- TLB내의 각 항목(entry)는 키(key)와 값(value)로 구성

> key : 페이지 번호

> value : 페이지 번호에 해당하는 프레임 번호

- TLB가 있는 경우 TLB에 페이지 번호를 검색 한 후 존재 하는 경우 프레임 번호를 빠르게 가져옴

- 없을 경우는 페이지테이블 이용

- TLB를 사용할 때의 평균 메모리 접근 시간 : TBL 참조 성공률(TLB hit ratio)에 따라 영향을 받는다.

> Effective Memory-Access Time(EAT)


크기가 큰 페이지 테이블의 처리

- 계층적 페이징(Hierachical paging)

> 페이지 테이블 자체를 다시 페이징 함 : 외부 페이지 테이블

> 외부 페이지 테이블에서 큰 페이지 테이블 단위를 찾은 뒤, 세부로 들어가 인덱스를 찾음

> 추가의 메모리 참조 시간이 필요하기때문에 외부 페이지 테이블이 늘어날 수록 속도가 느려짐

> 유효한 페이지들만 테이블에 포함하는 해싱(hasing)으로 문제 해결


- 해시 페이지 테이블(Hashed page table)

> 논리 주소의 페이지 번호를 해시 값으로 사용 

> 링크드 리스트를 활용하여 페이지 번호를 찾기 때문에 좀 더 빠르게 변환이 가능


- 역 페이지 테이블(Inverted page table)

> 물리 메모리의 프레임 번호로 인덱스되는 테이블 

> 각 항목은 페이지 번호와 프로세스 ID를 가지고 있음

> 각각의 프로세스 마다 각각의 테이블을 가지고 있기 때문에 메모리 공유가 어려움


'개발 > 운영체제' 카테고리의 다른 글

메모리 관리(Memory Management)  (0) 2018.01.07
교착상태(Deadlock)  (0) 2018.01.05
락(Lock)과 세마포어(Semaphore)  (0) 2018.01.04
스레드(Thread)  (0) 2018.01.04
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함