http://www.kocw.net/home/m/search/kemView.do?kemId=1046323
운영체제 강의를 듣고 정리한 내용입니다
Noncontiguous allocation 불연속 할당
- Paging
- Segmentation
- Pages Segmentation
Two-Level Page Table
2단계 페이지 테이블
보통은 속도를 빠르게 하거나 공간을 줄일 때 사용한다
-> 이 경우 속도는 개선이 되지 않는다
현대의 컴퓨터는 주소 공간이 매우 큰 프로그램을 지원한다
- 32 비트 주소 사용시 2^32(4G)의 주소공간이 필요하다
- (2^10 = K, 2^20 = M, 2^30 = G)
- page size가 4K일 때 1M개의 page table entry가 필요하다
- 각 page entry가 4B시 프로세스당 4M의 page table이 필요하다
그러나 대부분의 프로그램은 4G의 주소 공간 중 지극히 일부분만 사용하므로
page table 공간이 심하게 낭비된다
-> page table 자체를 page로 구성한다
-> 사용되지 않는 주소 공간에 대한 outer page table의 엔트리 값은 NULL이다
(대응하는 inner page table이 없다)
**4G의 주소공간에서 실제로 사용하는 논리적인 주소는 극히 일부분이다
2단계 페이징에서의 Address-translation scheme
- 2단계 페이징을 사용하면 페이지 테이블의 공간을 줄일 수 있다
- 전체 공간의 상당 부분은 실제로 사용되지 않기 때문에 안쪽 페이지 테이블이 만들어지지 않기 때문에 공간이 줄어든다
Multilevel Paging and Performance
- 다단계로 사용가능한 페이징이다
- Address space가 커지면 다단계 페이지 테이블이 필요하다
- 각 단계의 페이지 테이블이 메모리에 존재하므로 논리적 주소 -> 물리적 주소 변환에 더 많은 메모리 접근이 필요하다
- TLB를 통해 메모리 접근 시간을 줄일 수 있다
>> 4단계 페이지 테이블을 사용하는 경우
메모리 접근 시간이 100ns, TLB 접근 시간이 20ns이다
> TLB hit ratio가 98%인 경우
effective memory access time(효율적인 메모리 접근 시간) = 0.98 x 120 + 0.02 x 520 = 128 nanoseconds
-> 결과적으로 주소 변환을 위해 28ns만 소요한다
**TLB에서 주소변환이 안되는 경우, 400ns가 주소변환에 사용된다
메모리 접근시간을 합치면 520ns이다
-> 다단계 페이지 테이블은 TLB를 통한 방법임을 가정한다
Memory Protection
Page table에는 엔트리가 존재한다 -> 사용되지 않는 영역에도 엔트리가 존재한다
Page table은 주소변환 정보가 아닌 Page table의 각 entry 마다 아래의 bit를 둔다
Protection bit
페이지에 대한 접근 권한을 의미한다 (read/write/read-only)
-> 다른 프로세스가 볼 수 없게 하는 것이 아닌 연산에 대한 권한을 제어하는 것이다
Valid-invalid bit
‘valid’는 해당 주소의 frame에 그 프로세스를 구성하는 유효한 내용이 있음을 뜻한다(접근 허용)
‘invalid’는 해당 주소의 frame에 유효한 내용이 없음을 뜻한다 (접근 불허)
invalid의 예시
- 프로세스가 그 주소 부분을 사용하지 않는 경우
- 해당 페이지가 메모리에 올라와 있지 않고 swap area에 있는 경우
Inverted Page Table
** page table의 문제점 : 많은 용량을 차지하고 있다
page table이 매우 큰 이유 :
- 모든 process별로 해당 논리적 주소에 대응하는 모든 page에 대해 page table entry가 존재하기 때문이다
- 대응하는 페이지가 메모리에 있든 아니든 간에 page table에는 entry로 존재한다
위의 문제를 해결하기 위한 Inverted page table
- page frame 하나당 page table에 하나의 entry를 둔 것을 말한다 (system-wide)
- 각 page table entry는 각각의 물리적 메모리의 page frame이 담고있는 내용을 표시한다
- process-id, process의 논리적 주소
-> 딱 하나만 존재한다
단점
- 테이블 전체를 탐색해야 한다
- -> associative register를 사용한다 (비용이 많이든다)
- 물리적인 주소를 논리적인 주소로 바꿀 수 있는 테이블이기 때문에
- 주소변환의 목적이 맞지 않을 수 있다
-> 그럼에도 페이지 테이블을 위한 공간을 줄이기 위해 사용한다
'CS지식 > 운영체제' 카테고리의 다른 글
TIL 정리_103(Virtual Memory 1) (0) | 2022.06.03 |
---|---|
TIL 정리_102(Memory Management) (0) | 2022.06.01 |
TIL 정리_100(Memory Management) (0) | 2022.05.27 |
TIL 정리_99(Memory Management) (0) | 2022.05.26 |
TIL 정리_98(Deadlock&Memory) (0) | 2022.05.25 |