이야기박스
운영체제) 메모리 관리2 (Memory Management) 본문
§ 페이징 (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의 이용으로 어느정도의 속도 향상
'Computer & Data > Operating System' 카테고리의 다른 글
운영체제) 메모리 관리4 (Memory Management) (0) | 2017.06.07 |
---|---|
운영체제) 메모리 관리3 (Memory Management) (0) | 2017.06.06 |
운영체제) 메모리 관리1 (Memory Management) (0) | 2017.05.26 |
운영체제) 고전적인 프로세스간 통신 문제들 (0) | 2017.05.14 |
운영체제) 스케줄링 (0) | 2017.05.14 |