CS/운영체제
가상메모리, 페이지테이블, 페이지폴트, 스레싱
프론트엔드코린이
2025. 5. 28. 20:11
1. ✅ 가상 메모리 (Virtual Memory)
정의: 실제 물리 메모리(RAM)의 크기보다 더 큰 메모리 공간을 사용하는 것처럼 보이게 해주는 운영체제의 기술.
- 하드디스크의 일부를 메모리처럼 사용하는 방식.
- 프로그램은 연속된 큰 메모리 공간을 할당받는 것처럼 보임.
- 실제로는 일부만 메모리에 올라오고 나머지는 디스크에 있음.
- 장점: 프로그램 간 메모리 보호, 메모리 부족 문제 해결, 멀티태스킹 가능
2. ✅ 페이지 테이블 (Page Table)
정의: 가상 주소(Virtual Address)를 물리 주소(Physical Address)로 매핑해주는 데이터 구조.
- 가상 메모리는 페이지(Page) 단위로 나뉘고, 물리 메모리는 프레임(Frame) 단위로 나뉨.
- 페이지 테이블은 각 가상 페이지가 어느 물리 프레임에 매핑되는지 기록.
- CPU가 메모리 접근할 때 페이지 테이블을 참조함.
📌 예:
가상 주소 0x1234 → 페이지 번호 1 → 프레임 번호 5 → 물리 주소 0x5000
3. ✅ 페이지 폴트 (Page Fault)
정의: CPU가 접근하려는 가상 주가 메모리에 없는 경우 발생하는 예외.
- 해당 페이지가 디스크에만 있고 메모리에 올라와 있지 않을 때 발생.
- 이때 운영체제가 디스크에서 페이지를 불러와 메모리에 올림.
- 폴트는 자주 발생하면 성능이 떨어짐 (다음 개념과 연결 ↓)
4. ✅ 스레싱 (Thrashing)
정의: 페이지 폴트가 너무 자주 발생해서 CPU가 일은 못 하고, 계속 페이지를 RAM에 넣었다 뺐다만 반복하는 상태
- 페이지 폴트 → 페이지 교체 → 또 페이지 폴트… 무한 반복
- 실질적인 작업은 거의 하지 못하고 성능 급하락
- 원인: 과도한 멀티태스킹, 메모리 부족, 프로세스 수 과다
- 해결: 프로세스 수 줄이기, 메모리 증설, 워킹셋 관리 등
🧠 한 줄 요약
용어한 줄 설명
가상 메모리 | 실제보다 더 큰 메모리를 쓰는 기술 |
페이지 테이블 | 가상 주소를 물리 주소로 바꾸는 지도 |
페이지 폴트 | 필요한 데이터가 메모리에 없어서 생기는 예외 |
스레싱 | 페이지 폴트가 과도하게 발생해서 시스템이 멈춘 상태 |