여름의 서재
[운영체제] 가상 메모리의 기초 본문
💡 가상 메모리의 개요
- 가상 메모리
: 물리 메모리의 크기와 상관없이 프로세스에 커다란 메모리 공간을 제공하는 기술
: 가상메모리의 크기 = 물리 메모리 + 스왑 영역
💡 페이징 기법
: 고정 분할 방식을 이용한 가상 메모리 관리 기법으로 물리 주소 공간을 같은 크기로 나누어 사용
- 페이징 기법의 주소 변환 과정
: VA = <P, D> -> PA = <F, D>
* VA: 가상 주소, P (페이지), D (페이지의 처음위치에서 해당 주소까지의 거리)
* PA: 물리 주소(실제 주소), F (프레임), D (프레임의 처음위치에서 해당 주소까지의 거리)
📌 페이지 테이블 엔트리
: 페이지 테이블의 각각희 한줄. 페이징 기법에서 페이지 테이블 엔트리는 프레임 번호만 가짐.
- 가상 주소를 <P, D>로 변환하는 공식
- P = 가상주소/한 페이지의 크기 의 몫
- D = 가상주소/한 페이지의 크기 의 나머지
2. 페이지 테이블 매핑 방식
- 직접 매핑
: 페이지 테이블 전체가 물리 메모리의 운영체제 영역에 존재하는 방식. 주소 변환 속도가 빠르지만 메모리가 충분할 때 사용할 수 있음.
- 연관 매핑
: 전체 페이지 테이블을 스왑 영역에 두고 페이지 데이블의 일부를 물리 메모리에 가져오는 방식. 물리 메모리에는 일부 페이지만 무작위로 저장되어 있고 그 일부분의 테이블을 변환 색인 버퍼(TLB), 연관 레지스터라고 부름.
- TLB 히트: 원하는 페이지 번호가 변환 색인 버퍼에 있는 경우
- TLB 미스: 원하는 페이지 번호가 변확 색인 버퍼에 없는 경우, 스왑 영역에 저장된 직접 매핑 테이블을 사용하여 프레임 번호로 변환한다.
- 집합-연관 매핑
: 연관 매핑의 문제를 개선한 방식으로, 페이지 테이블을 일정한 집합으로 자르고, 자른 덩어리 단위로 물리 메모리에 가져옴.
📌 디렉터리 테이블
: 해당 묶음이 현재 메모리에 있는지, 스왑 영역에 있는지를 표시하는 테이블. 이 테이블을 살펴보면 전체 테이블을 찾아보지 않아도 TLB 미스를 바로 알 수 있다.
- 역매핑
: 위의 세가지 매핑과 달리 물리 메모리의 프레임 번호를 기준으로 테이블을 구성
💡 세그먼테이션 기법
: 가변 분할 방식을 이용한 가상 메모리 관리 기법으로, 물리 메모리를 프로세스의 크기에 따라 가변적으로 나누어 사용
- 세그먼테이션 테이블
- limit: 세그먼트의 크기를 나타냄, 메모리를 보호하는 역할을 함.
- address: 물리 메모리상의 시작 주소
📌 트랩
: 프로세스의 크기보다 더 큰 주소에 접근하려고 하면 메모리 관리자는 해당 프로세스를 강제 종료하는데 이때 발생하는 오류.
: 자신의 영역을 벗어나는 주소에 접근하거나 숫자를 0으로 나누는 것과 같이 사용자가 의도치 않게 일으키는 인터럽트
💡 세그먼테이션-페이징 혼용 기법
: 페이징 기법과 세그먼테이션 기법을 혼합하여 메모리 관리를 효율적으로 하는 기법.
: 페이징 기법에 세그먼테이션 테이블을 추가하고, 권한 비트와 같이 중복되는 데이터를 세그먼테이션 테이블로 옮겨옴.
- 메모리 접근 권한
: 메모리의 특정 번지에 저장된 데이터를 사용할수 있는 권한. 읽기, 쓰기, 실행, 추가
: 메모리 접근 권한 검사는 가상 주소에서 물리 주소로 주소 변환이 일어날 때마다 시행. 권한이 없으면 트랩 발생
- 세그먼테이션-페이징 혼용 기법의 도입
: 페이지 테이블에 권한 비트가 추가되면 페이지 테이블의 크기가 커진다. 인접한 페이지의 메모리 접근 권한이 같은 경우가 많은데도 불구하고 페이지마다 권한 비트를 설정하여 메모리를 낭비하는 요소가 됨.
-> 세그먼테이션 테이블을 이용해서 해결. 페이지로 분할된 가상 주소 공간에서 서로 관련있는 영역을 하나의 세그먼트로 묶어 세그먼테이션으로 관리.
'CS > 운영체제' 카테고리의 다른 글
[운영체제] 가상 메모리 관리 (0) | 2021.12.09 |
---|---|
[운영체제] 물리 메모리 관리 (0) | 2021.12.09 |
[운영체제] 프로세스 동기화 (0) | 2021.12.02 |
[운영체제] CPU 스케줄링 (0) | 2021.12.01 |
[운영체제] 프로세스 & 스레드 (0) | 2021.10.24 |