CS지식/운영체제

TIL 정리_101(Memory Management)

ran4 2022. 5. 29. 22:45

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 ratio98%인 경우

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의 예시

  1. 프로세스가 그 주소 부분을 사용하지 않는 경우
  2. 해당 페이지가 메모리에 올라와 있지 않고 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