Vm
title: 2025-09-11 author: 강병호 date: 2025-09-11 category: TIL/강병호/2025/09 layout: post (자유) —
가상 메모리란?
운영체제와 하드웨어가 협력해서 실제 물리 메모리보다 더 큰 메모리를 쓰는 것처럼 보이게 해주는 기술
MMU에서 가상주소를 실제 RAM에서의 위치로 바꿔줌
RAM에서 순간 부족한 메모리를 HDD/SDD의 일부 공간을 RAM처럼 사용하는 것 (SWAP)
RAM에서 가득찬 메모리 페이지를 잠시 빼서 Swap 영역에 저장 → 이 과정을 swap-out
OS에서 데이터가 다시 필요해서 가지고 오는 과정을 Swap-in
가상 주소가 필요한이유
보호 문제, 메모리확장, 주소 충돌 문제, 편리성, 프로세스 이식성 등 때문에 직접주소를 사용하지 않고 가상 주소를 사용한다.
PageFault란?
PageFault 란 CPU가 어떤 가상주소에 접근했는데 그 주소에 해당 하는 페이지가 아직 RAM에 없는 경우 발생하는 예외상황
PageFault 처리 과정
CPU의 MMU 에서 페이지 테이블을 확인했는데 해당 페이지가 존재하지 않음을 발견 (Page Fault 발생) 이때 CPU가 OS 커널 모드로 전환하여 유효한 요청인지 확인 만약에 애초에 잘못된 주소면 프로세스를 종료하지만 올바른 주소인데 RAM에 없으면 디스크에서 오는 Swap-in을 실행 RAM에 적재할 빈 프레임을 확보하고 새로적제된 페이지의 물리주소를 가상 주소와 맵핑 다시 명령어 실행
PageFault의 발생 원인
- 단순히 아직 안쓰인 페이지 → 프로그램이 어떤 변수/배열로 접근할 때, 페이지는 존재하지만 RAM에 로드 되지 않음
- RAM 부족으로 어떤 페이지를 디스크로 보냈는데 그 페이지가 다시 필요해질 때
- 잘못된 주소접근, 프로세스가 자기 가상 주소 공간 밖의 영역 접근 →이 경우 Segmentation Fault