Paging 을 사용했을때의 장점
Fragmentation을 해결할 수 있다.
Swapping 이 용이해진다.(페이지 크기를 디스크 블록 사이즈에 맞춤)
Paging 을 사용했을때의 단점
Internal Fragmentation 이 발생하나 효과는 미미함.
Segmentation일 때와 마찬가지로 메모리를 접근하기 위해서 실제적으로 2번의 접근이 필요하다
Segmentation과 반대로 페이지 테이블의 크기가 방대해지는 문제가 생긴다.
출처 : http://yimoyimo.tk/Segmentation-and-Paging-1/
Page Table Structure
1. hierarchical paging(계층적 페이징)
2. hashed page table
3. Inverted Page Table
Fragmentation을 해결할 수 있다.
Swapping 이 용이해진다.(페이지 크기를 디스크 블록 사이즈에 맞춤)
Paging 을 사용했을때의 단점
Internal Fragmentation 이 발생하나 효과는 미미함.
Segmentation일 때와 마찬가지로 메모리를 접근하기 위해서 실제적으로 2번의 접근이 필요하다
Segmentation과 반대로 페이지 테이블의 크기가 방대해지는 문제가 생긴다.
출처 : http://yimoyimo.tk/Segmentation-and-Paging-1/
Page Table Structure
1. hierarchical paging(계층적 페이징)
- 32비트 컴퓨터에선 페이지 테이블은 4MB정도로 크다.
- 페이지 테이블을 작은 조각으로 나눈다. 페이지 테이블 자체가 다시 페이지화 되는 것.
- 계층이 깊어질수록, 페이지 접근 시간이 늘어나는 치명적인 단점이 있는 방식.
- 64비트 컴퓨터의 경우 페이지 크기가 어마어마하게 크다. 너무 많은 메모리 접근을 요구하므로 구현이 불가능하다.
-주소 공간이 32bit 보다 커지면 사용
- 해시 테이블에 각 항목은 연결리스트를 가지고 있으며, 충돌을 일으켜서 이곳으로 해시되는 원소들이 연결된다.
- 각 원소는 가상 페이지번호, 사상되는 페이지 프레임 번호, 연결 리스트 상의 다음 원소 포인터를 가진다.
- 알고리즘 : 가상 주소 공간에서 페이지 번호가 오면 그것을 해싱함수에의해 해싱한다 -> 페이지 테이블에서 연결리스트를 따라가며 첫 번째 원소와 가상 페이지 번호를 비교해본다 -> 일치하면 그에 대응하는 페이지 프레임 번호를 가져와 물리주소를 얻고, 일치하지 않으면 다음 원소로 이동하여 반복.
- 보통 프로세스 마다 각자 하나씩 페이지 테이블을 가짐 -> 프로세스 전체가 공통으로 사용하는 페이지 테이블, 가상 주소에는 프로세스ID와 페이지 주소를 가지고 있다.
- 메모리공간을 작게 사용한다.
- 주소변환 시간이 더 오래 걸린다.
출처: http://skagh.tistory.com/6 [재수강은없다]
댓글
댓글 쓰기