[CS, TIL] 230828 가상 메모리와 페이지 폴트 (Page Fault)

CountryGirl·2023년 8월 28일
0

TIL

목록 보기
51/80

💾 메모리

: 프로그램과 프로그램 수행에 필요한 데이터 및 코드를 저장하는 기억장치

프로그램이 CPU에서 사용되기 위해서는 메인 메모리(RAM)를 점유하고 있어야한다.
점점 커지는 프로그램에 의해 여러 프로세스를 동시에 실행하는 시스템에서는 메모리 용량 부족 이슈가 발생해 가상 메모리라는 것이 생겼다.


💾 가상 메모리

: 메모리 관리 기법 중 하나로 HDD의 일부를 RAM으로 활용하게끔 하여 실제 주기억장치보다 큰 메모리 영역을 제공하는 방법

어떤 프로세스가 실행될 때 메모리에 해당 프로세스 전체가 올라가지 않고 실행에 필요한 일부분만 메모리에 올라간다.

➡️ 프로세스들의 내용 중 현재 실행에서 덜 중요한 것들을 하드디스크의 공간에 옮겨놓음으로써 적은 양의 메모리로 큰 효율을 낼 수 있다.

😎 요구 페이징 (Demand Paging)

: 모든 페이지를 물리적 메모리에 올리지 않고 당장 필요한 페이지만 메모리에 올리는 방식

  • 페이지(Page): 가상 메모리를 사용하는 최소 크기 단위.
  • 프레임(Frame): 물리 메모리를 사용하는 최소 크기 단위.
  • 현재 필요한 페이지만 메모리에 적재하기 때문에 메모리 사용량 감소
  • 물리적 메모리 용량의 제약 탈출
  • 프로세스 전체를 메모리에 올리지 않기 때문에 입출력 오버헤드 감소



📃 페이지 폴트 (Page Fault)

요구 페이징 방식을 사용하게 되면 CPU가 프로그램을 실행하면서 필요한 페이지가 물리적 메모리에 없는 경우도 생기는 것

  1. invalid 페이지에 접근하면 MMU가 trap을 발생하여 운영체제에 알린다.
  2. 운영체제는 CPU의 동작을 잠시 멈춘다.
  3. 운영체제는 요구된 페이지를 가상 메모리에서 찾는다.
  4. 해당 페이지를 물리적 메모리의 비어있는 프레임에 로드한다.
  5. 페이지 테이블을 최신화한다.
  6. 중단되었던 CPU를 다시 시작한다.

물리적 메모리에 비어있는 프레임이 존재하지 않는 경우에는 페이지 폴트를 최소화하기 위한 Page Replacement 알고리즘을 사용한다.

Page Replacement 알고리즘

  1. FIFO (First In First Out): 가장 먼저 메모리에 들어온 페이지를 먼저 교체하는 방식
  2. LRU (Least Recently Used): 가장 오랫동안 사용되지 않은 페이지를 교체하는 방식
  3. LFU (Least Requently Used): 페이지가 가장 적게 사용된 페이지를 교체하는 방식

✅ REFERENCE

jiseong.log : [OS] 가상메모리와 페이지폴트

profile
💻🌾시골소녀의 엉망징창 개발 성장일지🌾💻 (2023.05.23 ~)

0개의 댓글