이야기박스

운영체제) 메모리 관리2 (Memory Management) 본문

Computer & Data/Operating System

운영체제) 메모리 관리2 (Memory Management)

박스님 2017. 6. 6. 11:49
반응형

§  페이징 (Paging)

- 가상주소 (Virtual Address) ; 프로그램 주소, 프로세스가 생성하는 주소

- 사상 (Mapping) ; 가상 주소를 물리주소로 매핑

- MMU ; Memory Management Unit ; 이를 관리해 주는 것




▣ MMU ( Memory Management Unit )

- 매핑을 관리

- page : 가상주소 공간의 단위

- page frame : 물리 메모리에 대응되는 단위

- page fault : page frame에 없고 page에 있음, 접근할 메모리가 Virtual Memory에 있는 경우

- 페이지 테이블 (Page table) 

; 페이지의 정보를 갖고 있음
      --> 페이지 수가 많아진다면, 페이지 테이블도 커짐

; 페이지 번호 -> 페이지 테이블의 인덱스

--> 해당 페이지 번호에 대응되는 페이지 프레임 번호 기억






▣ 페이지 테이블 (Page Tables)

- Virtual page를 page frame에 매핑

- 가상 주소를 페이지 번호(상위 비트)와 오프셋(하위 비트)로 구분 

--> ex/ 16 bits virtual address ~> 4bits page number / 12 bits offset

- 페이지 번호를 인덱스로 이용해 페이지 테이블에서 가상 주소에 대응되는 엔트리를 찾음

- 가상 주소에서 페이지 번호가 차지하던 부분을 페이지 프레임 번호로 대치하면 물리주소가 됨


- 페이지 테이블의 구조 ; CPU에 따라 다르며, 하드웨어에 종속적

a. page frame number ; 가상 주소를 물리 주소로 매핑 하느 ㄴ기능

b. present / absent bit ; page fault or not

c. protection bit ; 1bit( read/write or read only) , 3bit(read , write, execute) 등

d. modified bit / referenced bit ; 변경 되면 / 참조 되면

e. caching disabled bit  ; 장치 레지스터에 매핑 되어 있을 때




▣ 페이징 시스템의 쟁점

1. 가상 주소에서 물리 주소로 주소 변환은 빠르게 이루어져야 한다.

2. 만일 가상 주소 공간이 커지면 페이지 테이블의 크기도 커진다.


- 메모리가 참조될때 마다 가상 주소와 물리 주소간의 변환 필요

--> 페이지 테이블 참조해야 함 
--> 페이지 테이블 참조 속도에 따라 성능에 대한 문제 발생

- 페이지 테이블의 크기에 대한 고려

--> 4KB 크기의 페이지 사용 ~> 32 비트 시스템 : 백만개 

--> 각 프로세스는 고유의 주소 공간 갖음 ~> 고유한 페이지 테이블을 갖음


- 해결 방안

a. 빠른 하드웨어 레지스터 배열로 구성된 단일 페이지 테이블 사용

b. 페이지 테이블의 모든 내용을 메모리에 유지

; 페이지 테이블의 시작주소를 가르키는 레지스터 존재 --> 한번더 메모리 참조를 해야함

c. 대부분 기법은 페이지 테이블을 메모리에 유지




§  페이징 속도 향상

▣ TLB (Translation Lookaside Buffer)

- 페이지 테이블 참조 없이 가상 주소를 물리 주소로 매핑할 수 있는 작은 하드웨어 사용

- 많은 메모리 참조는 몇몇 페이지에 국한되어 있음 ( 공간 지역성  )

- 주소 변환시, TLB 참조

- TLB miss or fault ; TLB에 참조하는 페이지 번호가 없다면 

--> MMU는 페이지 테이블을 검색

-  소프트웨어 TLB 관리

; TLB 관리를 소프트웨어적으로 해결

a. soft miss ; 참조하려는 페이지가 메모리에 있지만 TLB에 정보가 없어서 발생

--> 디스크 I/O 불필요

b. hard miss ; 참조하려는 페이지가 메모리 뿐만 아니라 TLB에도 없는 경우 발생

--> 디스크 I/O 필요







§  대용량 메모리 페이지 테이블

▣ 다단계 페이지 테이블

- 2단계 페이지 테이블 ; 페이지 테이블을 참조할 수 있는 페이지 테이블

- 3단계 이상의 경우 복잡도의 문제 발생


▣ 역 페이지 테이블

; 메모리에 적재된 페이지 프레임들로만 구성

--> 메모리 사이즈가 확 줄음

--> 페이지 테이블의 관리방안이 필요


- 가상 주소 공간의 각 페이지마다 엔트리가 존재하는 것이 아니라, 물리 메모리의 각 페이지 프레임마다 하나의 엔트리가 존재

--> 각 엔트리는 (프로세스 번호, 페이지 번호) 정보를 유지


- 메모리 공간의 사용은 크게 줄일 수 있음, 그러나 가상-물리 주소 변환이 복잡

--> 프로세스 n이 가상 페이지 p에 접근할 때, MMU는 p를 페이지 테이블의 인덱스로 사용하지 못하고,

역 페이지 테이블 전체를 검색하여 (p, v)를 갖는 엔트리가 있는지 검사

--> TLB의 이용으로 어느정도의 속도 향상


반응형