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에 넣었다 뺐다만 반복하는 상태

  • 페이지 폴트 → 페이지 교체 → 또 페이지 폴트… 무한 반복
  • 실질적인 작업은 거의 하지 못하고 성능 급하락
  • 원인: 과도한 멀티태스킹, 메모리 부족, 프로세스 수 과다
  • 해결: 프로세스 수 줄이기, 메모리 증설, 워킹셋 관리 등

🧠 한 줄 요약

용어한 줄 설명
가상 메모리 실제보다 더 큰 메모리를 쓰는 기술
페이지 테이블 가상 주소를 물리 주소로 바꾸는 지도
페이지 폴트 필요한 데이터가 메모리에 없어서 생기는 예외
스레싱 페이지 폴트가 과도하게 발생해서 시스템이 멈춘 상태