Swapping

김민영·2023년 1월 27일
0

CS 스터디

목록 보기
21/32

정의

  • 주기억장치에 적재한 하나의 프로세스와 보조기억장치에 적재한 다른 프로세스의 메모리를 교체하는 기법
  • 프로세스가 실행되려면 메모리에 올라가야 함. 현재 메모리에서 다른 저장공간으로 옮겨졌다가 다시 돌아오는 식으로 교체되는 것.
  • 현재는 사용하지 않음.
    • 프로세스 단위로 스와핑을 하면 비효율적이기 때문. 외부단편화 문제

가상메모리

  • 가상메모리를 관리하는 과정에서 페이징 단위로 스와핑 실행

정의

  • 메인 메모리의 크기는 한정되어 있음.
  • 메인 메모리보다 크기가 큰 프로세스를 실행시키고 싶을 때.
  • 프로세스는 필요한 부분만 메모리에 올려서 실제로 메모리에 올라가는 프로세스 크기를 최소화 시킴.

디멘드 페이징 Demand Paging

  • 가상 메모리를 구현하는 방법
  • 필요한 부분의 페이지 영역만 물리적 메모리에 할당
  • 자주 사용하는 페이지만 물리적 메모리에 적재해서 사용

Page fault handling 페이지 부재

  • 현재 사용하려는 페이지가 물리적 메모리에 적재되어있지 않음
  • 모든 페이지가 RAM에 존재하지 않기 때문에 발생
  1. 물리 메모리에 있는 실행될 프로세스는 자신이 사용하고자 하는 페이지가 페이지 테이블에 있는지 확인
  2. 물리 메모리에서 사용하려는 페이지가 없으면 Page fault exception 발생, 커널 모드로 진입
  3. OS는 페이지 테이블 엔트리 정보 속에서 Backing storage 어느 위치에 페이지가 있는지 확인
  4. 확인한 없었던 페이지를 물리 메모리에 로드
  5. 페이지 테이블을 업데이트
  6. 원래 실행하려고 했던 작업 실행
  • 3, 4번의 과정은 시간이 오래 걸려서 CPU 효율성을 낮추게 됨.
  • 그러나 Locality 지역성에 의해, 사용하는 코드만 재사용을 하게 됨. Page fault는 많이 발생하지 않음

https://resilient-923.tistory.com/394
https://resilient-923.tistory.com/397
https://jhnyang.tistory.com/category/%EB%B3%84%EA%B1%B8%EB%8B%A4%ED%95%98%EB%8A%94%20IT/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C%20OS

profile
노션에 1차 정리합니당 - https://cream-efraasia-f3c.notion.site/4fb02c0dc82e48358e67c61b7ce8ab36?v=

0개의 댓글