Operating system

페이지 부재

White_Bean 2023. 11. 17. 07:47

유효 비트

  • 가상 메모리의 페이지 테이블에는 페이지가 물리 메모리에 있는지, 스왑 영역에 있는지 표시하기 위해 유효 비트를 사용
    • 유효 비트가 0일 때 : 주소 필드에 물리 메모리 프레임 번호가 저장
    • 유효 비트가 1일 때 : 주소 필드에 스왑 영역 내 페이지의 주소가 저장

 

페이지 부재 (page fault)

  • 프로세스가 요청했을 때 그 페이지가 메모리에 없는 상황
  • 페이지 부재가 발생 시 스왑 영역에서 물리 메모리로 옮겨야 함

 

페이지 부재 처리 과정

  • 프로세스가 페이지 3을 요청하면 페이지 테이블의 유효 비트가 1이기 때문에 페이지 부재가 발생
  • 메모리 관리자는 스왑 영역의 0번에 있는 페이지를 메모리의 비어 있는 프레임인 5로 가져옴 (스왑인)
  • 프레임 5로 접근하여 해당 데이터를 프로세스에 넘김

 

페이지 교체

  • 페이지 부재가 발생하면 스왑 영역에 있는 페이지를 빈 영역에 올리고 페이지 테이블 갱신 (업데이트)

페이지 교체 알고리즘

  • 어떤 페이지를 스왑 영역으로 내보낼지 결정하는 알고리즘

대상 페이지

  • 페이지 교체 알고리즘에 의해 스왑 영역으로 보낼 페이지

 

메모리가 꽉 찬 상태에서 페이지 부재가 발생했을  때

  • 페이지의 유효 비트가 1이라 페이지 부재가 발생
  • 스왑 영역에 있는 페이지 E를 가져오기 위해 메모리 페이지 중 하나를 스왑 영역으로 내보냄
  • PTE 1의 유효 비트가 0에서 1로, 주소 필드 값이 프레임 3에서 스왑주소 6으로 자뀜
  • 스왑 영역에 1번에 있던 페이지 E가 프레임 3으로 올라감 (스왑인)
  • PTE 4의 유효 비트가 1에서 0으로, 주소 필드 값이 스왑주소 1에서 프레임 3으로 바뀜

세그먼테이션 오류와 페이지 부재

  • 세그먼테이션 오류 (segmentation fault)
    • 사용자의 프로세스가 주어진 메모리 공간을 벗어나거나 접근 권한이 없는 곳에 접근할 때 발생 (해당 프로세스 강제 종료)
  • 페이지 부재 (page fault)
    • 해당 페이지가 물리 메모리에 없을 때 발생함 (스왑 영역에서 해당 페이지를 가져옴)