HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🐣
프론트엔드 데브코스 3기 교육생
/
📚
3기 스터디 가이드
/
📒
CS 학습 스터디
/
📦
가상메모리와 페이지폴트 (민재)
📦

가상메모리와 페이지폴트 (민재)

 
가상메모리에 대해 알아보기 전에 메모리란

메모리

  • 메모리란 프로그램과 프로그램 수행에 필요한 데이터 및 코드를 저장하는 기억 장치
  • 메모리는 크게 내부 기억장치인 주기억장치와 외부 기억장치인 보조 기억장치로 분류됨.
    • 하드웨어 관점에서 메모리의 종류는 다음 사진과 같이 4가지가 존재하며 DRAM(RAM, DDR4) 등의 메모리와 CPU 안에 있는 레지스터와 캐시등을 주기억장치라고 하며 SSD, HDD는 보조 기억장치로 분류된다.
CPU의 메모리 접근에 대한 성능, 코스트 표시
CPU의 메모리 접근에 대한 성능, 코스트 표시
  • CPU는 메인 메모리의 값만 참조할 수 있다(RAM).
  • 즉 연산을 위해서는 메인 메모리에 해당 프로그램의 정보가 올라와야한다.
 
이후의 문제로 가상메모리의 등장…
  • 초창기 컴퓨터에서는 사용 가능한 RAM의 용량이, 가장 큰 실행 프로그램의 주소 공간보다 커야 했다. 그렇지 않을 경우 메모리 부족 오류에 의해 해당 프로그램을 실행할 수 없었음.
  • 이후 오버레이 기법이 등장하여 프로그램의 메모리 크기를 줄일 수 있었지만 여전히 메모리 부족 오류가 발생하였다.
 

가상 메모리

  • 보조 기억 장치의 일부를 주 기억 장치로 활용하여 실제 주기억장치보다 큰 메모리 영역을 제공하는 방법
  • 어떤 프로세스가 실행될 때 메모리에 해당 프로세스 전체가 올라가지 않고 실행에 필요한 일부분만 메모리 올라감
  • 프로세스들의 내용(페이지) 중 현재 실행에서 덜 중요한 것들을 하드 디스크의 공간에 옮겨 놓음으로써 적은 양의 메모리로 큰 효율을 냄
 
Q. 가상 메모리는 그럼 개나소나 쓸 수 있나요?
A. 아니요 특수 메모리 관리 하드웨어인 MMU(Memory Management Unit)을 갖추고 있어야 합니다.
 
하드디스크의 내용(페이지)를 사용하려고 할 때 페이지 테이블을 사용하여 참조한다.
 
페이지
  • 메모리를 효율적으로 사용하고자 프로세스를 일정 크기로 나눈 단위
 

요구 페이징 (Demand Paging)

물리 주소에 모든 메모리를 올리지 않고 CPU가 요청할 때 프로세스의 데이터를 물리 주소에 올림
notion image
이로 인한 긍정적 효과
  • 현재 필요한 페이지만 메모리에 적재하기 때문에 메모리 사용량이 감소한다.
  • 물리적 메모리 용량의 제약에서 벗어날 수 있게 해준다.
  • 프로세스 전체를 메모리에 올리지 않기 때문에 입출력의 오버헤드가 줄어든다.
 

페이지 폴트 (Page Fault)

위와 같은 요구 페이징 방식으로 CPU가 프로그램을 실행하면 필요한 페이지가 물리 메모리에 없는 경우가 발생하게 되는데 이를 페이지 폴트라고 합니다.
 
페이지 폴트가 발생하면 아래와 같은 과정이 일어난다.
notion image
  1. invalid 페이지에 접근하면 MMU가 trap을 발생하여 운영체제에 알린다.
  1. 운영체제는 CPU의 동작을 잠시 멈춘다.
  1. 운영체제는 요구된 페이지를 가상 메모리에서 찾는다.
  1. 해당 페이지를 물리적 메모리의 빈 프레임에 로드한다.
  1. 페이지 테이블을 최신화한다.
  1. 중단되었던 CPU를 다시 시작한다.
 
3번 과정을 거쳤지만 ‘페이지 테이블에 올릴 빈 프레임이 없을 경우’ ? Page Replacement 알고리즘
  1. FIFO: FIFO 방식은 가장 먼저 메모리에 적재된 페이지를 먼저 내보낸다.
  1. OPT(Optimal replacement, 최적 교체): 미래를 보고 앞으로 가장 사용 안될 페이지를 교체해준다.
  1. LRU (Least Recently Used): 최근에 가장 오랫동안 사용되지 않은 페이지를 교체해준다.
  1. LFU (Least Frequently Used): 사용 빈도가 가장 적은 페이지를 교체해준다.
 
참고
[운영체제] 가상 메모리(Virtual Memory System)
들어가기 전.. 메모리(memory)란? 메모리란 프로그램과 프로그램 수행에 필요한 데이터 및 코드를 저장하는 장치임. 메모리는 크게 내부 기억장치인 주기억장치와 외부 기억장치인 보조 기억장치로 분류됨. DRAM, CPU 안에 있는 레지스터(register)와 캐쉬(cache memory) 등이 전자에 해당됨. SSD, HDD 등이 후자에 해당됨. 가상 메모리 등장 배경 초창기 컴퓨터에서는 사용 가능한 RAM의 용량이, 가장 큰 실행 애플리케이션의 주소 공간보다 커야 했음. 그렇지 않을 경우 "메모리 부족" 오류에 의해 해당 애플리케이션을 실행할 수 없었음. 이후 컴퓨터에서는 프로그래머가 애플리케이션의 일부분만 기억장치에 올려 실행하도록 지정할 수 있게 하는 오버레이 기법을 사용하여 메모리 부족 문제를 ..
[운영체제] 가상 메모리(Virtual Memory System)
https://ahnanne.tistory.com/15#2.%20%EA%B0%80%EC%83%81%20%EB%A9%94%EB%AA%A8%EB%A6%AC%20%EB%93%B1%EC%9E%A5%20%EB%B0%B0%EA%B2%BD
[운영체제] 가상 메모리(Virtual Memory System)
[10분 테코톡] 🧚🏻 배럴의 가상 메모리
🙋‍♀️ 우아한테크코스의 크루들이 진행하는 10분 테크토크입니다. 🙋‍♂️ '10분 테코톡'이란 우아한테크코스 과정을 진행하며 크루(수강생)들이 동료들과 학습한 내용을 공유하고 이야기하는 시간입니다. 서로가 성장하기 위해 지식을 나누고 대화하며 생각해보는 시간으로 자기 주도적인 성장을 지향하는 우아한테크코스의 문화 중 하나입니다. 🌕우아한테크코스란 🌕 우아한테크코스는 일반 사용자용 서비스를 개발하는 회사가 필요로 하는 역량을 가진 프로그래머를 양성하기 위한 교육입니다.
[10분 테코톡] 🧚🏻 배럴의 가상 메모리
https://www.youtube.com/watch?v=5pEDL6c--_k&t=94s
[10분 테코톡] 🧚🏻 배럴의 가상 메모리
velog.io
https://velog.io/@jiseong/OS-%EA%B0%80%EC%83%81%EB%A9%94%EB%AA%A8%EB%A6%AC%EC%99%80-%ED%8E%98%EC%9D%B4%EC%A7%80%ED%8F%B4%ED%8A%B8-gyq8tftz
페이지 교체 알고리즘(page replacement algorithm)
  페이지 부재 ( Page Fault )가 발생했을 때 (= 페이지 테이블의 valid bit이 0일 경우) 만약...
페이지 교체 알고리즘(page replacement algorithm)
https://m.blog.naver.com/xowns4817/221226671491
페이지 교체 알고리즘(page replacement algorithm)