요구 페이징과 페이지 폴트란 무엇인가?

hoon·2023년 2월 14일
0

1. 요구페이징 (Demand Paging)

  • 프로세스 모든 데이터를 메모리로 적재하지 않고, 실행 중 필요한 시점에서만 메모리로 적재
    • 선행 페이징의 반대 개념: 미리 프로세스 관련 모든 데이터를 메모리에 올려놓고 실행하는 개념
    • 더 이상 필요하지 않은 페이지 프레임은 다시 저장매체에 저장 (페이지 교체 알고리즘 필요)

→ 선행 페이징처럼 미리 데이터를 메모리에 올려 놓으면 메모리가 효율적이지 않을 수도 있음

2. 페이지 폴트(page fault)

페이지 폴트란 프로세스의 주소 공간에는 존재하지만 RAM에 없는 데이터에 접근 했을 경우 발생한다. 페이지폴트와 그로 인한 스와핑은 다음과 같은 과정으로 이루어진다.

  1. CPU가 물리 메모리를 확인하여 해당 페이지가 없으면 인터럽트를 발생시켜 운영체제에 알림
  2. 운영체제가 CPU동작을 잠시 멈춤
  3. 운영체제는 페이지 테이블을 확인하여 가상 메모리에 페이지가 존재하는지 확인하고 없으면 프로세스를 중단 → 현재 물리 메모리에 비어 있는 프레임이 있는지 찾고 물리 메모리에도 없다면 스와핑이 발동
  4. 비어있는 프레임에 해당 페이지를 로드하고 페이지 테이블을 최신화
  5. 중단되었던 CPU를 다시 시작
  • 스와핑 : 페이지 폴트가 발생할때 메모리에서 당장 사용하지 않는 영역을 하드디스크로 옮기고 하드디스크의 일부를 마치 메모리처럼 불러와 쓰는 것을 스와핑이라고 한다. 이를통해 마치 페이지폴트가 일어나지 않은것처럼 만든다.
  • 인터럽트 : 소프트웨어 인터럽트는 트랩이라고도 하며 프로세스오류 등으로 시스템콜을 호출할때 발동한다.
profile
프론트엔드 학습 과정을 기록하고 있습니다.

0개의 댓글

관련 채용 정보