반응형
Notice
Recent Posts
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Today
Total
관리 메뉴

H-Log

[운영체제] 가상메모리 본문

dev-log/cs

[운영체제] 가상메모리

hong6v6 2023. 10. 1. 14:20
반응형

가상메모리

  • 물리 메모리보다 더 큰 프로세스를 사용할 수 있음
  • 메모리 관리자가 바라보는 크기 : 물리메모리 + 스왑영역

동적 주소 변환 (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