-
12. 가상 메모리운영체제 2022. 8. 18. 03:20
2022.08.17 - [운영체제] - 11. 메모리 관리
가상 메모리
가상 메모리란 오버레이 방식에서 나아가 보조 기억 장치의 일부 공간을 주 기억 장치처럼 사용하는 것입니다.
이전에도 말했듯 프로그램은 모든 함수나 변수가 골고루 쓰이지 않습니다.
프로세스가 램으로 적재되면 자주 쓰이는 부분만 캐시에 올라가죠.
가상 메모리는 이 과정이 하나 더 생긴 것이라고 보면 됩니다.
가상 메모리가 주 기억 장치의 캐시가 되는 것입니다.
가상 메모리는 물리 메모리 + 스왑 영역으로 이루어져 있습니다.
페이징 기법
페이지란 프로그램을 일정한 논리적 단위의 블록으로 나눈 것을 말합니다.
저번 시간에 고정 분할 방식에 대해서 얘기했었는데,
페이지는 공간이 아니라 프로그램을 쪼갠 것입니다.
주소 변환
가상 주소 페이지 테이블 물리 주소 페이지 0 : 0~9 프레임 2 프레임 0 : 0~9 페이지 1 : 0~9 프레임 1 프레임 1 : 0~9 페이지 2 : 0~9 프레임 3 프레임 2 : 0~9 페이지 3 : 0~9 프레임 0 프레임 3 : 0~9 찾고자 하는 데이터가 가상 주소 페이지 <2, 8>에 있다면,
페이지 <2, 8>은 프레임 3과 매핑되어 있어 페이지 테이블 프레임 3으로 넘어가게 되고,
물리 주소 프레임 <3, 8>의 데이터를 찾게 됩니다.
이것을 식으로 나타내면 VA=<P, D>, PA=<F, D>가 됩니다.
VA는 가상 주소, PA는 물리 주소,
P는 페이지 번호, F는 프레임, D는 0부터 해당 주소까지의 거리를 나타냅니다..
VA=<2, 8>이 페이지 테이블 프레임 3과 이어지고,
프레임 3이 다시 PA=<3, 8>과 이어집니다.
페이지 테이블 매핑
- 직접 매핑 : 페이지 테이블이 물리 메모리에 존재합니다.
가상 주소와 페이지 테이블을 거쳐 물리 주소를 그대로 매핑합니다. - 연관 매핑 : 페이지 테이블이 스왑 영역에 존재하고 일부만 물리 메모리에 존재합니다.
물리 메모리 페이지에서 먼저 찾고, 없다면 스왑 페이지 테이블로 넘어가서 탐색합니다..
- 집합 - 연관 매핑 : 연관 매핑 방식에서 그룹을 한번 더 생성한 방식입니다.
- 역매핑 : 가상 주소가 아닌 프레임을 기준으로 매핑합니다.
세그멘테이션 기법
페이지가 일정한 단위였다면 세그먼트는 가변적인 크기를 가집니다.
세그멘테이션에서의 매핑 테이블은 시작 주소뿐 아니라
세그먼트의 크기를 나타내는 limit도 올라갑니다.
이 limit는 시작 주소부터 끝이 얼마나 떨어져있는지를 나타냅니다.
출처) https://velog.io/@chappi/OS%EB%8A%94-%ED%95%A0%EA%BB%80%EB%8D%B0-%ED%95%B5%EC%8B%AC%EB%A7%8C-%ED%95%A9%EB%8B%88%EB%8B%A4.-15%ED%8E%B8-%EA%B0%80%EC%83%81-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EC%84%B8%EA%B7%B8%EB%A8%BC%ED%85%8C%EC%9D%B4%EC%85%98-%EC%84%B8%EA%B7%B8%EB%A8%BC%ED%85%8C%EC%9D%B4%EC%85%98-%ED%8E%98%EC%9D%B4%EC%A7%95-%ED%98%BC%EC%9A%A9-%EA%B8%B0%EB%B2%95 프로세스 0이 52번째의 데이터를 요청했다면,
시작 주소가 120이고 limit이 280이므로 172의 데이터를 반환합니다.
만약 290번째의 데이터를 요청했다면
limit 280을 넘어가므로 오류(트랩)이 발생합니다.
캐시 매핑 기법
캐시 메모리는 작기 때문에 한정된 데이터만 올라갈 수 있습니다.
따라서 공간을 효율적으로 사용하는 것이 중요합니다.
- 직접 매핑 : 캐시 블록이 4개, 메모리 블록이 16개라면
캐시 0 = {0, 4, 8, ...}, 캐시 1 = {1, 5, 9,...} 와 같이 순서대로 매핑합니다. - 연관 매핑 : 필요한 메모리 값을 캐시의 무작위 공간에 저장합니다.
탐색하는 데 시간이 소요되지만, 캐시 적중률을 높일 수 있습니다.
- 집합 - 연관 매핑 : 직접 매핑과 연관 매핑을 혼합한 방식으로,
순서에 따라 그룹을 여러 개로 나누고, 그룹 내에서 무작위로 저장시키는 것입니다.
'운영체제' 카테고리의 다른 글
14. 저장 장치와 파일 시스템 (0) 2022.08.20 13. 가상 메모리 관리 (0) 2022.08.20 11. 메모리 관리 (0) 2022.08.17 10. 프로세스 간 통신 (0) 2022.08.16 09. 프로세스 스케줄링 (0) 2022.08.13 - 직접 매핑 : 페이지 테이블이 물리 메모리에 존재합니다.