Welcome! Everything is fine.

[CS 발표_09] 스와핑(Swapping)이란? 본문

CS 스터디/발표

[CS 발표_09] 스와핑(Swapping)이란?

개발곰발 2024. 6. 5.
728x90
스와핑(Swapping)에 대해 설명해주세요.

 

 

스와핑(Swapping)이란?

프로세스가 실행되기 위해서는 메모리에 로드되어야하는데, 메모리 공간보다 많은 프로세스가 로드되는 경우가 있을 수 있다. 이때 중기 스케줄러(메모리에 로드된 프로세스 수를 동적으로 조절)가 프로세스를 저장 공간으로 옮겨 저장한다. 이 프로세스는 저장 공간에 있다가 이벤트 요청이 오면 다시 메모리에 로드된다.

  • 메모리 관리를 위해 사용되는 기법
  • 프로세스의 일부 또는 전체를 물리적 메모리에서 보조 기억장치, 즉 하드 디스크의 스왑 공간으로 이동시키는 과정
  • 프로세스가 메모리에 적재될 공간이 부족할 때 사용
  • swap in & swap out
    • swap in : 보조 기억장치에서 주 기억장치로 불러오는 과정, 프로세스가 메모리에서 스왑 영역으로 옮겨진다.
    • swap out : 주 기억장치에서 보조 기억장치로 내보내는 과정, 스왑 영역에 있던 프로세스가 메모리로 옮겨진다.

Swapping의 장점과 단점

장점

  • 메모리 사용 효율성 향상 : 메모리 공간보다 많은 프로세스를 실행할 수 있다.
  • 다중 프로그래밍 지원

단점

  • 시스템 성능 저하 : 가상 메모리를 사용한다면?

standard swapping

 

메인 메모리와 스왑 영역 사이로 모든 프로세스를 옮기는 것을 말한다.

그러나 전체 프로세스를 메모리에 올렸다가 내리는 것을 반복하면 그 비용은 너무 커진다.

 

swapping with paging( == paging)

 

전체 프로세스를 스와핑 하는 것보다 프로세스의 페이지를 스와핑 하는 것이 더 비용이 적게 든다.

swap in & swap out 대신 page in & page out이라고 한다.

페이징은 가상 메모리에서 큰 위력을 발휘한다.