오식랜드
[운영체제] 가상메모리 본문
반응형
가상메모리
- 물리 메모리보다 더 큰 프로세스를 사용할 수 있음
- 메모리 관리자가 바라보는 크기 : 물리메모리 + 스왑영역
동적 주소 변환 (DAT : Aynamic Address Translation)
- 가상주소 → 물리주소 변환
- 페이징 기법 → 페이지 매핑 테이블 (페이징 테이블) 사용
- 세그멘테이션 기법 → 세그멘테이션 매핑 테이블 (세그멘테이션 테이블) 사용
메모리 참조의 “지역성”
- 공간의 지역성 : 현 주소와 가까운 데이터에 접근할 확률이 높다
- 시간의 지역성 : 최근에 사용한 주소 (프로세스)가 다시 사용될 가능성이 높다
- 순차적 지역성 : 작업이 순서대로, 즉 주소가 순서대로 읽히는 것 (공간과 유사)
⇒ 지역성 때문에 스왑영역에서 물리주소로 한번 불러오면(스왑 인), 한동안은 다시 스와핑 할 일이 없음
⇒ 캐시도 같은 이론으로 사용 (캐시히트 90-95%)
페이징 기법
- 고정 분할 방식에서 발전된 기법
- 물리주소는 같은 크기
- 가상주소는 프로세스 입장에서 바라보는 것으로, 0번지부터 시작
- 페이지 : 가상 주소에서 분리된 영역을 의미
- 프레임 : 물리 주소에서 분리된 영역을 의미
- 페이지 크기 = 프레임 크기
- 어떤 페이지가 어떤 프레임과 연결되어있는지는 “페이지 테이블”에 있음
페이지 항목 수 = 가상주소 크기 만큼
프레임 수 : 물리메모리 크기/페이지 크기
예 ) 물리주소 24bit, 페이지 크기 16KB = 24/14
주소 변환 : VA =<P,D> → PA = <F,D>
- VA : 가상 주소 (virtual address)
- PA : 물리 주소
- P : 페이지
- F : 프레임
- D : 페이지 처음 위치부터 해당 주소까지의 거리
⇒가상주소를 물리주소로 바꾸기 : P를 F로 바꾸고, D는 그대로
⇒ D를 그대로 두는 이유 : 페이지와 프레임 크기가 같기 때문에
페이지 테이블
- 적정 크기로 유지
- 메인 메모리 안에 존재
- 페이지 테이블 기준 레지스터(PTBR) : 페이지테이블의 시작 주소를 담음
- 페이지테이블의 일부도 스왑영역으로 넘어갈 수 있음
- 쓰기 시점 복사 : 데이터의 변화가 있을 때 까지 복사를 미룸
변환 색인 버퍼 : Translation Look-ahead Buffer (TLB)
- 캐시된 페이지 테이블
- 원래 메모리에 두번 접근해서 가상주소를 물리주소로 바꿈. 그걸 TLB를 통해 1번으로 바꿈
- TLB HIT : 원하는 페이지 번호가 TLB에 있는 경우
- TLB MISS : 물리메모리에 직접 저근 + 일부 블럭을 가져와 교체 (지역성때문에)
역 페이지 테이블
- 기존 페이지와 반대
- 물리 주소의 프레임 번호를 기준으로 테이블 구성 → 절약 가능
- 물리메모리 프레임에 어떤 프로세스가 올라와있는지 표시
- 테이블이 무조건 하나만 존재
- 테이블 크기가 작음
- 속도가 느림
- 내용 비교가 필요
- 탐색이 빠른 메모리와 함께 사용
다단계 페이지 테이블 (2단계 페이지 테이블)
- 양이 줄지 않음. 잘게 나눈것 뿐임
- 캐시, 스왑영역 등에 갖고오기가 용이
세그멘테이션 테이블
- 가변 분할 방식의 종류
- address : 물리 메모리상의 시작주소
- limit : 세그먼트의 크기
- 물리메모리 부족 시 스왑영역 이용
반응형
'dev-log > cs' 카테고리의 다른 글
[운영체제] 하드디스크 (0) | 2023.10.01 |
---|---|
[운영체제] 입출력장치 (0) | 2023.10.01 |
[운영체제] 메모리 (0) | 2023.10.01 |
[운영체제] 교착 상태 (0) | 2023.10.01 |
[운영체제] 임계구역 (0) | 2023.10.01 |
Comments